人月神话阅读笔记02
在阅读笔记01中提到了沟通工作量随着团队规模的扩大而呈指数级增长,而往往一个大型项目的工作量往往是很大的,需要同时由很多人的协作才能完成,所以我今天阅读了团队组成的问题
在书中体会提到了这样一个有趣的现象:优秀程序员和较差程序员之间的生产效率有非常的差异,一个研究表明:最好的和最差的表现在生产率上平均为10:1,在编程速度和空间上具有5:1的惊人差异!简言之,20000美元/年的程序员的生产率是10000美元/年的程序员的10倍。
因此,理想的团队是几名程序经验丰厚的程序员组成,而不是大批量的初级程序员,但在现实情况之中这样是不太可能的,因为大型系统的工作量巨大,而绝大部分是普通的程序员。
然而书中外科手术的团队例子解决了这个问题。
所以我对书中的现象有了以下理解
所有的对于产品的完整性出于一个人或少数人的思考输出(外科医生 + 副手),相当于首席架构师 + 若干个部件架构师。避免了产品完整性上的歧义,以及出现分歧时沟通讨论造成的沟通成本。有副手降低外科医生做的决策出现方向性的错误。
管理员可以理解为项目的事务性团队,比如后勤,人力等等。
编辑是为了保证所有的思想输出文档化,以文档来保持产品完整性和一致性,减少沟通,当然现在好像通过各种自动化工具来替代了这个环节。但是我们可以把这个看成一个虚拟的人物角色。
程序职员就是程序员了,这里提到了一点是需要为文档服务的,有一点编辑属性在里面,敲掉了文档的重要性(注释、接口文档、测试建议等等)
工具维护人员就是专门的环境准备和运维,在当前的devops潮流下,试图将程序职员和工具维护人员进行合并。