喜欢由一流人才组成的小型、精干的队伍,而不是那些几百人的大型团队。

1. 问题:如何在有意的进度安排内创建大型的系统?

  • 作者观点:需要协同沟通的人员数量影响着开发成本,因为成本的主要组成部分是相互的沟通和交流,以及更正沟通不但引起的不良结果
  • 小型精干队伍对于真正意义上的大型系统,它太慢了。
  • 矛盾:对于效率和概念的完整性,最好由少数干练的人员来设计和开发 VS 对于大型系统,需要大量人手,以使产品能在时间上满足要求

2. Mills的建议

  • 大型项目的每一个部分由一个类似外科手术方式组件的团队解决,由一个人来完成问题的分解,其他人给予支持,以提高效率和生产力。

2.1 首席程序员

  • 亲自定义功能和性能技术说明书,设计程序,编制源代码,测试以及书写技术文档。
  • 要求极高的天分、丰富的经验和应用数学、业务数据处理或其他方面的大量系统知识和应用知识。

2.2 副手

  • 首席的后备,能够完成任何一部分工作,但经验较少。
  • 其作为设计的思考者、讨论者和评估人员。
  • 代表小组与其他团队讨论有关功能和接口问题。
  • 需要详细了解所有的代码,研究设计策略的备选方案
  • 可以编制代码,但对代码的任何部分,不承担具体的开发职责

2.3 管理员

  • 具有人员、薪酬、办公资源等方面的决定权
  • 需要一个控制资源(财务、人力、工作地点和设备)的专业管理,充当与组织中其他管理机构的接口。不需要全职

在有规模公司里,一般情况下并不需要,有专职行政岗位。

2.4 编辑

  • 负责对外和对内的文档生成
  • 根据首席程序员的草稿或口述,进行分析和重新组织,提供各种参考信息和书目,对多个版本进行维护(文档),并监督文档的生成机制

2.5 两个文秘

  • 负责非产品文件和使项目协作一致

在有规模公司里,一般情况下并不需要,有专职行政岗位。

2.6 程序职员

  • 负责维护编程产品库中所有团队的技术记录,承担机器码和刻度文件的相关管理职责。

个人认为。在当下该职责可有可无。或者说该职责,应该以编辑的形式存在,或者用以配合测试人员管理测试用例,或者说产品版本的管理维护。

2.7 工具维护人员

  • 保证所有产品开发用到的工具,如编辑器、编译器、调试器、版本管理工具,CI/CD,系统环境的可靠稳定。响应首席程序员对这些工具的服务的评价反馈。

该职责是很有必要,尤其是较大的公司,应该有专门的团队来做,我们经常会花时间在开发环境搭建、测试环境搭建的繁琐工作中,遇到多人开发时的如编译器版本、测试环境不一致,导致的质量问题。当然,该职责也可以,作为开发体系构建的实施者,用工具来使得设计、开发、测试、维护整个流程标准化、制度化、流程化。

2.8 测试人员

  • 为首席程序员的各个功能,设计系统测试用例,为其日常调试设计测试数据的助手
  • 计划测试的步骤和为单元测试搭建测试平台

2.9 语言专家

文中所述的,在当下感觉是没必要的岗位。可能替换成领域专家更为合适,专精于某一个方向的技术,如视觉算法专家、控制系统设计专家、焊接工艺专家等。

3. 如何运作

  • 首席程序员和副手了解所有的设计和全部的代码。(确保了工作概念上的完整性)
  • 出现观点不一致之处由首席程序员单方面来统一。

4. 团队的扩建

  • 大型系统需要分解
  • 前提:每个部分的概念完整性得到彻底提高
  • 仅协调首席程序员的思路
  • 需要一个系统结构师从上至下地进行所有的设计,来确保整个系统的概念完整性
  • 系统工程师必须清晰划分体系结构和实现之间的界限

5. 个人观点

  • 团队的首要目标是实现产品,但是团队人员的培养也是团队索要承担的重要义务和责任,在该体系下如何让团队的人员得到提升,不可能永远只有一个人是首席程序员。副手可以提升为首席这是显而易见的。但是。但其他人员的提升,如何体现实施??
  • 职责的划分可以简化为:首席、副手、测试、编辑,其他职责的必要性有待实践考证

