这些研究表明,效率高和效率低的实施者之间个体差异非常大,经常能够达到数量级的水平。
开篇就直接点出这一章节的主要思想,我们在工作中、组建团队时不要始终如一的关注我们团队的人员的数量,有时候人员数量越多反而会拖累整个团队的进度,如现实中大公司有着很多的部门,当其中某个团队项目中牵扯到其他部门时,可能会导致整个项目的进度受阻,这时什么原因了?1. 沟通不畅!当部门与部门沟通时所涉及的人员时非常多的,而召集这些人员在同一时间参加会议是比较麻烦的,需要协调每个人的时间,这么多的人员在同一会议中沟通其实并不是特别的顺畅。2. 部门利益不同。每一个部门的 leader 说关注点主重要的可能是自己部门的利益,其次才会关注整个公司的利益,这就导致了当一个项目牵扯到自己部门时,考虑的不是该项目是不是能够给公司带来利益,而是该项目是不是能够给自己部门带来利益。如果是只是一个小团队那么这样的事情是不会发生的。
以上一些原因有一部分是公司制度的原因,但大多数都是我们在组建团队时没有认真的区分人员。这一章中明确的指出:
最好的和最差的表现在生产率上平均为 10:1,在运行速度和空间上具有 5:1 的惊人差异!简言之,$20,000/年的程序员的生产率可能是 ¥10,000/年程序员的 10 倍。得出的结论很简单:如果一个 200 人的项目中,有 25 个最能干和最有开发经验的项目经理,那么开除剩下的 175 名程序员,让项目经理来编程开发。
当一个团队中每个人的能力都很强那么这个队伍几乎就成了神话般的精英小队。所以在组建团队时考虑的不应该是这个人的编码水平、薪资水平,更重要的是他的生产效率。宁愿使用高出其他普通人薪资的 10 倍来聘请人员,也不要用这些薪资聘请 10 个普通的人员。因为这一个人的生产效率比的上其余 10 个人的效率,并且人员数量的增加也造成了沟通成本的增加,可能那 10 个人最后的产出还不如一个最顶尖人员的产出。
最后这一章节指出了:一个高效的软件开发团队,和一个外科医生队伍有异曲同工之处。由一个人来完成问题的分解,其他人给予他所需要的支持,以提高效率和生产力。很少的人员被包含在设计和开发中,其他许多人来进行工作的支持。以下是本章节对开发团队与外科手术团队相同指出的比较:
名称 | 主要工作 |
---|---|
外科医生(首席程序员) | 他亲自定义功能和性能技术说明书,设计程序、编制源代码,测试以及书写技术文档。需要极高的天分、十年的经验和应用数学、业务数据处理或其他方面的大量系统知识和应用知识。 |
副手 | 他是外科医生的后备,能完成任何一部分工作,但是相对具有的经验较少。它的主要作用是作为设计的思考者、讨论者和评估人员。 |
管理员 | 控制财务、人员、工作地点和办公设备,他充当与组织中其他管理机构的接口。 |
编辑 员 | 根据外科医生的草稿或者口述,进行分析和重新组织,提供各种参考信息和书目,对多个版本进行维护,并监督文档生成的机制。 |
两个文秘 | 管理员和编辑每个人需要一个文秘。管理员的文秘负责项目的协作一致和非产品文件。 |
程序职员 | 他负责维护编程产品库中所有团队的技术记录。该职员接受文秘性质的培训,承担机器码文件和可读文件的相关管理职责。(代码版本、文档版本管理员 |
工具维护人员 | 保证所有基本服务(工具)的可靠性,以及承担团队成员所需要的特殊工具(特别是交互式计算机服务)的构建、维护和升级责任。常常需要开发一些实用程序、编制具有目录的函数库以及宏库。 |
测试人员 | 测试人员为程序员的的各个功能设计系统测试用例,同时也为程序员的日常调试设计测试数据。他还负责计划测试的步骤和为单元测试搭建测试平台。 |
语言专家 | 乐于掌握复杂编程语言,对技术有着很好的理解。寻找一种简洁、有效的使用语言的方法,来解决复杂、晦涩或者棘手的问题。 |
并列出了传统团队与外科手术团队的优势:
- 传统团队:将工作进行划分,每人负责一部分;在外科手术队伍中:首席程序员和副手了解所有的设计和全部的实现;好处是:节省了任务分配、集成、交流讨论等工作量。
- 传统团队:出现观点差异时,需要讨论、妥协、让步,不同的意见造成策略和接口上的不一致;外科手术队伍中:对问题不分解,观点不一致由首席程序员单方面来统一,达到客观的一致性。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于