人月神话(精简)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 图为维多利亚时期英国画家 Heywood Hardy的作品。 • 在大洪水到来之前,飞禽走兽 们进入诺亚方舟。
• 最大化资源利用率,减少 不必要的资源占用,合理 规划,巧妙的数据结构往 往大幅度地俭省资源耗费 ,提高系统运行的性能。
人月神话—— 提纲挈领
• 作者以汗牛充栋的图书馆形象 地比如软件项目中海量的文档 令人目不暇接。 • 明智地把握好关键的几类文档 ,才能不在浩瀚的信息中迷失 ,才能迅速了解项目,进而准 确地规划下一步工作。
银弹之争
• 无风不起浪:一篇《没有银弹》在学术界掀起了一场不大 不小的风浪,从而引发了再论“没有银弹”。
人月神话——再论“没有银弹”
• 完美的东西其实就是过去不曾 出现、现在不存在、将来也不 可能出现的东西:不要指望《 没有银弹》是完美的。
• 《没有银弹》中提到的观点是 以10年为限的。
• 图为儿童在搭建组合构造 玩具。利用成型的配件, 搭建大型的架构。
弗雷德里克· 布鲁克斯 Frederick P. Brooks, Jr.
弗雷德里克·布鲁克斯的经典著作——《人月神话》
• 2000年新年伊始,国际计算机协会(ACM)在纽约宣布 1999年图灵奖得住为时年为69岁的Frederick P. Brooks, Jr.。评选委员会主席在致辞中提到,“今天我们所看到的 计算机体系结构、软件工程及三维计算机图形,均受益于 Brooks 的开创性工作,是他改变了这些领域的面貌。 ”Brooks确实是一位在计算机科学各方面均作出杰出贡 献的奠基者。
– 可变性:由于软件是纯粹的思维产物,易于修改,用户经常会提 出改进要求。 – 不可见性:软件是无法可视化的,不仅限制了个人的设计过程, 也阻碍了设计人员之间的交流。
– 在信息化社会里,市场对信息的巨大需求将成为经济诱因,促使 银弹的出现。--Cox,1990
没有银弹! --Brooks
• 软件工程的内在特性
– 复杂度:不同于建筑、汽车等产品,软件实体可能比任何由人类 创造的其它实体都要复杂,因为没有任何两个软件部分是相同的 (至少是在语句的级别上)。
• 无规则性:不同于数学、物理等学科,软件工程所控制的 很多复杂度是随心所欲、毫无规则可言的,来自于若干必 须遵循的人为惯例和系统。
• 我唯一一本读过一遍以上的书,是Fred Brooks的《人月神话》,实 际上我每过一两年就会重读一遍。部分原因是这本书文笔很好,另外 就是书中的忠告很有价值,即使是25年以后。我非常推崇这本书,这 是我唯一能想起来的能从中体会到乐趣和思想的计算机学科书籍。 ——Brian Kernighan ,著名《C程序设计语言》的合著者之一。
• 图为14世纪宗教湿壁画 Wells启示录中的七天 使号手
人月神话—— 为什么巴比伦塔会失败
• 在基督教传说中,人类打算 建筑一座通往天堂的巴别塔 ,上帝使人类各族语言不通 ,才阻止了这项工程。
• 图为维也纳 Kunsthistorisches博物馆 馆藏的16世纪奥地利兄弟画 家中大Breughel所绘“巴别 塔的建造”。
• 图为1802年A.Canova所作雕 塑:英雄海格力斯( Herculues)摔死带来死亡之 袍的信使力卡斯(Lycas)。
人月神话——没有银弹-软件工程中的根本和次要问
题
消灭 银弹 人狼
攻克
软件项目 “焦油坑”危机
• 图为1685年德国线刻板画 的人狼故事
• 是否存在消灭人狼的法宝——银弹? • 由于软件的复杂性、一致性、变化性和 不可见性,解决软件危机的银弹并不存 在 • 没有任何一种单独的软件工程可以让软 件开发的效率提高一个数量级。
• 在软件开发中,也许现有的 技术已经可以所向披靡,但 如果整个团队不能进行良好 有效地沟通,项目就有可能 功败垂成。
人月神话——胸有成竹
• 有效的管理和决策是致胜的关键。
• 图为美国历史上最伟大的职 业棒球运动员贝比.鲁斯( Babe Ruth)在球场上发号施 令。
人月神话—— 削足适履
• 在有限的空间中装载整个 世界,这需要精巧的策划 ,绝不可轻易耗费资源。
• 本章结合软件工程领域的最新 发展,包括面向对象技术和软 件复用等回应了争议:人们期 待的重大突破不可能在近期内 到来。
是否存在终极利器?--银弹之争
• 人狼、银弹与软件项目
– 人狼:满月时会由人形变成狼形的怪兽。 – 银弹:唯一可以杀死人狼的武器。 – 软件项目:类似于人狼,常常看似简单明了的东西, 却有可能变成一个落后进度、超出预算、存在大量缺 陷的怪物。
• 图为佛罗伦萨著名的圣母百 花大教堂钟楼上的装饰浮雕 ——A.Pisano于1335年制作 的“雕刻者”。
• 适合的开发工具、评测技术 能有事半功倍的效果,切合 实用的工具和技术是项目团 队的重要财富。
人月神话——整体部分
• 作者认为某些泛泛号称自 己能完成庞大软件项目的 业界人士,与旧时以夸张 吹嘘来吸引观众注意的魔 术师一样,其表演的东西 经不起实质追究。 • 良好的软件项目管理,应 该准确把握全局,严谨审 核细节。
• 图为迪士尼公司著名的 米老鼠魔术师形象。
人月பைடு நூலகம்话——另外一面
• 巨石阵是世界上最大的没有 文档说明的“计算机器”。 古人没留下任何说明,至今 考古学家对古人建巨石阵的 目的莫衷一是。 • 提供给用户的使用说明等文 档是软件呈现给用户的另一 面,它也能直接影响用户对 软件的满意度和可用性评价 。
《人月神话》的由来
• IBM的System/360是第一个特大型软件项目,它催生了《人月神话》
《人月神话》的由来
• System/360的开发过程被视为计算机发展史上最大的一次豪赌,为了 研发System/360这台大型机,IBM决定征召六万多名新员工,创建五 座新工厂,而当时出货的时间不断的顺延。
• 然而,他最广为认知的功绩则是在软件领域的重要经典著 作——《人月神话》,可以说正是此书让软件工程学进入 了人们的视野。
弗雷德里克·布鲁克斯的经典著作——《人月神话》
• 《人月神话》20周年纪念版
• 《人月神话》32周年纪念版
软件领域的神话 —— 一本畅销不衰的著作
• 在计算机这个日新月异的领域中,长盛不衰的书籍几乎是凤毛麟角的 。为什么《人月神话》的魅力能不因技术的更替而黯淡,反而能在这 多变的时代中证明自己的价值,乃至有了20年,32年的纪念版出现呢 ?
• 图为位于英格兰东南部的 巨石阵的想象复原图。
人月神话——祸起萧墙
• 海格力斯是希腊神话中最伟大 的半人半神英雄,一生业绩辉 煌,却因微小的家庭变故摔死 不知情的力卡斯而走向了英雄 末路。 • 潜藏的小祸患看似微不足道, 有朝一日却可能葬送原本看起 来坚不可摧的事物。 • 项目进度的滞后经常源自不易 擦觉的点滴延误的积累。应尽 量明确量化阶段性目标,定期 验收、调整。
• 技术并非《人月神话》的着眼点,它更关注的是软件的创造过程、需 求的变化无常和管理的永恒困境。 • 《人月神话》的中心思想已经超越了具体的时代和技术。
名家谈人月神话
• 这是一本经典著作,与软件开发有关的每一个人都应该不只一遍地读 这本书。 ——Philippe Kruchten Rational 统一过程首席架构师 • 它仍然是计算机书籍中呗引用次数最多的书籍,而且即便本书最初出 版于1975年,其内容至今仍未过时。在阅读的时候,每隔几页不说一 句“对极了!”是很难受的。 ——Stee McConnell,Construx公司首席软件工程师
• 图为1882年画家A.rOBIDA发 表于比利时《二十一世纪报 》上的插画:一个想象中极 尽复杂的活动空中楼阁
人月神话——贯彻执行
• 号角声在七位天使间依次 传递,前一位吹响后,后 一位将照样吹响下一声, 有条不絮,号角传递得十 分精准。
• 团队间沟通顺畅有序,只 有这样,概念完整性才能 被正确贯彻到各处
《人月神话》目录
• • • • • • • • • • 第1章 焦油坑 第2章 人月神话 第3章 外科手术队伍 第4章 贵族专制、民主政 治和系统设计 第5章 画蛇添足 第6章 贯彻执行 第7章 为什么巴比伦塔会 失败 第8章 胸有成竹 第9章 削足适履 第10章 提纲挈领 • • • • • • 第11章 未雨绸缪 第12章 干将莫邪 第13章 整体部分 第14章 祸起萧墙 第15章 另外一面 第16章 没有银弹-软件 工程中的根本和次要问题 • 第17章 再论“没有银弹” • 第18章 《人月神话》的 观点:是与非 • 第19章 20年后的《人 月神话》
是否存在终极利器?--银弹之争
• 没有银弹(“No Silver Bullet”)
– 没有任何技术或管理上的进展,能够独立地许诺十年内使生产率 、可靠性或简洁性获得数量级上的进步。--brooks,1986 – 原因:由软件工程的内在特性所决定的:复杂度,一致性,可变 性和不可见性。
• 存在银弹("There Is a Silver Bullet")
人月神话
• 人月:软件开发过程中衡量工作量的常用度量单位。 • 而在实际情况中,增加“人”并不能缩短“月”的量 • 为什么说人月是神话? (1)许多任务是无法拆解的 (2)即使任务可以拆解,人员之间的沟通交流时间随着 人手的增加以(n-1)*n/2的规模递增 • 如: 20人* 5个月 > 50人* 2个月
人月神话——焦油坑
史前 今天
焦油坑
大型软件项目
吞噬
围困
• 图为洛杉矶自然历史博物 馆GeorgeC.Page馆内布拉 雷亚焦油坑的中生代情形 想象图原图
成千上万的巨兽
无数庞大的开发团体
人月神话——人月神话
• 精美的烹饪需要时间
• 软件开发项目常以人月来衡量工 作,这种度量暗示着人手和时间 是可以互换的。这种“人多力量 大”的想法是一种一厢情愿的虚 妄神话。 • Brooks法则:向滞后的软件项目 追加人手会使得进度更迟缓。
• 概念完整性是系统设计中最 重要的因素,尤其对大型软 件系统来说,概念完整性是 项目顺利完成的必要保障。
• 图为Reims大教堂内景,位 于巴黎的Reims是建筑史上 最富盛名的哥特式教堂建筑 之一。
人月神话——画蛇添足
• 设计者往往不肯放弃任何一个 细枝末节的创意,从而堆砌出 不胜繁复的设计,看似完美, 并现实无可行性,往往会成为 头重脚轻的空中楼阁。 • 软件项目的规划必须进行严谨 理性的估算才能为项目的顺利 进展打下牢固的根基,避免不 必要的复杂化风险。
人月神话
小组成员:
人月神话
人物简介:
• 美国工程院院士 • “IBM 360系统之父”,曾担 任360系统的项目经理,及该 项目设计阶段的经理。凭借在 此项目中的杰出贡献,在1985 年获得美国国家技术奖。 • 1999年荣获美国计算机领域最 具声望的图灵奖( A.M.TURINGAWARD)桂冠。
• 图为早年新奥尔良的安东尼奥 法式餐厅的菜单
人月神话——外科手术队伍
• 建立一个外科手术团队那样分工明 细、合作有序的开发团队,是高效 率软件开发的重要保障之一。
• 图为合众社发布的帧外科手 术新闻照片
人月神话——贵族专制、民主政治和系统设计
• 自从设计师Jean d’Ordais 制订蓝图以后,继任的8位 建筑师都理解并遵从这一初 始设计的原则,保持了概念 的完整性,最终Reims成为 无与伦比的艺术精品。
• 图为1897年美国老国会 图书馆内景。
人月神话——未雨绸缪
• 在做项目设计和规划时,一定要考 虑到各种不确定的变化因素,灵活 适应多变的环境,否则很可能酿成 悲剧后果。
• 图为纽约湾的Tacoma桥 由于空气动力学上的错 误设计而坍塌的新闻照 片
人月神话——干将莫邪
• “工欲善其事,必先利其器 ”
• 当时的专案经理Frederick P. Brooks, Jr.事后根据这项计划的开发经 验,写作《人月神话:软件项目管理之道》(The Mythical ManMonth: Essays on Software Engineering)记述人类工程史上一项里 程碑式的大型复杂软件系统开发经验。
• 在《人月神话》中,Brooks博士为人们管理复杂的项目提供了最具洞 察力的见解,既有很多引人深思的观点,又有大量软件工程的实践。