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

2019独角兽企业重金招聘Python工程师标准>>>

各章概要和图片说明

这篇书评可能有关键情节透露

第一章 焦油坑

史前时代的焦油坑吞噬了成千上万个力大无穷的巨兽,今天的大型软件项目则令无数庞大的开发团队陷入无从逃脱的窘境。软件程序按其规模和目标的不同,对开放过程的要求也有极大的不同,这给软件开放这一职业带来无穷乐趣,同时也是这一行业苦恼的根源。

【图片评注】图为洛杉矶自然历史博物馆George C Page馆内拉布雷亚焦油坑(La Brea Tar Pits)的中生代情形想象复原图。拉布雷亚地区早在北美殖民时期就以天然焦油沥青矿闻名。在百万年前,南加州的这片土地密布的焦油坑使无数鸟兽遭受没顶之灾,该地区是世界最著名的史前动植物化石集中地区之一。其貌不扬而深不可测的焦油坑吞噬了多少强壮的恐龙和矫捷的飞禽,令它们的同伴惊惧。本章提到的软件项目的焦油坑,也令多少貌似强大的开发团队一筹莫展,这值得整个软件行业深思。

第二章 人月神话

软件开发项目常以人月来衡量工作量,这种度量暗示着人手和时间是可以互换的。这种“人多力量大”的想法是一种一厢情愿的虚妄神话,布鲁克斯法则:向滞后的软件项目追加人手会使得进度更迟缓。自本书第一版以来,这一法则在软件业广为传诵。

【图片评注】图为早年新奥尔良的安东尼奥法式餐厅的菜单,该餐厅创建于1840年,上方白底区域便是本章题词的出处:精美的烹饪需要时间,本章主题即以箴言此引申展开:向软件项目盲目增加人手以求速成,往往是欲速则不达。

第三章 外科手术队伍
虽然优秀的程序员的工作效率往往数倍于平庸的程序员,但若是缺乏合理的配置,优秀的成员未必能构成优秀的团队。大型软件开发项目的团队需要和外科手术组一样妥善分工,各司其职协调配合。

【图片评注】图为合众 发布的一帧外科手术新闻照片。建立一个外科手术团队那样分工明晰,合作有序的开发团队,是高效率软件开发的重要保障之一。

第四章 元老制、民主制和系统设计
概念完整性是系统设计中最重要的因素,尤其对于大型软件系统,概念完整性是项目顺利完成的必要保障,为获得概念完整性,架构设计由精简的架构设计小组负责,具体实现则围绕核心概念展开,架构设计和具体实现既相分离,又相辅相成。以建筑工程为类比,概念完整性也是软件项目通往成功的保证。

【图片评注】图为Reims大教堂内景,位于巴黎的Reims是建筑史上最负盛名的哥特式教堂建筑之一。自从设计师Jean d’Ordais制定蓝图以后,继任的八位建筑师都理解并遵从这一初始设计的原则,保持了整体设计概念的完整性,最终Reims成为无与伦比的艺术精品。

第五章 第二个系统效应
人们在第一个系统成功完成后,往往会在开发后续的第二个系统时犯冒进的错误。第二个系统经常成为过度设计或画蛇添足的牺牲品。要避免这种错误,必须在第二个系统开发时审慎地考查技术环境的变化,广泛进行交流和沟通,聆听各方面的建议,确立严谨的估算和规划。
【图片评注】1882年画家A. Robida发表于比利时《二十世纪 》上的插画:一个想象中的极尽复杂的活动空中楼阁。设计者往往不肯放弃任何一个细枝末节创意,从而堆砌出不胜繁复的设计,这些设计往往成为头重脚轻的空中楼阁,看似完美,并无现实可行性。这种过度设计的错误,往往在设计者在踌躇满志地开始做系统改良设计时出现。软件项目的规划必须进行严谨理性的估算才能为项目的顺利进展打下牢固的根基,避免不必要的复杂化风险。

第七章 巴别塔为何失败
如果缺乏良好有效的沟通和协作,成员间难以有效的配合,团队项目的目标就无法实现。清晰的工作文档,明确的组织结构,合理的职责分配,都是大型软件项目最终成功的保证。

