人月神话读书笔记(3)----外科手术队伍

外科手术队伍


建立一个外科手术团队那样分工明晰,合作有序的开发团队,是高效率软件开发的重要保障之一。

效率高和效率低的实施者之间个体差异非常大,经常能够达到数量级的水平。

问题

  1. 需要协作沟通的人员数量影响着开发成本,因为成本的主要组成部分是相互的沟通和交流,以及更正沟通不当所引起的不良结果。这一点,也暗示系统应该由尽可能少的人员来开发(小型、精干队伍是最好的——思绪尽可能少)
  2. 绝大多数大型编程系统的经验显示出,一拥而上的开发方法是高成本的、速度缓慢的、低效的,开发出的是无法在概念上进行集成的产品;
  3. 小型、精干队伍概念上的问题:对于真正意义上的大型系统,它太慢了

Mills的建议

  1. 大型项目的每一个部分由一个团队解决,但是该队伍以类似外科手术的方式组建,而并非一拥而上。由一个人来完成问题的分解,其他人给予他所需要的支持,以提高效率和生产力
  2. 外科手术队伍的团队——既能获得由少数头脑产生的产品完整性,又能得到多位协助人员的总体生产率,还彻底地减少了沟通的工作量;
  3. 外科手术队伍:外科医生(首席程序员),副手(外科医生的后备),管理员(外科医生的老板),编辑,两个文秘,程序员,工具维护人员,测试人员,语言专家;
  4. Mills概念的真正关键是:它向所有的团队成员展现了所有计算机的运行和产物,并将所有的程序和数据看做是团队的所有物,而非私人财产;

如何运作

系统是一个人或者最多两个人思考的产物,因此其在客观上达到了概念的一致性。

传统两人队伍与外科手术队伍的区别:

  1. 传统队伍中每人负责一部分工作的设计和实现,外科队伍中外科医生和副手了解所有的设计和代码。这确保工作概念上的完整性;
  2. 传统队伍中大家是平等的,出现观点差异时,不可避免需要讨论和进行相互的妥协和让步。由于工作和资源的分解,不同的意见会造成策略和接口上的不一致,而事实上最终它们必须整合在一起。外科队伍中,不存在利益的差别,观点的不一致之处可以由外科医生单方面来统一;
  3. 这两种团队组建上的差异——对问题不进行分解和上下级的关系——使外科手术队伍可以达到客观一致性;

团队的扩建

  1. 扩建过程的成功依赖于这样一个事实,即每个部分的概念完整性得到了彻底的提高——减少设计的人员。降低了协调“外科医生”的难度;
  2. 整个系统必须具备概念上的完整性,要有一个系统结构师从上至下地进行所有的设计。要使工作易于管理,必须清晰地划分体系结构设计和实现之间的界线,系统结构师必须一丝不苟地专注于体系结构;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值