从宏观上讨论变成需要的五项能力，写文档，版本管理，写测试，写设计，写代码