人月神话阅读笔记02

人月神话阅读笔记02

外科手术队伍

最好的和最差的表现在生产率上平均为10:1,在运行速度和空间上具有5:1的惊人差异!简言之,$20,000/年的程序员的生产率可能是¥10,000/年程序员的10倍。得出的结论很简单:如果一个200 人的项目中,有25 个最能干和最有开发经验的项目经理,那么开除剩下的175 名程序员,让项目经理来编程开发。所以说有经验的程序员才是最廉价的劳动力啊。Harlan Mills 的提议提供了一个崭新的、创造性的解决方案2,3。Mills 建议大型项目的每一个部分由一个团队解决,但是该队伍以类似外科手术的方式组建,而并非一拥而上。也就是说,同每个成员截取问题某个部分的做法相反,由一个人来进行问题的分解,其他人给予他所需要的支持,以提高效率和生产力。 有时候民主和平等也许并非是最好的选择:因为首先在人在智力上、能力上就并不平等。外科手术式的团队其实是延续了早期英雄式的编程风格:主要的程序员决定了项目的大部分内容,而其他人则成为他的副手,帮助他完成各项细节性的工作。

对于企业管理信息系统软件开发和大型操作系统的开发有一些差异,跟业务相关密切的信息系统会更加强调需求的重要性,需求分析也是系统分析的重要内容。因此在这种情况下一般会划分出专门的需求分析人员这种角色,或者说将需求和总体设计合并为系统分析员角色,当我们理清楚了业务架构和技术架构后,后续实现阶段就变得简单。

对于队伍如何运作的问题,外科医生和副手是核心保证高度的概念完整性,跟传统按生命周期阶段来分角色的团队相比,我们可以看到一个显著的差别就是流水线式的沟通方式朝扁平的总线式沟通方式转化。这种方式沟通更加高效,同时概念完整性更加容易保证,当出现冲突的时候外科医生具有绝对的权威。

一位首席程序员、类似于外科手术队伍的团队架构提供了一种方法—既能获得由少数头脑产生的产品完整性,又能得到多位协助人员的总体生产率,还彻底地减少了沟通的工作量。

扩建过程的成功依赖于这样一个事实,即每个部分的概念完整性得到了彻底的提高—决定设计的人员是原来的七分之一或更少。所以,可以让200人去解决问题,而仅仅需要协调20个人,即那些“外科医生”的思路。

对于协调的问题,还是需要使用分解的技术。在这里,可以认为整个系统必须具备概念上的完整性,要有一个系统结构师从上至下地进行所有的设计。要使工作易于管理,必须清晰地划分体系结构设计和实现之间的界线,系统结构师必须一丝不苟地专注于体系结构。总的说来,上述的角色分工和技术是可行的,在实际工作中,具有非常高的效率。

这里所讲到的重点就是体系结构设计师要抽取出来组成核心设计团队,其他人员是实现人员,这样沟通的范围将限制到到这20个人的核心团队中,以保证高度的概念完整性,大大的提高沟通效率。

posted @ 2019-12-27 21:12  zhoulonghai  阅读(124)  评论(0编辑  收藏  举报