人月神话(2)

我不知道为什么作者要拿外科医生举例子,在我眼里足球队更合适,或者说更贴近生活,让人们更容易理解。

人的专业水平,在刚开始其实没什么可比性,试问:一个有小学学历的人和一个有初中学历的人在大公司招聘时有什么区别?而如果一个研究生,一个博士相比呢?从高处开始,人每上一个台阶,实际上,他的价值和水准就会上升数个层次。在这一章中,作者举了一个例子,一个经验丰富的程序员比一个经验少的程序员,二者的水平相同,效率却相差7倍。这就是为什么公司高管总是喜欢精英的团队而不是怀有一腔热情的普通员工。团队的配合会使这种差距不断扩大,当然,前提是任务的量没有超过这个小队所能承受的极限。

假设我现在要开始开发一款游戏,我召集了一个二十人的精英队伍,为了完成一部神作,准备花多长时间?现在的作品,动不动就有上千人投入进去,仅靠二十个人,就算他们的效率极高,是普通程序员的10倍,那也要耗费数倍的时间才能做到相同的程度。这时,要玩的人等的花都谢了。这还怎么盈利?对于大型系统,不得不用很多人,而为了概念和效率的完整性,用少数人显得更明智。陷入了死循环。

这个Mills是谁我也不清楚,总之是个专家。他提出了一个很抽象的概念。众所周知,当任务量过于庞大,分割成多数的小程序是普遍思想。他同样是这样的,只不过他的分类很有特点。就像外科医生团队:外科医生,副手,管理员,编辑,文秘,程序职员,工具维护人员,测试人员,语言专家。每个部分有一名经验丰富的专业人士,然后分配数百人在他的名下,协助他工作。由他将工作再次细分,分配给数百人。这并不代表他对负责的部分理解减少,相反,他必须清楚里面的一切,这才算真正掌控了份内的工作。

这个思路起源于上一章的人月关系。增加人数,使得效率急剧下降的实质是陌生人员间的交流耗费了绝大部分精力,单纯就工作的生成量来说,二十人与几千人显然无法比较。这样一来,增加人数的同时尽可能的简化交流就是解决问题的关键。每个部分数百人的成果汇聚到一个人的数据库中,然后这个外科医生队伍再进行首脑间的交流,简化了庞大的体系的交流时间,这才做出了高效。普通人员无需了解整个系统,概念的完整性由各部分负责人掌握,保证了程序化的流程,同时得以以上帝的视角来俯视整个程序,减少了很多不必要的工作量。

同时,这个思想的实行收束了很多员工的创造性。至于这点是好是坏,属于下章的内容。不会存在很多人投票表决的现象,因为普通员工,甚至包括负责人的意见向首席医生提交的时候,由总负责人来决断是否采用。这样一来更是减少了极多的时间。一个任务中,普通来说讨论的时间与执行的时间往往是不相上下的,上述的独断虽然有些扼杀创造性,但是却保证了系统的完整性,这才是最主要的目的。

总之,协调少数人,指挥大多数人,通过外科医生式的方案进行角色的分工和技术具有极高的效率。现在已经成为了大多公司的开发体系。这个概念看似普通,但它没有被提出的时候,想到这种方案其实也挺难的。写完我就明白了为什么不能拿足球队当做比喻了,因为足球队的各个部分很平均,没有人能独断的。

                                                                                                                        To be continue                  

转载于:https://www.cnblogs.com/ruishiyu18----/p/9693834.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365611.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql查询出过去一个月_Mysql查询今天、昨天、7天、近30天、本月、上一月 数据...

今天select * from 表名 where to_days(时间字段名) to_days(now());昨天SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) < 17天SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) < date(时间字段名)近30天SELECT * FROM 表名 where…

Jar Hell变得轻松–用jHades揭秘classpath

Java开发人员将不得不面对的最困难的问题是类路径错误&#xff1a; ClassNotFoundException &#xff0c; NoClassDefFoundError &#xff0c;Jar Hell&#xff0c; Xerces Hell和company。 在本文中&#xff0c;我们将探究这些问题的根本原因&#xff0c;并了解最小的工具&am…

图像处理中常见的时域与频域区别与关系

本文纯为转载只做个人学习记录用&#xff0c;请自动点击链接到作者原文&#xff1a;https://blog.csdn.net/samkieth/article/details/49561539 一、什么是时域 时域是描述数学函数或物理信号对时间的关系。例如一个信号的时域波形可以表达信号随着时间的变化。 二、什么是频域…

程序控制发送文件到邮箱_Kindle电子邮箱推送

Kindle 推送支持的格式目前 Kindle 推送仅支持以下几种格式。需要注意的是&#xff0c;AZW 和 AZW3 是两种不同的格式&#xff0c;虽然这两种格式 Kindle 设备都支持阅读&#xff0c;但是亚马逊的个人文档服务支持推送 AZW 但是不支持 AZW3。Kindle 格式 (.mobi 或 .azw) * 推荐…

[USACO06JAN] 牛的舞会 The Cow Prom

题目描述 The N (2 < N < 10,000) cows are so excited: its prom night! They are dressed in their finest gowns, complete with corsages and new shoes. They know that tonight they will each try to perform the Round Dance. Only cows can perform the Round D…

前端js 实现文件下载

