在微软工作的七年多经历,盘点起来,收获其实就一个:有力的软件开发管理。这是我在微软学到的最有意义的东西。
以前,我 认为管理软件工程师, 就是管理艺术家一样,MISSION IMPOSSIBLE。然而,管理好软件工程师,管理好软件开发,其实是完全可能的,而且并不难,也不贵。
忘记大学里学的所谓软件工程吧(希望现在的教程与时俱进;当年我学的软件工程基本是CRAPS)。软件开发管理,是实践性很强的一个流程; 与工厂生产管理没有本质区别,有区别的只是用来帮助管理的工具。
有效的管理,离不开有效的管理工具。感谢那些天才而慷慨的程序员们 – 他们以开源的形式提供了高质量的工具软件。这使得大型软件公司密而不示的独门利器,任何人都可以使用了,而且还是免费的。开源,打破了技术垄断,有利全世界的成果共享和共同进步。
源代码管理
当然是GIT啦!出自LINUS之手的软件,自然是无可挑剔,小而快,易用。CANNOT BE BETTER。任何开发软件的个人或组织,如果还没有用GIT来管理你的源代码,我都不知道说你什么了。
开发进度管理
以前有BUGZILLA;现在的PHABRICATOR(MANIPHEST部分)更好,因为PHABRICATOR还能提供非常非常重要的功能—我们马上就要谈到。进度管理主要分两块:任务(TASK)管理,和BUG管理。其实TASK和BUG管理没有本质不同,一回事。
软件质量管理
这个貌似比较复杂;其实, 也就是提交前质量管理, 和提交后质量管理。
提交前管理,最重要的是运行CIT(提交测试), 和PEER REVIEW代码评审。有些用处的包括代码静态分析(如FXCOP, CHECKSTYLE, FINDBUGS程序等),可有也可无。PEER REVIEW,就是软件管理的九阳真经;程序员可以相互学习互相砥磨(批评与自我批评,同样适用于此),也防范代码失控(如后门代码)。PEER REVIEW工具,以前是属于软件巨擎的秘密武器,现在FACEBOOK慷慨大方地开源了它的PHABRICATOR(DIFFERENTIAL部分)。设置PHABRICATOR 并不是很复杂;甚至可以部署到一个虚拟机上。
提交后管理,可长可短。最长的提交后管理流程,可以进行生产系统自动发布;最短的只包括系统测试。提交后管理工具,有点像软件管理的葵花宝典,较小公司以前修炼不起(欲练神功,必先自宫);现在用开源连续集成工具JENKINS,小公司也可以入室窥径了(若不自宫,也可成功)。
另外, 还应该有一个知识共享工具。推荐使用dokuwiki
每个工具的详细介绍,以后将陆续介绍。