软件开发管理:管开发如治军

解放军的著名战将之一丁盛,曾经回忆过司令部建设在提高部队战斗力方面的重要性:”在东北开了一个参谋长会议,提出我们现在要进行大规模的运动战、攻坚战,就要健全司令部工作,要健全后勤。现在不是小米加步枪,现在有炮了,靠你司令员、师长一个人是不行的,就必须有健全的司令部。”

对稍居规模模的软件开发公司,软件开发管理人员就相当于司令部的参谋长,提高部队的战术水平,协调战役的进行。

外界对软件,印象中就是一个或几个天才程序员,在一起突击一二个月,程序就搞拈了。实际上对于稍许规模的软件,这个原生态方法,更多的归于失败。这个方法相当于独行侠,游击战,对专业软件开发组织,承担具备一定复杂性的软件系统开发,有它极大的局限性。即便某些项目偶然成功,也不可复制。

对于现代软件开发来讲,已经不再是小米加步枪,而是有炮了。这个炮,就是,一整套威力强大的软件开发管理工具。在有炮的前提下,我们当然应该成立我们的司令部,实行有效的软件开发管理,提高我们的战斗力和战术水平,保证战役成功。

一个人程序写的好,充其量只是一个好的武功高强的侠客,一个好的战士。要想带好一支队伍,多打胜仗,就必须是一个好的指挥员。好的指挥员,平时多练兵练好兵,战时会知己知彼,调整部署,果断决定,随机应变,以己方最小的代价获得最大的胜利。

当然对于软件队伍,没有单纯的练兵。练即战,战即练,以战代练。以各种规模的项目,来实战磨练队伍的技战术水平。没有可战的项目,对于软件队伍来说,实际上这并不是一个问题,因为你至少可以重构,再次迭代你以前的软件产品。一来提升产品质量,二来提高队伍水准,很有价值。当然,开发新产品或新功能,那更好。

分享知识,分享心得体会,有助于队伍共同提高,取长补短。比较可行的办法,一个是午餐会(brown bag ),二是在公司内部建立一个知识共享 站,俗称wiki 。还有一个更重要的办法,代码互审(code peer review )。我个人并不赞同结对编程(pair programming ),资源浪费较大。

演习,对验证部队战斗力,是一个重要手段。三日一小练,五日一大练;对软件公司来讲,演习就是测试。最好做到随时测试,自动测试。小练就是单元测试,大练就是集成测试,系统测试。

随时了解队伍的状态,随时了解任务的进度。通过每日例行的晨会了解队伍的状态,通过进程管理工具来有效了解开发的进度。定期的谈心会(one on one )制度性地强化官知兵,兵知官。

招之既来,来之能战,战之能胜。这个就是持续集成。软件随时都可以编译,系统随时都可以构建。一键布署,最高境界。象不象枕戈待旦/p>

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年1月22日
下一篇 2016年1月22日

相关推荐