本书自第一版以来,畅销20余年不衰,是软件领域绝无仅有的必读经典。本文作者为人们管理复杂项目提供了颇具洞察力的见解,既有很多发人深省的观点,也有大量的软件工程实践。本书内容来自布鲁克斯在IBM公司 System/360 家族和OS/360中的项目管理经验。在本书第一次出版32年后的今天,布鲁克斯重新审视了他原先的观点,增加了一些新的想法和建议。既方便了熟悉原有内容的人们,也方便了许多第一次阅读它的读者。
第1章 焦油坑
编程系统产品
职业的乐趣
职业的苦恼
第2章 人月神话
乐观主义
人月
系统测试
空泛的估算
重复产生的进度灾难
第3章 外科手术队伍
问题
Mills的建议
如何运作
团队的扩建
第4章 贵族专制、民主政治和系统设计
概念的完整性
获得概念的完整性
贵族专制统治和民主政治
在等待时,实现人员应该做什么
第5章 画蛇添足
结构师的交互准则和机制
自律——开发第二个系统所带来的后果
第6章 贯彻执行
文档化的规格说明——手册
形式化定义
直接整合
会议和大会
多重实现
电话日志
产品测试
第7章 为什么巴比伦塔会失败
巴比伦塔的管理教训
大型编程项目中的交流
项目工作手册
大型编程项目的组织架构
第8章 胸有成竹
Portman的数据
Aron的数据
Harr的数据
OS/360的数据
Corbat6的数据
第9章 削足适履
作为成本的程序空间
规模控制
空间技能
数据的表现形式是编程的根本
第10章 提纲挈领
计算机产品的文档
大学科系的文档
软件项目的文档
为什么要有正式的文档
第11章 未雨绸缪
试验性工厂和增大规模
唯一不变的就是变化本身
为变更计划系统
为变更计划组织架构
前进两步,后退一步
前进一步,后退一步
第12章 干将莫邪
目标机器
辅助机器和数据服务
高级语言和交互式编程
第13章 整体部分
剔除bug的设计
构件单元调试
系统集成调试
第14章 祸起萧墙
里程碑还是沉重的负担
“其他的部分反正会落后”
地毯的下面
第15章 另外一面
需要什么样的文档
流程图
自文档化的程序
第16章 没有银弹
摘要
介绍
是否一定那么困难呢?——根本困难
以往解决次要困难的一些突破
银弹的希望
针对概念上根本问题的颇具前途的方法
第17章 再论“没有银弹”
人狼和其他恐怖传说
存在着银弹——就在这里!
含糊的表达将会导致误解
Harel的分析
Jones的观点——质量带来生产率
那么,生产率的情形如何
面向对象编程——这颗铜质子弹可以吗
重用的情况怎样
学习大量的词汇——对软件重用的一个可预见,但还没有被预言的问题
子弹的本质——形势没有发生改变
第18章 《人月神话》的观点:是与非?
第1章 焦油坑
第2章 人月神话
第3章 外科手术队伍
第4章 贵族专制、民主政治和系统设计
第5章 画蛇添足
第6章 贯彻执行
第7章 为什么巴比伦塔会失败?
第8章 胸有成竹
第9章 削足适履
第10章 提纲挈领
第11章 未雨绸缪
第12章 干将莫邪
第13章 整体部分
第14章 祸起萧墙
第15章 另外一面
第1版结束语
第19章 20年后的《人月神话》
为什么要出版20周年纪念版本
核心观点——概念完整性和结构师
开发第二个系统所引起的后果——盲目的功能
和频率猜测
图形界面的成功
没有构建舍弃原型——瀑布模型是错误的!
增量开发模型更佳——渐进地精化
关于信息隐藏,Parnas是正确的,我是错误的
人月到底有多少神话色彩?Boehm的模型和数据
人就是一切(或者说,几乎是一切)
放弃权力的力量
最令人惊讶的新事物是什么?数百万的计算机
全新的软件产业——塑料薄膜包装的成品软件
买来开发——使用塑料包装的成品软件包作为构件
软件工程的状态和未来
结束语:令人向往、激动人心和充满乐趣的50年
注解与参考文献
印象里,从谭浩强老师的《BASIC语言》在全国畅销,最终销量超过1200万册时,民族软件产业就承载了国人太多的期待。计算机图书出版者也与读者结下了不解之缘。人们将软件产业看作中华民族腾飞的一次历史性机遇。的确,软件产业是头脑产业,而中华民族最不缺的就是有智慧的人才。几台微机,一本指南,似乎就可以开公司编程赚线,而且可以出口赚美元。然而,20多年转瞬即逝,我们听说过很多软件英雄和编程奇才的故事,却没有产生一个有国际影响的软件品牌或有国际竞争力的民族软件企业。就在我们身边,印度的软件产业却已迅速崛起,产值10年增长了10倍,数十家企业通过了CMM5级认证,印度已经成为世界第二大软件出口国。目前,中国经济发展水平可能要领先印度10年,但中国软件产业却落后印度将近10年,原因何在?
几乎所有的人都认为,软件开发是年轻人的职业。程序员们一边挥着汗水,辛苦地熬夜写代码,一边又对自己30岁以后的职业发展方向充满惶恐。实际上,我国最缺的是有10年以上经验的软件工程师。金山软件公司总裁雷军曾说过:“在印度,包括在美国,我见到的项目经理都是三四十岁的人,他们‘越老越值钱’,有些人甚至拥有超过20年的行业经验。”为什么中国的程序员总是在不断学习新的开发工具、钻研程序代码,而不能逐步提升自己的视野、思维和经验?
作为出版者,我们一直关注着中国软件产业的发展,也时刻检讨着自己的责任。长期以来,在各大城市书城和计算机专业书店的书架上,很难找到几本软件管理和软件工程的图书,更多的书店里甚至根本没有软件工程图书的分类。同样在印度,软件管理的图书比比皆是,数量远远超过编程指南的图书。在全球最大的网上书店亚马逊网站上,软件管理和软件工程方面的图书也是门类清晰,为数众多。对这种强烈反差长期的漠视,也许正是我们出版者的责任。
于是,在2001年的秋季,我们在一个月的时间内,走访了软件行业中的各大专业媒体、网站、院校和企业,与50多位业界专家进行了交流和沟通,最终确定了引进出版一套国外软件管理和软件工程经典图书的设想,希望借此能将国外成熟先进的软件管理思想和管理经验系统引进到国内,从而推动中国的软件产业的发展,对广大软件工程师的成长和素质提升有所帮助。我们相信,中国软件产业的繁荣和发展,不仅有赖于国家产业政策的支持,还有赖于从业者管理理念的突破和管理思想的普及,更有赖于软件产业中有人文精神的优秀人才的涌现和具有核心竞争力的优秀企业的诞生。
经过将近一年的努力,在业界许多专家的支持下,我们抱着宁缺毋滥的想法,将国外软件管理和软件工程的经典图书完整地筛选了一遍后,选定了几本精品,其中的每一本均是相关领域中最经典或最具代表性的作品,有的书曾在国外屡获大奖;有的书已经出版20年,却仍然畅销不衰,而这本《人月神话》在其出版的25年后我们仍然极力推荐,因为它确实是软件管理工程图书中的极品,值得一版再版。 在本书引进和出版的过程中,我们得到了《IT经理世界》、《程序员》杂志、UMLcllina网站等机构和众多业界专家学者的真诚理解和大力支持,在此向他们一并致以衷心的感谢。
2007年6月
我依然记得那种向往和开心的感觉——当我在1944年8月7日读到哈佛大学Mark I型计算机研制成功的报道时——那时候我才13岁。Mark I是电子机械学上的奇迹,哈佛大学的Aiken是它的结构设计师,而IBM的工程师Clair Lake,Benjamin Durfee和FrancisHamilton是它的实现设计师。同样令人向往的是读到Vannevar Bush的1945年4月发表在亚特兰大月刊上的论文“That We May Think”的时候。在这篇论文中,他建议将大量的知识组织成超文本的网络方式,从用户的计算机上,可以跟随已有的链接,也可以跳到新的相关链接,从而实现链接之间的漫游。
我对计算机的热情在1952年进一步高涨,因为得到了IBM在纽约恩迪科特的一份暑期工作。正是那次,我有了在IBM 604上编程的实际经验,也了解了如何编制IBM 701(它的第一个存储程序计算机)程序的正式指令;从哈佛大学Aiken和Iverson名下毕业终于让我的职业梦想变成了现实,并且,就这样沉迷了一辈子。感谢上帝,让我成为了为数不多的那些开开心心地做着自己喜欢的工作的人之一。
我实在无法想象还有哪种生活会比热爱计算机更加激动人心,自从从真空管发展到晶体管,再到集成电路以来,计算机技术已经飞速发展。我用来工作的第一台计算机,是从哈佛刚刚出炉的IBM 7030Stretch超级计算机,Stretch在1961—1964年间都是世界上运算速度最快的计算机,一共卖出了9台。而我现在用的计算机,MacintoshPowerbook,不但快,还有大容量内存和大容量硬盘,而且便宜了1000倍(如果按定值美元来算,便宜了5000倍)。我们依次看到了计算机革命、电子计算机革命、小型计算机革命和微型计算机革命,这些技术上的革命每一次都带来了计算机数量上的剧增。
在计算机技术进步的同时,计算机相关学科知识也在飞速发展。当我在20世纪50年代中期刚从学校毕业的时候,能看完当时所有的期刊和会议报告,掌握所有的潮流动向。而我现在只能对层出不穷的学科分支遗憾地说“再见”,对我所关注的东西也越来越难以全部掌握。兴趣太多,令人兴奋的学习、研究和思考的机会也太多——多么不可思议的矛盾啊!这个神奇的时代远远没有结束,它依然在飞速发展。更多的乐趣,尽在将来。