程序员必读经典《人月神话》读书笔记03——外科手术团队

 读书笔记  原创  管理员  2019-01-05 09:15

概要:一台手术要顺利完成,需要一个外科手术团队,大手术一般包括麻醉医师、主刀医师、一助医师、二助医师、三助医师、巡回护士、洗手护士。小手术可以没有二助和三助,中等级别手术可以没有三助,可见团队与分工的重要性。

优秀与平庸

年轻的软件经理,喜欢由一流精英组成的团队,因此,程序员也分为优秀的与平庸的。

那么优秀的程序员与平庸的程序员之间又有什么区别呢?首先,优秀的程序员的生产效率是平庸的十倍,编程速度是平庸的五倍。如果一个老板给优秀的程序员2万美元的月薪,那么,这名程序员的产出可能是给1万美元平庸的程序员工资的十倍。

根据以上结论,如果有200个人的团队,找出其中25个最能干的,当然也包括项目经理,开除剩下的175人。然后,把最有经验的人才作为这个项目的经理。

不过短小精干的团队所带来了一个新的问题:相对于真正意义上的大型系统来说,它的开发速度简直是太慢了。

如何适应大型系统

那么如何才能适应大型系统呢?第一,每一个模块由一个团队去解决。第二,这个团队要类似于做外科手术的方式,并非一拥而上。第三,有一个人完成整个问题的分解,其他人只是给予支持和实现。

因此我们将会看到一个全新的团队,这个团队由这些成员组成。

外科医生

相当于是首席程序员,只需要一名即可,也就是我们通常理解的架构师,他应该亲自定义功能技术说明,并且设计整个程序的框架,编写核心代码,这名架构师应该是一名经验非常丰富的技术人员。

一名副手

也就是架构师的后备,他能够完成任务的一部分,但是经验比较少,它可以作为外科医生设计的思考者与评论者,与外科医生经常保持沟通,其实他充当着外科医生的保险机制。

一名管理员

相当于是整个项目团队的老大,他控制着财务、工作地点和办公设备的整合。

一名编辑

他负责整理整个项目的文档,并且随时保持更新。

两个文秘

他们负责非项目文件的整理,并且要使项目的协作与目标保持一致。

一名专职的程序员

其他人的配合使他从琐碎的事情中解放出来。

一名工具的维护者

比如经常保持工具的升级等等。

一名测试人员

他需要准备大量的测试用例,搭建整个测试平台。

一名语言专家

对新的编程语言和技术要保持最高的热情,并且需要花费时间去研究,然后运用在项目之中。

总结

总之,要有一个架构师负责所有的设计,并分清设计与实现的界限。而具体的实现,由其他人去完成即可。其实这个就有点类似于我们通常所说的二八原则,核心的代码由小部分人去实现,剩下的人全部处理一些普遍性的功能。

人月神话  

编辑:myweb   最后更新于:2019-01-05 09:25




声明:本站部分文章系本站编辑转载,转载目的在于加快信息的传递,及时与广大网友分享更多信息,并不代表本站赞同其观点和对其真实性负责。 如涉及作品内容、版权和其它问题,请及时与本站联系,我们将在第一时间删除内容!本站文章版权归原作者所有,内容为作者个人观点,本站只提供参考并不构成任何投资及应用的建议。


联系我:x889@foxmail.com,鄂ICP备14016278号-2
©2016-2019 我的ABC All Rights Reserved.
友情链接: 一起编程网