《人月神话》:构建高效率团队

本周怀着朝圣的心情拜读了“软工圣经”——《人月神话》。不夸张地说,受到了很大的震动。

相信所有计算机科班出身的人都上过一门专业课叫做《软件工程》,而在软件工程课上几乎不可避免地要提起“软件危机”这个话题,软件开发从小作坊式的开发模式转向大团队打造大型项目的过程中暴露出了许多从前没有注意过的问题,而其中最有代表性的可能就是著名的“OS/360”项目,这个项目被比作一个焦油坑,整个开发团队像一只巨兽在焦油坑中拼命挣扎,然而自己反而越陷越深,无法挣脱。

《人月神话》:构建高效率团队_第1张图片
焦油坑.jpg

在这个项目艰难地完成之后,负责人Brooks将其中的经验总结下来写出了巨著《人月神话》,尽管距离成书的时代已经四五十年,书中的熠熠闪光的智慧还是足以给我们启迪。

迫不及待地读完这部著作之后,有一种很深的感觉是对于“软工圣经”这样的评价它完全是名副其实。这部书并不是告诉我们如何编程,如何设计算法的技术类书籍,它更像探究人心的管理类书籍,相信所有从事管理工作的人都能从中有所收获。并且,当我们处在事业的不同阶段,当我们扮演团队的不同角色时再读一遍一定会有不同的感触,因此我觉得一年读一次《人月神话》真的一点都不为过。

由于所处高度的限制,现在读对其中的一些内容还没有深刻的体会,但是处在现在的阶段,我对书中描述的团队建设部分感触颇深,受到了巨大的震动。

对我们来说,不仅是软件开发,可能对于多数团队来说,人与人之间的沟通都是最大和最重要的问题,解决不好沟通问题,就会有灾难发生。例如作者提出的一个观点:当一个项目的工期已经延误的时候,再增加人手可能反而会造成反面的影响。其实很好理解,当项目工期已经延误,成员本身的心态可能已经有些焦虑,这时候加入新的成员,老成员需要增加额外的时间来对新成员进行培训,先不提培训的效率可能不会多好,我们都知道一个原理,人与人的沟通成本随着人数的增加呈指数级增长,因此团队人数增加了,沟通的成本反而增加,相应的负担也增大,人手增加带来的优势很有可能都被负面的影响抵消掉了。所以最后得出的结论就是此时增加人手没有太大意义。而这也证实了作者的一个核心理念:用“人月”作为工作量的衡量其实是不太合适的,因为这样的单位实际上把人和时间的成本画了等号,但在实践中,这个等式是不会成立的。

军队其实也是一种形式的团队,因此其中的一些道理也可以用来解释团队合作中的问题。古人评价韩信“韩信带兵,多多益善”,其实这是对将军的至高评价,因为多数人都做不到多多益善。道理也很简单,带领10个人作战可能很容易,带领100个人也可能没那么困难,可是当人数达到一万,十万甚至百万的时候呢,团队中产生的问题会急速增长,这时候解决不好团队内部的沟通以及协作的关系,不要谈攻击力,可能自己就先分崩离析了。那么转过头来看我们的软件开发团队,从开始时候自己单打独斗(当然,一个人开发出相当优秀的产品几乎都是天赋出色的天才,如Linus),到两个人的伙伴和三个人的精英团队,那么直到像OS/360这样的大型项目,有数千人参与开发的团队呢?情况会变得完全不一样。

因此作者就讨论了一个问题,当团队规模扩大的时候应该如何去组织呢?毫无疑问,这一定是一个令很多人头疼的问题。想象一下,当人数众多的开发人员聚在一起开会的时候,几乎每个人都会有自己的观点和看法,意见很难调和,这样的情况相信团队不会有多高的效率。Brooks提出了一种观点,就是组织“外科手术”团队。我们看到的外科手术团队一般都是多人配合,但是一定有一个主要的人,就是主刀大夫,由他来决定治疗方案,并且实际操作,而其他人,护士等只是为他提供支持,因此在团队中只有一个声音,对于问题的分析保持了一致性。对应到软件开发团队,我们只需要最有经验的架构师来分析问题,并提出解决方案同时划分任务模块,而其他人只是提供技术支持,把分配给自己的模块高质量地完成。而当规模进一步扩大的时候,只要组建若干支这样的外科手术队伍,每支队伍中的领头人意见一致即可,剩下的就是每个领头人把自己队伍的任务完成好。

结合我自己以团队成员和负责人身份参与的若干项目,我对这样的观点有着巨大的共鸣。几乎所有成功的项目都暗合了这个道理。在我们的三人团队中,负责人是一个意志坚定并且技术强悍的人,由他决定项目的走向,而我辅助他,提出一些补充性修改意见,剩下一个人坚决执行作出的决议,于是整个团队可以以非常高的效率运转,同时由于负责人的意志坚强,当遇到困难的时候团队几乎没有出现士气低迷的状况,反而是以强硬的态度去攻坚克难(所以有一个优秀的团队领袖是多么重要),最有代表性的例子是我们曾经用一周的时间从一无所有到完成了项目开发加上文档书写,最后获得了“服务外包大赛”的国家三等奖。因此,其实在开发团队中,很多时候我们需要“专制”。过分的民主不会有任何益处,反而会损伤团队的效率甚至是士气,或者说过分民主反映出的是团队领袖的不够坚强有力。

软件的团队开发是一项复杂的工作,需要我们投入大量的思考和实践来寻求正确的路线,相信在这过程中《人月神话》会给我们很多的指引,每一次再读,一定会有不同的收获,期待我在个人职业发展的下一个阶段再读《人月神话》。

你可能感兴趣的:(《人月神话》:构建高效率团队)