《人月神话》笔记:外科手术队伍

来源:互联网 发布:网页游戏平台源码下载 编辑:程序博客网 时间:2024/05/02 07:55
一个高效的软件开发团队,和一个外科医生队伍有异曲同工之处:由一个人来完成问题的分解,其他人给予他所需要的支持,以提高效率和生产力。很少的人员被包含在设计和开发中,其他许多人来进行工作的支持。

(1)外科医生(首席程序员)
他亲自定义功能和性能技术说明书,设计程序、编制源代码,测试以及书写技术文档。需要极高的天分、十年的经验和应用数学、业务数据处理或其他方面的大量系统知识和应用知识。(看到了吗?牛人的门槛是很高的!)

(2)副手
他是外科医生的后备,能完成任何一部分工作,但是相对具有的经验较少。它的主要作用是作为设计的思考者、讨论者和评估人员。

(3)管理员
控制财务、人员、工作地点和办公设备,他充当与组织中其他管理机构的接口。(我的理解:这儿的管理员相当于首席程序员的行政秘书。)

(4)编辑
根据外科医生的草稿或者口述,进行分析和重新组织,提供各种参考信息和书目,对多个版本进行维护,并监督文档生成的机制。

(5)两个文秘
管理员和编辑每个人需要一个文秘。管理员的文秘负责项目的协作一致和非产品文件。

(6)程序职员
他负责维护编程产品库中所有团队的技术记录。该职员接受文秘性质的培训,承担机器码文件和可读文件的相关管理职责。(我的理解:这儿的程序职员相当于代码版本、文档版本管理员)

(7)工具维护人员
保证所有基本服务(工具)的可靠性,以及承担团队成员所需要的特殊工具(特别是交互式计算机服务)的构建、维护和升级责任。常常需要开发一些实用程序、编制具有目录的函数库以及宏库。

(8)测试人员
测试人员为程序员的的各个功能设计系统测试用例,同时也为程序员的日常调试设计测试数据。他还负责计划测试的步骤和为单元测试搭建测试平台。

(9)语言专家
乐于掌握复杂编程语言,对技术有着很好的理解。寻找一种简洁、有效的使用语言的方法,来解决复杂、晦涩或者棘手的问题。

一个对比:
区别一:
传统的队伍:将工作进行划分,每个人负责一部分工作的设计和实现。
外科手术团队:首席程序员和副手都了解所有的设计和全部的代码。

区别二:
传统的队伍:成员是平等的,出现观点的差异时,不可避免地需要讨论和进行相互的妥协和让步。
外科手术团队:不存在利益的差别,观点的不一致之处可以由首席程序员单方面来统一。

原创粉丝点击