https://www.zhangxinxu.com/wordpress/2017/07/js-text-string-download-as-html-json-file/ 侵删 1.H5 download属性 function downFile(content, filename) {// 创建隐藏的可下载链接var eleLink document.createElement(a);eleLink.download filename;eleLink.style.disp…

mysql的英文字母_MySQL中查询的有关英文字母大小写问题的分析

mysql数据库在做查询时候&#xff0c;有时候是英文字母大小写敏感的&#xff0c;有时候又不是的&#xff0c;主要是由mysql的字符校验规则的设置决定的&#xff0c;通常默认是不支持的大小写字母敏感的。1. 什么是字符集和校验规则&#xff1f;字符集是一套符号和编码。校对规则…

JDK8 lambda的会话指南–术语表

上次出现…我写了一篇与JDK8为我们提供的新方法有关的文章。 最令我兴奋的功能是lambda。 我必须承认&#xff0c;在即将成为浪子的第一年&#xff08;在此期间&#xff0c;我使用C&#xff03;开发了该产品&#xff09;&#xff0c;我喜欢LINQ和它可以做的漂亮&#xff0c;优雅…

写接口给别人调用 推送数据到我们_我们写了一个超好用的抖音矩阵数据管理工具...

我最近跑了十来个抖音号&#xff0c;遇到一些问题&#xff0c;然后通过我们NB的程序员解决了。如果你也在做抖音矩阵&#xff0c;那这些问题你肯定也会遇到&#xff0c;所以我把解决问题的方法工具化了&#xff0c;给大家用。我遇到的最大的问题&#xff0c;就是账号数据的同步…

php crypt mysql password_使用PHP 5.5的password_hash和password_verify函数

使用PHP 5.5的password_hash和password_verify函数假设我想为用户存储密码&#xff0c;这是使用PHP 5.5的password_hash()功能(或者这个版本的PHP 5.3.7&#xff1a;https&#xff1a;//github.com/ircmaxell/password_compat)的正确方法吗&#xff1f;$options array("c…

Mysql order by 导致 using filesorting

https://www.cnblogs.com/drcoding/p/4942277.html转载于:https://www.cnblogs.com/eason-d/p/9700526.html

angular 拼接html 事件无效

主要是要引用$compile方法 更多专业前端知识&#xff0c;请上 【猿2048】www.mk2048.com

更好地利用Pmd,Findbugs和CheckStyle的结果。

我们可以列举许多Java静态分析工具&#xff0c;每种工具都专注于特定领域并具有其优势&#xff0c;我们可以列举一下&#xff1a; Pmd是基于静态规则集的Java源代码分析器&#xff0c;它识别潜在的问题&#xff0c;例如&#xff1a; 可能的错误-空的try / catch / finally / s…

Java基础知识(数据类型和集合)

一、数据类型 包装类型 包装类型是对基本数据类型不足之处的补充。 基本数据类型的传递方式是值传递&#xff0c;而包装类型是引用传递&#xff0c;同时提供了很多数据类型间转换的方法。 Java1.5 以后可以自动装箱和拆箱 二、集合 List&#xff1a;有序、可重复。可以通过索引…

python 局域网 主机名_使用python获取连接到本地网络(基于主机名)的所有设备的ip...

这绝对不是重复的。在我正在做一个应用程序&#xff0c;我需要找到我的设备的IP地址。我知道他们的名字&#xff0c;通过他们的名字我需要得到他们的知识产权。Linux应该很简单&#xff0c;但我需要跨平台的态度&#xff0c;因此我使用python。在我已经知道解决方案&#xff1a…

mfc使用cef源代码实现_如何获得微信小游戏跳一跳源码以及源代码组合包括哪些...

很多小游戏都是由源代码编写而成的&#xff0c;那大家知道源代码组合包括哪些吗?手机游戏源代码怎么使用的呢?还有&#xff0c;如何获得微信小游戏跳一跳源码?下面就由奇瑰网小编带大家来了解一下相关的内容吧。   源代码组合包括哪些   源代码作为软件的特殊部分&#…

js 分页插件(jQuery)

参考&#xff1a;http://www.jb51.net/article/117191.htm 侵删 css 部分 charset "utf8"; *{box-sizing: border-box;padding: 0;margin: 0; } .page{font-size: 13px;text-align: center;margin-top: 20px; } .page .page_to{display: inline-block;max-width: 25…

机器学习过程中欠拟合和过拟合的诊断及解决方法

1.Diagnosing bias vs. variance 2.Regularization and bias/variance 3.Learning curves 4.Deciding what to try next 转载于:https://www.cnblogs.com/CoolJayson/p/9704385.html

微信 python 2020_2020年最新的Python操控微信教程

​自从微信禁止网页版登陆之后&#xff0c;itchat 库实现的功能也就都不能用了&#xff0c;那现在 Python 还能操作微信吗&#xff1f;答案是还可以。目前有一个项目 WechatPCAPI 可以对微信进行操作&#xff0c;简单来说它是直接操作 PC 版微信客户端的&#xff0c;当然它有一…

高级Java泛型:检索泛型类型参数

在JDK5中引入Java泛型之后&#xff0c; Java泛型Swift成为许多Java程序的组成部分。 但是&#xff0c;乍一看似乎很简单的Java泛型&#xff0c;程序员很快就会迷失此功能。 大多数Java程序员都知道Java编译器的类型擦除 。 一般来说&#xff0c;类型擦除意味着有关Java类的所有…