=====
前言
=====
在这与这段文字之前,我已经阅读过种种关于《人月神话》的文字。评论者既有刘天北这样的美食家,试图在书页中夹点胡椒面以慢慢品味,为了表现食客特有的风格,他的书页都比别人数得仔细。也有 marktsen 这样的速食者,试图几句话就打发了自己或者读者那漉漉的饥肠。
阅读这些文字给我带来的收获是:面对《人月神话》,除了表示五体投地的诚服,你既不能做正面言论(那是多余),也不能做负面言论(那是找事)。
这是一本可怕的书。
我大概花了三周的时间来细读这本书——也许很多人会说我应该花更多的时候或者读更多遍——不过,这不是重点。我在书中印证和找寻思想,并为这本书写下了数百个注释。最终我很遗憾我读了电子版本,因而注释被写在了文档中而不是书页上。如果不是这样,我将没有任何方法扼制自己购买这本书的冲动。
然而,我发现我还是应该来写写这本书的读后感想。我没有使用“评论”这样的词汇,是因为任何的(正面或负面的)评论都不可能撼动《人月神话》的地位,而“感想”是唯一可能供读者借鉴而又不引起争论的东西。
下面的文字分成两个主要的部分。一部分是如何读这本书,如果你已经读得很好,那可以跳过去,这是留给别人的。另一部分,则是讨论那个著名的命题:没有银弹——似乎,不讨论这个命题的话,连感想都不成其为感想,沦为空谈了。
=====
一、《人月神话》的结构及其与组织
=====
我对《人月神话》的内容结构做了一些分析,大概如下:
内容说明
问题域
1
说明“程序 (program) ”不是“产品 (prodouct) ”,更不是“项目 (project) ”。
说明程序员的心理与情绪因素——这是很重要的一个话题。
2
项目的发起、评审与预估(错误的设定项目周期是最大的错误)。
“人月问题”:周期不因为人力投入而变短,事实上它可能更糟糕。
项目定义
3
十个人与几百人面临的问题是不同的。
团队建设
4~5
从设计阶段开始,即致力于获得和维护概念的完整性。
团队管理 - 方向与决策
6
项目过程中的一般性方法。
团队管理 - 一般性方法
7
项目组织过程中的沟通问题。
团队管理 - 沟通问题
8~10
编码过程中的关键问题:
  -项目复杂程度与需要编码的数据呈指数级关系,反过来,减少编码可降低系统复杂性
  -数据的表现形式是编程的根本
  -文档是必须且重要的,但往往不被关注(主要强调重要性)
编码
11
承认变更,承认从需求和设计期就开始的变化。
为应付变化而实现的原型系统。
项目定义 - 需求不确定
12
工具带来效能。
13
强调测试,以提升品质和保障项目目标。
项目管理 - 检测 / 回顾
14
项目控制:进度与里程碑
项目管理 - 控制
15
文档:项目过程文档,包括定义、设计与实现(主要强调方法)
项目管理 - 文档化
16,17
没有银弹、再论没有银弹
18,19
前十五章的回顾(不包括“银弹”的话题)
20
二十年后对上述命题的回顾(包括对银弹现象的进一步解释)
正如 Brooks 说到的,在几十年之后的今天,这本书里的现象或者观点已经为整个行业所认知——无论是从实践中的感受,还是从类似《人月神话》这样的书籍中去获知。其中大多数命题与结论,都在这几十年的开发实施中被印证过,所以它们(我指的是这些命题与结论)备受关注。
我只重述 Brooks 所讲述到的两点。我重述它们的原因,是认为它们还被关注得不够:通过设计来获得系统的一致性,以及更好的文档。
在 Brooks 的讨论中,不但要“获得”系统的一致性,还是尽力去保障它。 Brooks 认为“获得和保障”它的角色是并不是同一个人:前者是结构师(第 3 ~ 4 章所论),后者是项目经理(第 5 章所论)。对于这两个角色(或相似的角色),在第 7 章“大型编程项目的组织架构”中, Brooks 提出:要么产品负责人任总指挥,技术主管充当其左右手;或者反之。 Brooks 认为前者更适于大型项目,后者更适于(相对)小型的项目。
在人月神话中对这两个角色的用词与我们现在(至少是翻译过来的)用词略有点不一致。事实上书中的产品负责人相当于现在的项目经理,而技术主管相当于技术经理(至少参与系统设计或直接由架构师担任)。
Brooks 并没有低估(或错误认识)系统一致性和文档的重要性。但除了这两点未被足够重视之外,我想前十五章的内容不必再复述了。如果你不能理解我为什么不再复述,那可能你需要更多的工程经验或者理论基础。除非你决心认为大师的一切都必须被象圣经一样地重述,但那只是你个人的信仰,或者喜好。
下一节==>>

