zoukankan      html  css  js  c++  java
  • 人月神话阅读笔记02

    外科手术队伍

    问题

    矛盾的产生:

           大型团队开发,任务过度细分,增加相互沟通交流的工作量和最后集成时进行系统调试的工作量,得不偿失,最后可能是:高成本、速度缓慢、低效、无法集成。所以系统应该由尽可能少的人员来开发。

           但是,对于真正意义上的大型系统,一个小型团队的开发速度太慢,当项目开发完成时已经过时。

           由此产生一个矛盾,那该如何来解决这个矛盾呢?

    Mills的建议

        解决方案:组建10人小团队,团队已类似外科手术的方式组建,并非一拥而上。

      外科医生(首席程序员):定义功能和性能技术说明书,设计程序,编制源代码,测试以及书写技术文档。

      副手:主要作用是作为设计的思考者、讨论者和评估人员。

      管理员:控制财务、人员、工作地点安排和机器,充当组织中其他管理机构的接口。

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

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

      程序职员:维护编程产品库中所有团队的技术记录。

      工具维护人员:保证所有基本服务的可靠性,以及承担团队成员所需要的特殊工具(特别是交互式计算机服务)的构建、维护升级责任。

      测试人员:各个功能设计系统测试用例的对头,同时也是日常调试设计测试数据的助手。负责计划测试的步骤和为测试搭建测试平台。

      语言专家:寻找一种简洁、有效的使用语言的方法来解决复杂、晦涩或者棘手的问题。

        

    外科手术队伍和传统队伍的不同

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

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

    优势

    (1)传统团队:将工作进行划分,每人负责一部分;在外科手术队伍中:首席程序员和副手了解所有的设计和全部的实现;好处是:节省了任务分配、集成、交流讨论等工作量。

    (2)传统团队:出现观点差异时,需要讨论、妥协、让步,不同的意见造成策略和接口上的不一致;外科手术队伍中:对问题不分解,观点不一致由首席程序员单方面来统一,达到客观的一致性。

    (3)外科手术队伍中:其他剩余人员智的分工高效,交流少,交流模式简单。

     

  • 相关阅读:
    virtual方法和abstract方法的使用(轉載)
    C# 如何寫入cookie
    Literal的一般用法,与Label对比 MSDN上的解释
    With temp as---sql语句用法 转
    GridView __DataKey 使用
    .net里radiobutton 两个怎么才能让他只选择一个
    Server.Transfer()与Response.Redirect()区别
    OnInit 事件
    ajax中Sys.WebForms.PageRequestManager的事件激发顺序
    Linux CentOS 查看某个进程打开的文件(文件描述符)
  • 原文地址:https://www.cnblogs.com/xiaoxt/p/5588856.html
Copyright © 2011-2022 走看看