《人月神话》-外科手术队伍

效率高和效率低的实施者之间具体差别非常大,经常达到了数量级的水平。

很少的人员 被包含在设计和开发中,其他许多人来进行工作的支持。它是否可行呢?谁是编程队伍中的 麻醉医生和护士,工作如何划分?继续使用医生的比喻:如果考虑所有可能想到的工 作,这样的队伍应该如何运作。

外科医生 Mills 称之为 首席程序员。他亲自定义功能和性能技术说明书,设计程序, 编制源代码,测试以及书写技术文档。他使用例如 PL/I 的结构化编程语言,拥有对计算机 系统的访问能力;该计算机系统不仅仅能进行测试,还存储程序的各种版本,以允许简单的 文件更新,并对他的文档提供文本编辑能力。首席程序员需要极高的天分、十年的经验和应 用数学、业务数据处理或其他方面的大量系统和应用知识。

副手 他是外科医生的后备,能完成任何一部分工作,但是相对具有较少的经验。他 的主要作用是作为设计的思考者、讨论者和评估人员。外科医生试图和他沟通设计,但不受 到他建议的限制。副手经常在与其他团队的功能和接口讨论中代表自己的小组。他需要详细 了解所有的代码,研究设计策略的备选方案。显然,他充当外科医生的保险机制。他甚至可 能编制代码,但针对代码的任何部分,不承担具体的开发职责。

管理员 外科医生是老板,他必须在人员、加薪等方面具有决定权,但他决不能在这 些事务上浪费任何时间。因而,他需要一个控制财务、人员、工作地点安排和机器的专业管 理人员,该管理员充当与组织中其他管理机构的接口。Baker 建议仅在项目具有法律、合同、 报表和财务方面的需求时,管理员才具有全职责任。否则,一个管理员可以为两个团队服务。

编辑 外科医生负责产生文档——出于最大清晰度的考虑,他必须书写文档。对内部 描述和外部描述都是如此。而编辑根据外科医生的草稿或者口述的手稿,进行分析和重新组 织,提供各种参考信息和书目,对多个版本进行维护以及监督文档生成的机制。

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

程序职员 他负责维护编程产品库中所有团队的技术记录。该职员接受秘书性质的培 训,承担机器码文件和可读文件的相关管理责任。

工具维护人员 现在已经有很多文件编辑、文本编辑和交互式调试等工具,因此团队 很少再需要自己的机器和机器操作人员。但是这些工具使用起来必须毫无疑问地令人满意, 而且需要具备较高的可靠性。外科医生则是这些工具、服务可用性的唯一评判人员。他需要 一个工具维护人员,保证所有基本服务的可靠性,以及承担团队成员所需要的特殊工具(特 别是交互式计算机服务)的构建、维护和升级责任。即使已经拥有非常卓越的、可靠的集中 式服务,每个团队仍然要有自己的工具人员。因为他的工作是检查 他的外科医生所需要的工 具。工具维护人员常常要开发一些实用程序、编制具有目录的过程库以及宏库。

测试人员 外科医生需要大量合适的测试用例,用来对他所编写的工作片段,以及对 整个工作进行测试。因此,测试人员既是为他的各个功能设计系统测试用例的对头,同时也 是为他的日常调试设计测试数据的助手。他还负责计划测试的步骤和为测试搭建测试平台。

语言专家 随着 Algol 语言的出现,人们开始认识到大多数计算机项目中,总有一两 个乐于掌握复杂编程语言的人。这些专家非常有帮助,很快大家会向他咨询。这些天才不同 于外科医生,外科医生主要是系统设计者以及考虑系统的整体表现。而语言专家则寻找一种 简洁、有效的使用语言的方法来解决复杂、晦涩或者棘手的问题。他通常需要对技术进行一 些研究(两到三天)。通常一个语言专家可以为两个到三个外科医生服务。

这样的团队要怎么运行呢

首先,传统的 团队将工作进行划分,每人负责一部分工作的设计和实现。
第二,在传统的队伍中大家是平等的,出现观点的差异时,不可避免地需要讨论和进 行相互的妥协和让步。
另外,团队中剩余人员职能的专业化分工是高效的关键,它使成员之间采用非常简单 的交流模式成为可能。

当我们需要面对几百人参与的大型任务时,如何应用外科手术 团队的概念呢?

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值