美文网首页
人月是神话

人月是神话

作者: 周偉誠 | 来源:发表于2017-09-20 17:46 被阅读0次

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

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

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

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

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

人月神话

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

没有银弹

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

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

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

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

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

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

没有银弹

后记感想

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

相关文章

  • 人月是神话

    拜读完这本74年的大作,我产生了两个想法: 人和月并不能相互转化,因为工程周期并不能随意更改。silver bul...

  • 人月神话

    阅读经典——《人月神话》02 何谓人月神话——The Mythical Man-month?讲真,这句英语按字面来...

  • 初窥软件项目管理——《人月神话》读书笔记

    人月神话读书笔记 借助软件工程作业的机会,我阅读了Frederick P. Brooks的《人月神话》这本书,作者...

  • 好书也需要好时机

    刚上大学时,就听说《人月神话》是软件工程领域必读的经典。我去图书馆把《人月神话》借了回来,但说实话,当时读了四分之...

  • 《人月神话》

    本周读了人月神话,主要是计算机方面的。读的比较粗糙,没有仔细记笔记。大致的一些内容做简单的分享。 编程是创造事...

  • 人月神话

    1.焦油坑 2.人月神话 3.外科手术队伍 4.贵族专治 5.画蛇添足 6.贯彻执行 7.为什么巴比伦会失败 8....

  • 人月神话

    自上而下的合理分工 下面我们不妨用公司结构来做类比。首先就像总工程师一样,CEO负责将公司任务进行合理划分,并通过...

  • 人月神话

    1.程序,编程产品,编程系统,编程系统产品 2.创造性活动:构思,实现,交流 3.团队建立 4.概念的一致性 5....

  • 人月神话

    人月神话读书笔记 人月神话是关于软件工程的一本比较经典的著作,它提出了很多软件工程管理方面的一致性的问题和关于实践...

  • 人月神话

    程序员的世界里,有一本很经典的书,就叫《人月神话》,就是在驳斥这种算法。 这本书的作者是图灵奖的得主布鲁克斯。他的...

网友评论

      本文标题:人月是神话

      本文链接:https://www.haomeiwen.com/subject/xheysxtx.html