【图片评注】图为维也纳Kunsthistorisches博物馆馆藏的16世纪奥地利兄弟画家大Breughel所绘“巴别塔的建造”。在基督教传说中,人类发现可用砖和沥青代替天然的石块和灰泥来建筑房屋后,便打算建筑一座通往天堂的巴别塔。图中的巴别塔工程恢宏壮丽,工地欣欣向荣,确有直指云霄之势。上帝使人类各部族语言不通,才阻止了这项工程。在软件开发中,也许现有的技术已经可以所向披靡,但是如果整个团队不能进行良好有效的沟通,项目很可能功败垂成。
 
第八章 掌控之中
对大型软件系统产品的开发所需的时间和资源进行准确的估测,能让我们在项目进度和前景胸有成竹。软件代码的开发效率和代码模块之间所需的交互相关。界面交互复杂的程序需要更多的测试和调试时间,单纯地增加人手并不能有助于开发效率的提高。

【图片评注】图为美国历史上最伟大的职业棒球运动员贝比·鲁斯(Babe Ruth)在球场上发 施令。鲁斯是1936年首批选入美国棒球名人堂的五人之一。效力于波士顿红袜队和纽约扬基队时大放异彩,促使了1920、30年代美国职业棒球的兴盛。著名的“班比诺的诅咒”(the Curse of the Bambino)更使他的传奇声名至今不衰。他不仅是杰出的击球手,在球场上他也是指挥若定的球队核心。本章以此隐喻有效的管理和决策是致胜的关键。

第九章 袖里乾坤
最大化资源利用率,减少不必要的资源占用,合理规划,使软件系统在资源有限的情况下依然保证了良好的性能,从而实现良好的可伸缩性和健壮性,这能体现软件开发人员精湛的设计技巧。巧妙的数据结构往往能大幅度地俭省资源耗费,提高系统运行的性能。
【图片评注】图为维多利亚时期英国画家Heywood Hardy的作品,在大洪水到来之前,飞鸟走兽们进入诺亚方舟。 上帝许可每种鸟兽至少保留一公一母进入方舟逃避即将到来的灭顶之灾。小小诺亚方舟承担了各种群延续的希望,在有限的空间中装载整个世界,这需要精巧的规划,绝不可轻易耗费资源。

第十一章 准备抛弃
变化是永恒的,用户的需求和期望在变化,开发者对用户需求的理解在变化,适用的技术也在变化,故而最佳的解决策略也可随之变化。软件开发团队应灵活地配置人力和资源,适应开发过程中的种种问题。程序的复杂性、用户需求的不确定性、软硬件技术环境的发展等因素导致了软件维护工作并非总是能够百分之百地获得回 。
【图片评注】图为纽约湾的Tacoma桥由于空气动力学上的错误设计而坍塌的新闻照片。1940年11月7日中午时分,建成仅仅数月的Tacoma桥坍塌,这是桥梁工程史上著名的悲剧。在做项目设计和规划时,一定要考虑到各种不确定的变化因素,灵活适应多变的环境,否则很可能酿成悲剧后果。
 
第十二章 良工利器
软件开发项目所选择的技术和工具对保障项目能否令人满意地如期完成至关重要。合适的开发工具、评测技术能有事半功倍之效果,切于项目实用的工具和技术是项目团队的重要财富。本章提供了当年软件开发项目选择技术和工具的重要原则和建议。
【图片评注】图为佛罗伦萨著名的圣母百花大教堂钟塔(Campanile di Santa Maria del Fiore)上的装饰浮雕――A.Pisano于1335年制作的“雕刻者”。得心应手的工具,是艺术大师造就初巧夺天工之作的必要条件之一,所谓“工欲善,必先利其器”。

第十五章 另一面
虽然用户直接使用软件系统,但在许多应用领域中,用户不可能仅仅凭借与软件的直接交互就迅速掌握其所有功能。故而提供给用户的使用说明等文档是软件呈现给用户的另外一面,它也能直接影响用户对软件的满意度和可用性评价。文档的用途决定它的形式和内容。

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览35133 人正在系统学习中 相关资源:文字智能朗转语音软件v2.5中文免费绿色版-其它代码类资源-CSDN…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年5月6日
下一篇 2019年5月6日

相关推荐