杀不死的人狼——我读《人月神话》(一)相关推荐

  1. 杀不死的人狼——我读《人月神话》(四)

    <<==上一节 ===== 四.没有银弹,或人狼杀不死 ===== 人狼这个动物很奇怪,皮肉坚实还是自疗系的,所以要么砍它不动,要么杀它不死.这种动物如同习得(传说中的)金钟罩功夫,刀枪不 ...

  2. 杀不死的人狼——我读《人月神话》(五)

    <<==上一节 ===== 五.从广义工程到狭义工程 ===== 现在我们回到一个实际的问题上:工程的本质需求是什么?如果我问一千个人工程的本质,可能会得到一千种答案.因为大家离本质的东西 ...

  3. 杀不死的人狼——我读《人月神话》(四) 1

    2007年03月15日 02:11:00 >>==上一节 ===== 四.没有银弹,或人狼杀不死 ===== 人狼这个动物很奇怪,皮肉坚实还是自疗系的,所以要么砍它不动,要么杀它不死.这种 ...

  4. 杀不死的人狼——我读《人月神话》(三)

    <<==上一节 =====  三.<人月神话>是预言了未来还是控制了未来? ===== 事实是:我们现在的很多工程知识,--无论是从书上看到的,还是从实践中体验到的--大多未曾 ...

  5. 杀不死的人狼——我读《人月神话》(二)

    <<== 上一节  ===== 二.哪些是现象,哪些是答案,而哪些才是本质? ===== Brooks 在 1961 年至 1964 年间,主持与领导了被称为人类从原子能时代进入信息时代标 ...

  6. 没有银弹-读《人月神话》重点摘录

    2019独角兽企业重金招聘Python工程师标准>>> 作为软件工程的经典著作,<人月神话>的主要贡献是对软件开发过程的几个重要关键点,提出了独到的见解.         ...

  7. 人月神话——我从绝望中读到了希望

    <人月神话>是我在入职培训时被被培训员屡次提及并且奉为神话的一本软件工程类书籍,当时的培训里有一个下午的课程专门来讲"银弹"这件事儿,当年初入此行,听个懵懵懂懂.最近被 ...

  8. 也读《人月神话》:没有银弹的软件工程

    一.关于人月神话这本书 记得在上大学的时候,就经常听学长和老师讲起<人月神话>,但是却一直没有阅读.记得当时一听到这个书名,还以为是个神马科幻类别的书,结果是个软件工程方面的书籍.这本书是 ...

  9. 读《人月神话》有感2

    人月神话的核心法则:概念完整性和架构师.Books认为,一个整洁.优雅的变成产品必须向它的每位用户提供一个条理分明的概念模型,这个模型描述了应用,实现应用的方法以及用来指明操作和各种参数的用户界面使用 ...

最新文章

  1. button 样式_实战PyQt5: 111-可以使用QSS样式表的部件
  2. DBUtils连接池,websocket
  3. 一天学完spark的Scala基础语法教程十三、文件IO操作(idea版本)
  4. python的read_csv_python,pd.read_csv成熟导入
  5. nagios-3种报警方式–声音–email/邮件—短信
  6. mongo 多条件筛选_excel成本统计:如何进行区域筛选,多条件求和?
  7. Nginx 的常用命令
  8. 我如何开始学习Web开发
  9. Spark Session 与 Spark Context的区别
  10. 淘宝客商城带分销APP源码(原生双端IOS+安卓+后台+数据 库+开发文档),用于学习或二开使用,开发语言:安卓java,苹果oc,后台php。
  11. STM32 串口通讯及实现
  12. C# wpf 自定义标题栏及无边框窗口
  13. 来自阿里巴巴佛系Java程序员的指南,附项目源码
  14. 带电粒子在匀强电场中的运动(忽略重力)
  15. 【Scratch二次开发】04-构建离线版本
  16. 2022年湖南省证券从业资格(证券投资基金)练习题及答案
  17. c语言程序设计教程+西安交通大学,大学C程序设计教程-西安交通大学.ppt
  18. PaddleOCR二次全流程——5.FAQ记录
  19. 洛谷P1914 小书童——凯撒密码经典解法
  20. java 控制鼠标点击_java 如何实现控制鼠标点击

热门文章

  1. yagni原则_YAGNI喜欢干吻
  2. 基于JAVA的KTV点歌系统,管理系统。
  3. 你还没有变成真正的孙悟空托世
  4. oppok9pro电池续航怎么样
  5. OpenCV实践之路——人脸识别之一数据收集和预处理
  6. 安徒生---海的女儿
  7. 服务器被黑客攻击和被挖矿之后的SSH安全防御 | SSH security defense after server is hacked and mined
  8. Linux系统盘满了,如何解决。
  9. App渗透中常见的加密与解密
  10. Lisa随手记 1.7 发布