人月神话

----------------------- Page 1-----------------------THETHEMYTHICALMYTHICALMAN-MONTHMAN-MONTH人月神话人月神话FREDERICK P. BROOKS, JR.翻译:Adams Wang----------------------- Page 2-----------------------关于作者Frederick P. Brooks,Jr.是北卡罗来纳大学Kenan-Flagler 商学院的计算机科学教授,北卡来罗来纳大学位于美国北卡来罗来纳州的查布尔希尔。Brooks被认为是“IBM 360系统之父”,他担任了360 系统的项目经理,以及360操作系统项目设计阶段的经理。凭借在上述项目的杰出贡献,他、Bob Evans 和Erich Bloch 在1985 年荣获了美国国家技术奖(National Medal of Techology)。早期,Brooks 曾担任IBM Stretch 和Harvest 计算机的体系结构师。在查布尔希尔,Brooks博士创立了计算机科学系,并在1964 至1984 年期间担任主席。他曾任职于美国国家科技局和国防科学技术委员会。Brooks 目前的教学和研究方向是计算机体系结构、分子模型绘图和虚拟环境。----------------------- Page 3-----------------------1 9 7 5 年 版 献 辞致两位特别丰富了我IBM岁月的人:Thomas J. Watson, Jr.,他对人们的关怀在他的公司依然无所不在和Bob O. Evans,他大胆的领导使工作成为了探险。1 9 9 5 年 版 献 辞致Nancy,上帝赐给我的礼物。----------------------- Page 4-----------------------二十周年纪念版序言(Preface to the 20thAnniversary Edition )令我惊奇和高兴的是,《人月神话》在20年后仍然继续流行,印数超过了250,000。人们经常问,我在1975 年提出的观点和建议,哪些是我仍然坚持的,哪些是已经改变观点的,是怎样改变的?尽管我在一些讲座上也分析过这个问题,我还是一直想把它写成文章。Peter Gordon 现在是Addison-Wesley 的出版伙伴,他从1980 年开始和我共事。他非常耐心,对我帮助很大。他建议我们准备一个纪念版本。我们决定不对原版本做任何修订,只是原封不动地重印(除了一些细小的修正),并用更新的思想来扩充它。第16 章重印了一篇在1986 年IFIPS 会议上的论文《没有银弹:软件工程的根本和次要问题》。这篇文章来自我在国防科学委员会主持军用软件方面研究时的经验。我当时的研究合作者,也是我的执行秘书,Robert L. Patrick 帮助我回想和感受那些做过的软件大项目。1987年,IEEE 的《计算机》杂志重印了这篇论文,使它传播得更广了。《没有银弹》被证明是富有煽动性的,它预言十年内没有任何编程技巧能够给软件的生产率带来数量级上的提高。十年只剩下一年了,我的预言看来安全了。《没有银弹》激起了越来越多文字上的剧烈争论,比《人月神话》还要多。因此在第17章,我对一些公开的批评作了说明,并更新了在1986年提出的观点。在准备《人月神话》的回顾和更新时,一直进行的软件工程研究和经验已经批评、证实和否定了少数书中断言的观点,也影响了我。剥去辅助的争论和数据后,把那些观点粗略地分类,对我来说很有帮助。我在第18 章列出这些观点的概要,希望这些单调的陈述能够引来争论和证据,然后得到证实、否定、更新或精炼。第19章是一篇更新的短文。读者应该注意的是,新观点并不象原来的书一样来自我的亲身经历。我在大学里工作,不是在工业界,做的是小规模的项目,不是大项目。自1986年以来,我就只是教授软件工程,不再做这方面的研究。我现在的研究领域是虚拟环境及其应用。在这次回顾的准备过程中,我找了一些正工作在软件工程领域的朋友,征求他们的当- i ------------------------ Page 5-----------------------前观点。他们很乐意和我共享他们的想法,并仔细地对草稿提出了意见,这些都使我重新受到启发。感谢Barry Boehm、Ken Brooks、Dick Case、James Coggins、Tom Demarco、JimMcCarthy、David Parnas、Earl Wheeler和Edward Yourdon。感谢Fay Eard 出色地对新的章节进行了技术加工。感谢我在国防科学委员会军事软件工作组的同事Gordon Bell、Bruce Buchanan、RickHayes-Roth,特别是DavidParnas,感谢他们的洞察力和生动的想法。感谢Rebekah Bierly根本的”和“次要的”,这是受Nancy对16章的论文进行了技术加工。我把软件问题分成“Greenwood Brooks 的启发,她在一篇Suzuki 小提琴教育的论文中应用了这样的分析方法。在1975 年版本的序言中,Addison-Wesleys 出版社按规定不允许我向它的一些扮演了关键角色的员工致谢。有两个人的贡献必须被特别提到:执行编辑Norman Stanton 和美术指导Herbert Boes。Boes设计了优雅的风格,他在评注时特别提到:“页边的空白要宽,字体和版面要有想像力”。更重要的是,他提出了至关重要的建议:为每一章的开头配一幅图片(当时我只有“焦油坑”和“兰斯大教堂”的图片)。寻找这些图片使我多花了一年的时间,但我永远感激这个忠告。Soli Deo gloria-愿神独得荣耀。查珀尔希尔,北卡罗来纳 F.P.B., Jr.1995年3 月- ii ------------------------ Page 6-----------------------第一版序言(Preface to the First Edition)在很多方面,管理一个大型的计算机编程项目和其它行业的大型工程很相似——比大多数程序员所认为的还要相似;在很多另外的方面,它又有差别——比大多数职业经理所认为的差别还要大。这个领域的知识在累积。现在AFIPS (美国信息处理学会联合会)已经有了一些讨论和会议,也出版了一些书籍和论文,但是还没有成型的方法来系统地进行阐述。提供这样一本主要反映个人观点的小书看来是合适的。虽然我原来从事计算机科学的编程方面的工作,但是在1956-1963 年间自动控制程序和高级语言编译器开发出来的时候,我主要参加的是硬件构架方面的工作。在1964 年,我成为操作系统OS/360 的经理,发现前些年的进展使编程世界改变了很多。管理OS/360 的开发是很有帮助的经历,虽然是失败的。那个团队,包括我的继任经理F. M. Trapnell,有很多值得自豪的东西。那个系统包括了很多优秀的设计和实施,成功地应用在很多领域,特别是设备无关的输入输出和外部库管理,被很多技术革新广泛复制。它现在是十分可靠的,相当有效,和非常通用的。但是,并不是所有的努力都是成功的。所有OS/360 的用户很快就能发现它应该做得更好。设计和实现上的缺陷在控制程序中特别普遍,相比之下,语言编译器就好得多。大多数这些缺陷发生在1964-1965年的设计阶段,所以这肯定是我的责任。此外,这个产品发布推迟了,需要的内存比计划中的要多,成本也是估计的好几倍,而且第一次发布时并不能很好地运行,直到发布了几次以后。就象当初接受OS/360 的任务时协商好的,在1965 年离开IBM 后,我来到查珀尔希尔。我开始分析OS/360 的经验,看能不能从中学到什么管理和技术上的教训。特别地,我要说明System/360 硬件开发和OS/360 软件开发中的管理经验是非常不同的。对Tom Watson关于为什么编程难以管理的探索性问题,这本书是一份迟来的答案。在这次探索中,我和 1964-65 年的经理助理 R.P.Case,还有 1965-68 年的经理F.M.Trapnell,进行了长谈,从中受益良多。我对比了其他大型编程项目的经理的结论,包括M.I.T.的F.J.Corbato,Bell 电话实验室的V.Vyssotsky,International Computers- iii ------------------------ Page 7-----------------------Limited 的Charles Portman,苏联科学院西伯利亚分部计算实验室的A.P.Ershov,和IBM的A.M.Pietrasanta。我自己的结论体现在下面的文字中,送给职业程序员、职业经理、特别是程序员的职业经理。虽然写出来的是分离的章节,还是有一个中心的论点,特别包含在第2-7 章。简言之,我相信由于人员的分工,大型编程项目碰到的管理问题和小项目区别很大;我相信关键需要是维持产品自身的概念完整性。这些章节探讨了其中的困难和解决的方法。后续的章节探讨软件工程管理的其他方面。这个领域的文献并不多,但散布很广。因此我尝试给出参考资料,说明某个特定知识点和指引感兴趣的读者去看其他有用的工作。很多朋友读过了本书的手稿,其中一些朋友给出了很有帮助的意见。这些意见很有价值,但为了不打乱文字的通顺,我把它们作为注解包含在书中。因为这本书是随笔不是课本,所有的参考文献和注解都被放到书的末尾,建议读者在读第一遍时略去不看。深切感谢Sara Elizabeth Moore 小姐,David Wagner 先生,和Rebecca Burris夫人,他们帮助我准备了手稿。感谢Joseph C.Sloane 教授在图解方面的建议。查珀尔希尔,北卡罗来纳 F.P.B., Jr1974年10月- iv ------------------------ Page 8-----------------------目录(Contents)二十周年纪念版序言 (PREFACE TO THE 20TH ANNIVERSARYEDITION )...................... I第一版序言(PREFACE TO THE FIRST EDITION )............................................................ III目录(CONTENTS).....................................................................................................................V焦油坑(THE TAR PIT )..............................................................................................................1编程系统产品...............................................................................................................................1职业的乐趣...................................................................................................................................3职业的苦恼...................................................................................................................................4人月神话 (THE MYTHICALMAN-MONTH )...........................................................................6乐观主义.......................................................................................................................................7人月...............................................................................................................................................8系统测试.....................................................................................................................................10空泛的估算................................................................................................................................. 11重复产生的进度灾难.................................................................................................................12外科手术队伍 (THE SURGICAL TEAM )...............................................................................16问题.............................................................................................................................................16MILLS 的建议.............................................................................................................................17如何运作.....................................................................................................................................20团队的扩建.................................................................................................................................21贵族专制、民主政治和系统设计(ARISTOCRACY, DEMOCRAC Y, AND SYSTEM DESIGN )........................................................................................................................................................22概念一致性.................................................................................................................................22获得概念的完整性.....................................................................................................................23贵族专制统治和民主政治.........................................................................................................24在等待时,实现人员应该做什么?.........................................................................................26画蛇添足(THE SECOND-SYSTEM EFFECT )......................................................................29结构师的交互准则和机制.........................................................................................................29自律——开发第二个系统所带来的后果.................................................................................30贯彻执行 (PASSING THE WORD )..........................................................................................33文档化的规格说明——手册.....................................................................................................33形式化定义.................................................................................................................................34直接整合.....................................................................................................................................36会议和大会.................................................................................................................................36多重实现.....................................................................................................................................38- v ------------------------ Page 9-----------------------电话日志.....................................................................................................................................38产品测试.....................................................................................................................................38为什么巴比伦塔会失败?(WHY DID THE TOWER OF BABEL FAIL? )...........................40巴比伦塔的管理教训.................................................................................................................41大型编程项目中的交流.............................................................................................................41项目工作手册.............................................................................................................................42大型编程项目的组织架构.........................................................................................................44胸有成竹 (CALLING THE SHOT )..........................................................................................49PORTMAN 的数据........................................................................................................................50ARON 的数据..............................................................................................................................51HARR 的数据..............................................................................................................................51OS/360 的数据...........................................................................................................................53CORBATO 的数据........................................................................................................................53削足适履(TEN POUNDS IN A FIVE-POUND SACK )..........................................................55作为成本的程序空间.................................................................................................................55规模控制.....................................................................................................................................56空间技能.....................................................................................................................................57数据的表现形式是编程的根本.................................................................................................58提纲挈领 (THE DOCUMENTARY HYPOTHESIS)...............................................................60计算机产品的文档.....................................................................................................................60大学科系的文档.........................................................................................................................62软件项目的文档.........................................................................................................................62为什么要有正式的文档?.........................................................................................................63未雨绸缪 (PLAN TO THROW ONEAWAY)............................................................................64试验性工厂和增大规模.............................................................................................................64唯一不变的就是变化本身.........................................................................................................65为变更计划系统.........................................................................................................................66为变更计划组织架构.................................................................................................................66前进两步,后退一步.................................................................................................................68前进一步,后退一步.................................................................................................................69干将莫邪 (SHARP TOOLS)......................................................................................................71目标机器.....................................................................................................................................72辅助机器和数据服务.................................................................................................................73高级语言和交互式编程.............................................................................................................76整体部分 (THE WHOLEAND THE PARTS )..........................................................................78剔除BUG 的设计........................................................................................................................78构件单元调试.............................................................................................................................80- vi ------------------------ Page 10-----------------------系统集成调试.............................................................................................................................82祸起萧墙 (HATCHING A CATASTROPHE )...........................................................................85里程碑还是沉重的负担?.........................................................................................................85“其他的部分反正会落后”.....................................................................................................86地毯的下面.................................................................................................................................87另外一面 (THE OTHER FACE )..............................................................................................92需要什么样的文档.....................................................................................................................93流程图.........................................................................................................................................95SELF-DOCUMENTING )的程序................................................................................96自文档化(没有银弹-软件工程中的根本和次要问题(NO SILVER BULLET – ESSENCE ANDACCIDENT IN SOFTWARE ENGINEERING ).....................................................................1021摘要 ........................................................................................................................................102介绍...........................................................................................................................................103是否一定那么困难呢?——根本困难...................................................................................103以往解决次要困难的一些突破...............................................................................................106银弹的希望...............................................................................................................................108针对概念上根本问题的颇具前途的方法............................................................................... 113NO ......................................................................................................................................... 118再论《没有银弹》 (“NO SILVER BULLET”REFIRED )..................................................120人狼和其他恐怖传说...............................................................................................................120存在着银弹-就在这里!.......................................................................................................121含糊的表达将会导致误解.......................................................................................................121HAREL 的分析..........................................................................................................................124JONE 的观点——质量带来生产率..........................................................................................127那么,生产率的情形如何?...................................................................................................128面向对象编程——这颗铜质子弹可以吗?...........................................................................129重用的情况怎样?...................................................................................................................130学习大量的词汇——对软件重用的一个可预见,但还没有被预言的问题.......................132子弹的本质——形势没有发生改变.......................................................................................133

上一章 下一章
目录
打赏
夜间
日间
设置
28
正序
倒序
人月神话
人月神话-2
人月神话-3
人月神话-4
人月神话-5
人月神话-6
人月神话-7
人月神话-8
人月神话-9
人月神话-10
人月神话-11
人月神话-12
人月神话-13
人月神话-14
人月神话-15
人月神话-16
人月神话-17
人月神话-18
人月神话-19
人月神话-20
人月神话-21
人月神话-22
人月神话-23
人月神话-24
人月神话-25
人月神话-26
人月神话-27
人月神话-28
需支付:0 金币
开通VIP小说免费看
金币购买
您的金币 0

分享给朋友

人月神话
人月神话
获月票 0
  • x 1
  • x 2
  • x 3
  • x 4
  • x 5
  • x 6
  • 爱心猫粮
    1金币
  • 南瓜喵
    10金币
  • 喵喵玩具
    50金币
  • 喵喵毛线
    88金币
  • 喵喵项圈
    100金币
  • 喵喵手纸
    200金币
  • 喵喵跑车
    520金币
  • 喵喵别墅
    1314金币
网站统计