人月神话读书笔记(3)外科手术队伍相关推荐

  1. 1483_人月神话阅读笔记_外科手术队伍

    全部学习汇总: GreyZhang/The_Mythical_Man_Month: My reading notes of The Mythical Man-Month. (github.com) 继 ...

  2. 人月神话(3)外科手术队伍

    人月神话(3)外科手术队伍 文章目录 人月神话(3)外科手术队伍 思维导图 面临问题 十人团队解决方案 外科医生 副手 管理员 编辑 两个文秘 程序职员 工具维护人员 测试人员 语言专家 如何运作 团 ...

  3. 人月神话(二)外科手术队伍、贵族专制、民主政治和系统设计

    第3章 外科手术队伍 如何在有意义的安排内创建大型的系统? Part 1 问题 研究数据:优秀的程序员和较差的程序员之间在生产率上平均为10:1,数据显示,经验和实际的表现没有相互联系. 对于效率和概 ...

  4. 05人月神话读书笔记之一

    开发一个项目,我们错误的认为用人月这个工作量单位来估计和进行进度安排成本的确随开发产品的人数和时间的不同,有着很大的变化,进度却不是如此.因此我认为用人月作为量一项工作的规模是一个危险和带有欺骗性的神 ...

  5. 人月神话读书笔记(11)----未雨绸缪

    未雨绸缪 图为纽约湾的Tacoma桥由于空气动力学上的错误设计而坍塌的新闻照片.1940年11月7日中午时分,建成仅仅数月的Tacoma桥坍塌,这是桥梁工程史上著名的悲剧.在做项目设计和规划时,一定要 ...

  6. [人月神话]读书笔记9--再论没有银弹(No Silver Bullet Refired)

    再论<没有银弹> ("No Silver Bullet"Refired) ★含糊的表达将会导致误解 □创造性活动包括 (1)概念性结构的形式规格化 (2)使用现实的介质 ...

  7. 1486_人月神话读书笔记_贯彻执行

    全部学习汇总: GreyZhang/The_Mythical_Man_Month: My reading notes of The Mythical Man-Month. (github.com) 还 ...

  8. 06人月神话读书笔记之二

    开发一个软件,我们要有合理的时间进度,开发人员要少而精,概念完整性必须考虑在 内,要尽量做到尽早交流和持续沟通.同时,文档形成了关键的枢纽,每个项目管理的工作都围绕着它们运转,它们是经理们的主要个人工 ...

  9. 人月神话读书笔记(一)

    简单逻辑学:改变思维方式第一书> <批判性思维:带你走出思维的误区> <思考,快与慢> <清醒的艺术>(罗尔夫·多贝里 ) <金字塔原理>(巴巴拉 ...

最新文章

  1. TP,TN,FP,FN
  2. 【 MATLAB 】DFT的性质讨论(二)序列的循环移位及其 MATLAB 实现(频域方法)
  3. opencv进阶学习笔记10:图像金字塔和图像梯度
  4. C语言怎么合并两个有序链表
  5. 二、Linxu的目录结构
  6. Cocos Creator教程 ——(二)UI系统介绍(上)
  7. C# 将外部exe程序 嵌入到自己的窗体界面
  8. php操作pdo,PHP PDO操作API
  9. @EnableAsync annotation metadata was not injected
  10. Java学习笔记 06 数字格式化及数学运算
  11. Latex中的花体格式
  12. Leaflet vs. OpenLayers3哪个是更好的JavaScript 地图客户端
  13. A3文件转换成A4文件
  14. NLP之分词技术理论
  15. Oliver的成绩(score)
  16. Spring Security--基于注解访问控制 @Secured@PreAuthorize
  17. 我们写的程序就像我们的孩子
  18. 程序员分级-八个等级
  19. 【软件定义汽车】【中间件】iceoryx冰羚
  20. html中关于侧边导航栏和导航栏的编写

热门文章

  1. STM32采用串口DMA方式实现发送数据
  2. Java中高级面试题及答案收集(三)
  3. 【怎么用系列】怎样正确使用百度及其他搜索引擎
  4. 【ASM】史上最通俗易懂的ASM教程 ASM 插件
  5. 极光笔记 | 极光PUSH服务助力企业提升抢单速度
  6. vue祖孙组件间传值
  7. 有感于“下一个七年,我是谁?”
  8. php echo输出多了 date(): It is not safe to rely on the system‘s timezone settings
  9. 自用整理的14个超实用PHP自定义函数
  10. STM32——CAN总线通信