在软件领域中,很少能有像《人月神话》一样具有深远影响力和畅销不衰的著作。Brooks博士为人们管理复杂项目提供了最具洞察力的见解,既有很多发人深省的观点,又有大量软件工程的实践。本书内容来自Brooks博士在IBM公司 System/360家族和OS/360中的项目管理经验。在本书第一次出版20年后的今天,Brooks博士重新审视了他原先的观点,啬了一些新的想法和建议。既方便了熟悉原有内容的人们,又方便了第一次阅读它的读者。
\r\n 软件界的《圣经》——《The Mythical MAN-MONTH》(人月神话)在出版并畅销了20余年后,终于登陆中国,由中国电力出版社引进出版的英文原版影印版上市。
\r\n 该书原为“IBM 360系统之父”Fred Brooks的一本随笔集,是他为IBM开发OS/360系统的经验总结。但由于该书为人们管理复杂项目提供了极具洞察力的见解,发人深省的观点,以及大量的软件工程实践,一经出版便被广泛传播。在这部注重实效、条理明晰的书中,Brooks剖析了许多工程管理的“神话”,这些神话来自他在软件工业中的亲身实践。他抨击了在项目中增加人手可以促进项目完成的幻想。Brooks用实例、幽默与严密的逻辑,展示了这些神话实际上如何给软件项目带来灾难并导致延迟。
\r\n 在此书中,Brooks覆盖了成功完成一个主要软件项目必须做的所有因素,同时,在书的各部分中,他给出了一致的软件工程与项目管理的理论基础。可以说这是一本主要的正确汇集工程师需要的关于大型软件项目开发知识的书,书中相关知识来自于作者对已完成项目的看法,是作者数十年的项目管理经验的总结。这些篇幅每篇都值得一读,它们介绍了软件开发项目中的每一个过程,让我们可以轻易地从这里了解软件工程这一行业。
\r\n 该书原版的语言流畅通俗,经常以极为浅显的叙述讲解艰深晦涩的原理,作者驾驭文字的能力令人击节赞叹。
\r\n 相信通过阅读英文原版的《The Mythical MAN-MONTH》,可以很轻易地抓住问题核心,不会产生歧义或者理解错误,因为,你所阅读的正是Brooks当年亲笔写下来的。
Preface to the 20th Anniversary Edition\r\nPreface to the First Edition\r\nChapter1 The Tar Pit\r\nChapter2 The Mythical Man-Month\r\nChapter3 The Surgical Team\r\nChapter4 Aristocracy,Democracy,and System Design\r\nChapter5 The Second-System Effect\r\nChapter6 Passing the Word\r\nChapter7 Why Did the Tower of Babel Fail?\r\nChapter8 Calling the Shot\r\nChapter9 Ten Pounds in a Five-Pound Sack\r\nChapter10 The Documentary Hypothesis\r\nChapter11 Plan to Throw One Away\r\nChapter12 Sharp Tools\r\nChapter13 The Whole and The Parts\r\nChapter14 Hatching a Catastrophe\r\nChapter15 The Other Face\r\nChapter16 No Silver Bullet-Essence and Accident\r\nChapter17 'No Silver Bullet'Refired\r\nChapter18 Propositions of The Mythical Man-Month;True or False?\r\nChapter19 The Mythical Man-Month after 20 Years\r\nEpilogue\r\nNotes and References\r\nIndex
Frederick P.Brooks Jr.曾荣获美国计算机领域最具声望的图灵奖桂冠。美国计算机协会(ACM)称赞他“对计算机体系结构、操作系统和软件工程做出了里程碑式的贡献”。
Brooks博士是北卡罗莱纳大学Kenan-Flager商学院的计算机科学教授。他被认为是“IBM 360系统之父”,曾担任了360系统的项目经理,以及360操作系统项目设计阶段的经理。凭借在上述项目中的杰出贡献,Brooks博士以及Bob Evans和Erich Bloch在1985年荣获了美国国家技术奖。Brooks博士早期曾担任IBM公司Stretch和Harvest计算机的体系结构设计师。
Brooks博士创立了北卡罗莱纳大学的计算机科学系,并在1964-1984年期间担任系主任。他还曾任职于美国国家科技局和国防科学技术委员会。他目前的教学和研究方向是计算机体系结构、分子模型绘图和虚拟环境设计。
In many ways, managing a large computer programming project is like managing any other large undertaking--in more ways than most programmers believe. But in many other ways it is different--in more ways than most professional managers expect.
The lore of the field is accumulating. There have been several conferences, sessions at AFIPS conferences, some books, and papers. But it is by no means yet in shape for any systematic textbook treatment. It seems appropriate, however, to offer this little book, reflecting essentially a personal view.
Although I originally grew up in the programming side of computer science, I was involved chiefly in hardware architecture during the years (1956-1963) that the autonomous control program and the high-level language compiler were developed. When in 1964 I became manager of Operating System/360, I found a programming world quite changed by the progress of the previous few years.
Managing OS/360 development was a very educational experience, albeit a very frustrating one. The team, including F. M. Trapnell who succeeded me as manager, has much to be proud of. The system contains many excellencies in design and execution, and it has been successful in achieving widespread use. Certain ideas, most noticeably device-independent input-output and external library management, were technical innovations now widely copied. It is now quite reliable, reasonably efficient, and very versatile.
The effort cannot be called wholly successful, however. Any OS/360 user is quickly aware of how much better it should be. The flaws in design and execution pervade especially the control program, as distinguished from the language compilers. Most of these flaws date from the 1964-65 design period and hence must be laid to my charge. Furthermore, the product was late, it took more memory than planned, the costs were several times the estimate, and it did not perform very well until several releases after the first.
After leaving IBM in 1965 to come to Chapel Hill as originally agreed when I took over OS/360, I began to analyze the OS/360 experience to see what management and technical lessons were to be learned. In particular, I wanted to explain the quite different management experiences encountered in System/360 hardware development and OS/360 software development. This book is a belated answer to Tom Watson's probing questions as to why programming is hard to manage.
In this quest I have profited from long conversations with R. P. Case, assistant manager 1964-65, and F. M. Trapnell, manager 1965-68. I have compared conclusions with other managers of jumbo programming projects, including F. J. Corbato of M.I.T., John Harr and V. Vyssotsky of Bell Telephone Laboratories, Charles Portman of International Computers Limited, A. P. Ershov of the Computation Laboratory of the Siberian Division, U.S.S.R. Academy of Sciences, and A. M. Pietrasanta of IBM.
My own conclusions are embodied in the essays that follow,which are intended for professional programmers, professionalmanagers, and especially professional managers of programmers.
Although written as separable essays, there is a central argument contained especially in Chapters 2-7. Briefly, I believe that large programming projects suffer management problems different in kind from small ones, due to division of labor. I believe th e critical need to be the preservation fo the conceptual integrity of the product itself. These chapters explore both the difficulties of achieving this unity and methods for doing so. Thje later chpaters explore other aspects of software engineering management.
The literature in this field is not abundant, but it is widely scattered. Hence I have tried to give references that will both illuminate particular points and guide the interested reader to other useful works. Many friends have read the manuscript, and some have prepared extensive helpful comments; where these seemed valuable but did not fit the flow of the text, I have included them in the notes.
Because this is a book of essays and not a text, all the references and notes have been banished to the end of the volume, and the reader is urged to ignore them on his first reading.
I am deeply indebted to Miss Sara Elizabeth Moore, Mr. David Wagner,and Mrs. Rebecca Burris for their help in preparing the manuscript, and to Professor Joseph C. Sloane for advice on illustration.