人月是神话

拜读完这本74年的大作,我产生了两个想法:

  • 人和月并不能相互转化,因为工程周期并不能随意更改。
  • silver bullet更像倚天剑屠龙刀,无坚不摧,对软件开发造成的巨大障碍和困难都是所向披靡。然后现实中并不存在。

这本书开头讲了一些很轻松的话题:
编程是一种创造性的有趣活动。这种快乐首先来自于创造事物。其次,快乐来自于开发一些对他人有用的东西。这让我想到小孩子从小就有的,对拼装玩具的兴趣。而编程也像这个一样,他能将互相啮合的零部件组装在一起,让他们以一种精妙的方式运行。

而且编程是一种持续学习,且大部分时间,都是单纯的思考的脑力活动。就像诗人一样,程序员可以凭空利用自己的想象来建造自己的城堡。

然而这个职业也有,同样的也有一些烦恼。
完美主义在编程行业中备受推崇,但达到这个目标是非常困难的。另外持续与人交流,寻找bug,以及追求最新的技术,这些都造就了所谓的焦油坑,使从业人员深陷其中。

人月神话

在这个章节中,Brooks首先提出,

所有的编程人员都是乐观主义者,他们往往都相信,一切都将运作良好,每一项任务仅花费它所应该花费的时间。

然而现实往往不尽如人意,构建软件概念以后,在实现过程中往往会遇到许多困难,并且造成一定的延迟。

人月这个名词,是一个衡量劳动量的单位。它有一个很大的迷惑性,就是

“ 用人月作为衡量一项工作的规模,是一个危险和带有欺骗性的神话。”

在这种思维下,人员数量和时间看上去是可以置换的。然而在实际的工作中这是难以实现的,因为这种置换只有在人员之间不需要相互交流的情况下,这才有可能会成立。
一个最典型的例子就是Brooks原则:

“为进度落后的项目增加人手,只会使进度更加落后。”

Brooks他认为,一支优秀的软件开发团队应该是由一流人才组成的,小型精干的队伍。
曾经有一组针对具有经验的程序员,进行测量的调查。发现最好的和最差的表现在生产率上相差将近十倍

然而对于一些大型项目来说,如此的人员配置,会使有真正意义的大型系统进度过慢。
这就造成了一种进退两难的境地,Mills为此提出了一个崭新的,具有创造性的解决方案。那就是建议把大项目分成若干个部分,每个部分由一支类似于外科手术人员构成的开发团队负责。

外科手术人员

Mills的理念就是让编程进行 从个人艺术到公共视线 这样的观念转变,并且将所有的程序和数据看作团队的所有物,而非私人财产。

Brooks主张在系统设计中,概念完整性应该是最重要的考虑因素。在这种情况下,为了反映一系列连贯的设计思路,宁可省略一些不规则的特性和改进。
另外他认为

功能与概念复杂程度的比值,才是衡量系统设计的易用性的最终测试标准。

为了确保概念的完整性,他要求设计必须由一个人,或者非常少数互有默契的人员来实现。

这种理念付诸于大型项目中,就是将设计方法、体系结构方面的工作,与具体实现相分离,这是获得概念完整性的强有力方法。

而且为了达到这个目的,必须有人控制这些概念,这实际上是一种合理的专制统治。他相信依据和规则,对行业是有益的,正所谓“没有规矩不成方圆”

结构师是计算机编程过程中一个很重要的角色,实际情况中,尽早和持续沟通能使结构师具有较好的成本意识,以及使开发人员获得对设计的信心,并且不会混淆各自的责任分工。但是这并不是说结构师能够支配开发人员,他能做的只是建议。

没有银弹

银弹是西方传说中,用于对付人狼的特效药。本书中,brook把进度落后,缺陷很多的软件系统比喻为人狼。并且断言:

在未来的十年内,无论在技术上还是管理方式上,都看不出来有任何突破性的进步,能够保证在十年内大幅度地提高软件生产率的可靠性和简洁性。

Brooks在这篇文章中提出了软件活动的两个概念,一个是根本任务,即打造软件实体的抽象概念.另外一个是次要任务,也就是通过编程实现这个软件概念。

这也就带来了根本困难和次要困难。根本困难在于此,抽象是人类的思维活动,而一个良好的软件系统,具有复杂度,一致性,可变性,不可见性等诸多困难。这些特性对抽象过程提出了很高的要求,而且没有太多的规则和模板可供开发人员参考。也就造成了软件开发中固有的困难。

而对于解决次要困难,可能需要等待辅助条件的进步,欣慰的是,已经逐渐出现了一些突破,例如高级编程语言,分时理念和统一编程环境。

面对这两种困难,Brooks在书中还提出了一些希望,具体有高级编程语言,面向对象编程,人工智能(包括其子领域专家系统),还有图形化编程,程序验证,IDE。

没有银弹

后记感想

四年多年过去了,我们似乎仍然没有看到银弹的出现,软件业的整体生产率也只有提高了1倍,Brooks的断言一直成立。
但也没有必要灰心,说不定在不久以后,会在软件开发行业出现《三体》中的“降维打击”,这些“人狼”将会不战而亡。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,402评论 6 499
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,377评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,483评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,165评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,176评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,146评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,032评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,896评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,311评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,536评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,696评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,413评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,008评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,815评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,698评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,592评论 2 353

推荐阅读更多精彩内容

  • 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及...
    dle_oxio阅读 11,097评论 6 244
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,072评论 25 707
  • 人月神话读书笔记 焦油坑 为什么两个人的创业团队可以超越大公司9倍以上的效率开发任何程序。而大公司的产业化团队效率...
    陈浩要安静阅读 18,427评论 3 34
  • 一、消除隐喻 1、隐喻 软件开发这件事情,出现得很晚。距今只有几十年的时间,关于它的定义,我们可以简单地说:“就是...
    庄表伟阅读 3,057评论 2 15
  • 01 今年3*15的那个周末,小A同学(小可爸爸)接到以前同事的电话,问他要不要出来,大家一起聚一下。 他们所谓聚...
    莫摘花的诗词情怀阅读 973评论 16 18