作 者:(美)小弗雷德里克·布鲁克斯(Frederick P.Brooks Jr.) 著;UML China翻译组,汪颖 译 定 价:68 出 版 社:清华大学出版社 出版日期:2015年04月01日 页 数:369 装 帧:平装 ISBN:9787302392644 “图灵奖得主、“IBM360系统之父”作者Brooks颠覆了项目管理领域,长久不衰传奇经典!
软件开发人员、软件项目经理、系统分析师等IT从业者推荐收藏之软工!
畅销优选40年!新版再发行
优选软工领域很畅销的项目管理经典!
影响人力编程思想的不错著作之一!"
●第1章焦油坑1
●编程系统产品4
●职业的乐趣6
●职业的苦恼8
●第2章人月神话11
●乐观主义14
●人月16
●系统测试19
●空泛的估算21
●重复产生的进度灾难22
●第3章外科手术队伍27
●问题30
●Mills的建议32
●如何运作35
●团队的扩建36
●第4章贵族、民主政治和系统设计39
●概念的完整性42
●获得概念的完整性43
●贵族统治和民主政治44
●在等待时,实现人员应该做什么47
●部分目录
内容简介
在软件领域,很少能有像《人月神话》一样具有深远影响力和畅销不衰的著作。Brooks博士为人们管理复杂项目提供了拥有洞察力的见解,既有很多发人深省的观点,又有大量软件工程的实践。本书内容来自Brooks博士在IBM公司SYSTEM/360家族和OS/360中的项目管理经验,该项目堪称软件开发项目管理的典范。该书英文原版一经面世,即引起业内人士的强烈反响,后又译为德、法、日、俄、中、韩等多种文字,优选销售数百万册。确立了其在行业内的经典地位。
在本书靠前次出版40年后的今天,我们重新整理了Brooks博士的经典内容,并将靠前软件开发领域先行者们对《人月神话》中的实践及系统理论的使用经验和心得集结成册免费赠与大家共享,更使本书成为靠前从业者的推荐阅读经典之一。
本书读者包括:软件开发人员、软件项目经理、系统分析师等IT从业者。
(美)小弗雷德里克·布鲁克斯(Frederick P.Brooks Jr.) 著;UML China翻译组,汪颖 译 小弗雷德里·布鲁斯曾获得美国计算机领域拥有声望的图灵奖(A. M. Turing Award)。美国计算机协会(ACM)称赞他“对计算机体系结构、操作系统和软件工程做出了里程碑式的贡献”。
布鲁斯博士1956年开始任职于IBM公司,早期担任Stretch 和Harvest计算机的体系建构师。他被认为是“IBM 360系统之父”,曾担任360系统的项目经理。凭借在此项目中的杰出贡献,他与Bob Evans和Erich Bloch在1985年获得了美国国家技术奖(National Medal of&n;等 首先,这种快乐是一种创建事物的纯粹快乐。如同小孩在玩泥巴时感到快乐一样,成年人喜欢创建事物,特别是自己进行设计。我想这种快乐是上帝创造世界的折射,一种呈现在每片独特的、崭新的树叶和雪花上的喜悦。
其次,这种快乐来自于开发对他人有用的东西。内心深处,我们期望我们的劳动成果能够被他人使用,并能对他们有所帮助。从这一角度而言,这同小孩用粘土为“爸爸的办公室”捏制铅笔盒没有任何本质的区别。
第三,快乐来自于整个过程体现出的一股强大的魅力——将相互啮合的零部件组装在一起,看到它们以精妙的方式运行着,并收到了预期的效果。比起弹球游戏机或自动电唱机所具有的迷人魅力,程序化的计算机毫不逊色。
等
《人月神话:软件工程的经典回响与前瞻》 引言:跨越时空的智慧之光 在计算机科学浩瀚的星空中,总有那么几颗恒星,无论时间如何流转,它们的光芒依然璀璨,指引着后人探索未知的边界。《人月神话》(The Mythical Man-Month)便是这样一本不朽的著作。自弗雷德里克·布鲁克斯(Frederick P. Brooks, Jr.)于1975年首次出版此书以来,它便以其深刻的洞察力、精辟的论述以及对软件开发这一复杂人类活动的独特理解,赢得了全球无数软件工程师、项目经理、技术领导者以及对工程学有兴趣的读者的尊重与推崇。 本书的出现,并非仅仅是对当时软件开发实践的一种记录或总结,而是一次对软件工程这一新兴领域本质的深刻剖析,一次对项目中“人”与“月”之间关系的哲学反思。它揭示了许多普遍存在的、看似违反直觉的工程难题,并以一种严谨而不失幽默的方式,阐释了这些问题背后的根源。时至今日,《人月神话》的思想依然具有强大的现实指导意义,尤其是在当下这个快速迭代、大规模协作的软件开发时代,其提出的诸多观点,如同一面镜子,映照出我们当前面临的挑战,并提供了宝贵的智慧。 第一部分:人月神话的诞生——对软件工程核心困境的洞察 《人月神话》的核心,在于其对“人月”这一度量单位的解构。布鲁克斯敏锐地指出,将软件开发项目的时间度量简单地等同于“人月”——即“人数乘以开发周期”——是一种极具误导性的“神话”。这个神话的根源在于,人们常常将软件开发类比为流水线上的生产制造,认为增加人力就可以等比例地缩短生产周期。然而,软件开发并非简单的物理劳动叠加,而是一个高度依赖沟通、协作、设计和创新的智力活动。 书中,布鲁克斯旗帜鲜明地提出了“人月神话”的概念,并深入剖析了其存在的根源。他认为,这个神话源于对软件开发本质的误解,以及对沟通成本和团队协作复杂性的低估。在一个软件项目中,增加人力往往会带来额外的沟通开销,例如需要进行更多的会议、协调更多的信息流动、解决更多的潜在冲突。这些额外的沟通成本,可能远远抵消掉新增人力带来的生产力提升,甚至导致项目周期进一步延长。这种“群体动力学”的影响,是“人月神话”最核心的驳斥点。 布鲁克斯通过生动的案例和精妙的论证,揭示了这种思维谬误的危害。他指出,当项目延期时,领导者往往倾向于向项目追加更多的人力,试图“抢救”进度。然而,这种“人月神话”式的解决方案,如同往一个着火的油桶里倒汽油,只会让情况变得更加糟糕。增加的人员需要时间去学习项目背景、理解现有代码、融入团队,而这段时间本身就是一种成本。更重要的是,新增人员的加入会增加原有的沟通负担,让已经紧张的协调工作雪上加霜。 因此,《人月神话》的核心论点之一便是:软件项目的开发周期,并非简单地与投入的“人月”成反比。 存在一个最低的、无法缩减的时间门槛,这个门槛由项目的复杂性、所需的工作量以及固有的沟通和协作成本所决定。任何试图通过粗暴地增加人力来缩短周期的做法,都是在玩火。 第二部分:架构、通信与概念完整性——构建稳健软件系统的基石 在驳斥了“人月神话”之后,《人月神话》将重点转向了如何有效地构建高质量的软件系统。布鲁克斯强调,架构(Architecture)在软件开发中扮演着至关重要的角色。他将软件架构比作建筑中的蓝图,是整个系统的骨架和灵魂。一个清晰、合理的架构能够有效地组织和协调开发工作,使得大型、复杂的软件系统能够被分解成更易于管理和维护的组件。 布鲁克斯特别强调了概念完整性(Conceptual Integrity)的重要性。他认为,一个伟大的软件产品,往往源于一个单一、清晰、统一的设计思想。这种设计思想应该贯穿于整个软件的生命周期,指导着每一个功能的设计、每一个模块的实现。概念完整性能够确保软件在使用上的直观性和一致性,避免出现功能冗余、接口混乱、用户体验破碎等问题。相反,如果一个软件缺乏概念完整性,即使各个部分单独看起来都很不错,整体也会显得支离破碎,难以理解和使用。 要实现概念完整性,布鲁克斯提出,“建筑师”(Architect)的角色至关重要。这个“建筑师”并非指具体的编码人员,而是一个能够把握全局、制定核心设计原则、并对整个系统概念负责的领导者。他需要具备深刻的洞察力、强大的抽象能力以及清晰的沟通能力,能够将复杂的软件需求转化为一套清晰、可执行的设计方案。 与架构和概念完整性紧密相连的是通信(Communication)。在大型软件项目中,团队成员之间的有效沟通是项目成功的关键。布鲁克斯在书中详细阐述了通信的挑战,尤其是在团队规模扩大时,通信的复杂性呈指数级增长。他提出了“n(n-1)/2”的沟通链路公式,形象地说明了随着团队人数n的增加,潜在的沟通链路数量会急剧上升。因此,建立高效的沟通机制,减少不必要的会议,采用结构化的信息传递方式,是管理大型项目不可或缺的一环。 布鲁克斯还提到了“外科手术团队”(Surgical Team)的概念,这是一种将高效率沟通和专业分工结合的组织模式。在这种模式下,一个经验丰富的“主刀程序员”(Chief Programmer)负责核心的设计和编码,并围绕他组建一个支持团队,负责文档编写、测试、代码检查等辅助工作。这种模式旨在最大程度地减少团队成员之间的直接沟通,并通过专业分工来提高整体效率,实现概念完整性。 第三部分:大型系统的挑战与经验——从实践中提炼的智慧 《人月神话》并非纯粹的理论探讨,其思想很大程度上来源于布鲁克斯在IBM领导开发OS/360操作系统这一史诗级项目的亲身经历。这段经历让他深刻体会到了开发大型、复杂软件系统所面临的巨大挑战,并从中提炼出了许多宝贵的经验。 书中,布鲁克斯探讨了“二次开发”和“遵循标准”的矛盾。开发大型系统往往需要在保持设计的灵活性和遵循既有标准之间找到平衡。固守标准可能限制创新,而过度追求新颖则可能导致与现有系统的兼容性问题。他强调了在项目早期就制定明确的设计规范和技术路线的重要性,以及在必要时进行权衡和取舍的智慧。 他还深入分析了“调试”(Debugging)的困难。布鲁克斯将调试形容为“侦探工作”,并指出,很多时候,我们花费在查找和修复bug上的时间,远远超过了最初编写代码的时间。他强调了早期发现并修复bug的重要性,以及通过良好的测试策略来降低调试成本的必要性。 《人月神话》还预见了软件开发中一些“灾难性”的时刻。例如,当项目出现重大的架构缺陷,或者团队成员之间的沟通出现严重问题时,整个项目可能会陷入停滞甚至彻底失败。布鲁克斯提醒读者,要警惕这些潜在的“死亡陷阱”,并积极采取预防措施。 第四部分:对未来的启示——软件工程的永恒主题 虽然《人月神话》出版于上世纪70年代,但其思想的超前性使其至今仍保持着旺盛的生命力。在互联网、云计算、人工智能等技术飞速发展的今天,软件开发的规模和复杂性达到了前所未有的高度。而书中提出的关于沟通、协作、架构、概念完整性等核心理念,对于理解和应对当下软件开发的挑战,依然具有深远的指导意义。 例如,敏捷开发(Agile Development)的思想,虽然在形式上与布鲁克斯的“外科手术团队”有所不同,但在其核心精神上,如强调小步快跑、持续反馈、团队协作,都与《人月神话》中对沟通成本的关注以及对产品迭代的深刻理解不谋而合。DevOps文化的兴起,更是进一步模糊了开发与运维的界限,要求更紧密的团队协作和更顺畅的沟通,这恰恰印证了《人月神话》对于沟通重要性的强调。 《人月神话》不仅仅是一本关于软件开发的指南,更是一本关于人类协作、项目管理和工程思维的经典之作。它教会我们认识到,软件开发是一项充满挑战的人类活动,其中蕴含着深刻的社会学、心理学和组织学原理。理解并掌握这些原理,才能在纷繁复杂的软件世界中,驾驭复杂,化解风险,最终交付出高质量、有价值的软件产品。 结语:超越时代的智慧之声 《人月神话》所包含的智慧,如同一盏永不熄灭的灯塔,照亮了软件工程发展的道路。它提醒我们,在追求技术创新的同时,永远不要忘记“人”的重要性,不要低估沟通的价值,不要忽视架构的基石作用,更不要被“人月神话”这样的简单模型所蒙蔽。这本历久弥新的著作,将继续激励一代又一代的软件工程师,以更加深刻的理解、更加审慎的态度,去迎接未来的挑战,创造更加辉煌的数字未来。
这本书给我的感觉,就像是在一个充满挑战的迷宫里,突然遇到一位经验丰富的向导。我是一名刚刚步入编程不久的新手,对于软件开发中的各种“坑”感到困惑和迷茫,常常觉得只要技术过硬,就能解决一切问题。然而,《人月神话》却以一种极其温和却又极其深刻的方式,纠正了我这种过于理想化的想法。它用大量的真实案例和理论分析,揭示了软件项目成功的复杂性远超想象。特别是“人月神话”这个核心概念,让我第一次意识到,人力的投入并非简单的数学加法,沟通成本、协调难度、知识的传递与共享,都会对最终的产出产生巨大的影响。作者的叙述方式非常巧妙,他不是在批判,而是在引导;不是在说教,而是在分享。读这本书的过程,就像是在与一位智者对话,他会提出问题,引发你的思考,然后和你一起寻找答案。虽然有些概念可能需要反复品味,但每一次的咀嚼,都能从中获得新的启示,让我对软件工程这个领域有了更全面、更深刻的认识,也更加清晰地看到了自己未来需要努力的方向。