人月神话(3)外科手术队伍
思维导图
面临问题
效率思考:在实际生产过程中我们会发现最好的和最差的生产率比为10:1 5000人年的工作量,通过人月转化,发现小型团队的实际开发时间太长,人员过多实际又有很多的成本浪费。在这种情况下我们提出了以下的十人团队解决方案 这个是程序中实际遇见的插件开发模式有着十分相似的地方
十人团队解决方案
外科医生
- 责任块:定义功能和性能技术说明书,程序设计,编制源代码,测试以及书写技术文档
副手
- 主要作用:能完成任何一部分工作,作为设计的思考者,讨论和评估人员
- 外科医生和他沟通设计,但不受它建议的限制
- 详细了解所有代码,研究设计策略的备选方案(保险机制)
- 可以编制代码,但不承担具体开发职责
管理员
- 类似于boss,处理人员,薪酬,办公空间等方面具有决定权
- 具备法律合同,报表和财务方面的需求时,管理人员才具有全职责任,不然可以一对多服务
编辑
- 创建各种文档,无论是对内部描述还是外部描述
- 将外科医生主旨,进行分析和重新组织,提供参考信息和书目,对多个版本进行维护,并监督文档的生成机制
两个文秘
- 分别配合管理员和编辑
程序职员
- 负责维护产品库中所有团队的技术记录,具有文秘性质
- 通过输出列表,进行归档和编辑索引(其中值得注意的是:按照时间顺序进行归档保存)
- 展现所有计算机运行的产物,将团队所有的程序和数据看做是团队的所有物
- 整理被忽视的杂事,确保它们的质量
工具维护人员
- 承担团队成员所需要的特殊工具的构建,维护和升级责任
- 开发一些实用程序,编制具有目录的函数库以及宏库
- 外科医生则是对这些工具服务是否充分可用的唯一评判人员
测试人员
- 计划测试的步骤和为单元测试搭建测试平台
- 设计测试用例,对整个工作进行测试
语言专家
- 寻找一种简洁、有效的使用语言的方法来解决复杂,晦涩或者棘手的问题
- 对技术进行一些列研究。也可以一对多的为外科医生服务
如何运作
团队交流图
- 传统两人队伍和“外科医生——副手”之间的区别 传统队伍将工作进行划分,独立分工完成各自部分的设计和实现 外科团队,外科医生和副手都了解所有的设计和全部代码
- 传统团队和外科手术团队对比 传统队伍中大家都是平等的,出现观点差异,不可以避免的需要讨论和进行相互的妥协和让步 外科手术团队,不存在利益差别,观点不一致之处有外科医生单方面统一。
团队扩建
- 依赖与任务的分解技术,如果任务不可以分解,那么这样的外科团队无法独立于整体之外
- 要有一个系统结构师从上至下地进行所有的设计。要使工作易于管理,必须清晰地划分体系机构设计和实现之间的界限,系统结构师必须一丝不苟地专注于体系结构
有些疑问
- 代码实现到底具体是谁在实现呢?
- 外科医生的绝对权,是否表明这样的团队不需要反馈机制呢?或者反馈机制又是什么样子的?
- 分工整体可行,当实际团体建设中,十个角色中哪些又是必不可少的呢??
人月神话系列索引
人月神话(1)焦油坑
人月神话(2)人月神话
人月神话(3)外科手术队伍
人月神话(4)系统设计
人月神话(5)画蛇添足
人月神话(6)贯彻执行
人月神话(7)巴比伦塔为什么失败
人月神话(8,9)胸有成竹与削足适履
人月神话(10)提纲挈领
人月神话(11)未雨绸缪
人月神话(12)干将莫邪
人月神话(13,14,15)整体部分 祸起萧墙与另外一面