人月神话阅读笔记6

第十八章 《人月神话》的观点:是与非

本章为作者对初版中十五个章节中概要的提炼和结合近年来软件技术的发展状况,对这些观点进行强调、修正和反思。

第十九章 人月神话二十年

“ 在《人月神话》初版发布二十周年后,计算机技术领域已有很大变化,《人月神话》体现出深远的影响力,初版中的许多观点依然经常被人们谈论和引用,其中有些断言至今仍被软件开放人员奉为圭臬。作者结合当前软件工程领域的发展现状重新梳理了初版中的各核心观点,强调了概念完整性,重新评议了第二个系统效应,反省了瀑布模型的局限性,结合初版中的观点,作者评述了图形桌面系统、信息隐藏、面向对象高级语言等技术的发展,以及近年来软件工程领域的重要成果。”

书摘:

首先是一种创建事物的纯粹快乐。如同小孩在玩泥巴时感到愉快一样,成年人喜欢创 建事物,特别是自己进行设计。我想这种快乐是上帝创造世界的折射,一种呈现在每片独特、 崭新的树叶和雪花上的喜悦。

简单、武断地重复一下Brooks法则: 向进度落后的项目中增加人手,只会使进度更加落后。(Adding manpower to a late software project makes it later)

风格的一致和完整性来自8代拥有自我约束和牺牲精神的建筑师们,他们每一个人 牺牲了自己的一些创意,以获得纯粹的设计。同样,这不仅显示了上帝的荣耀,同时也体现 了他拯救那些沉醉在自我骄傲中的人们的力量。

如果要得到系统概念上的完整性,那 么必须控制这些概念。这实际上是一种无需任何歉意的贵族专制统治。

结构师如何避免画蛇添足——开发第二个系统所引起的后果(second-system effect)?是的,他无法跳过二次系统。但他可以有意识关注那些系统的特殊危险,运用特 别的自我约束准则,来避免那些功能上的修饰;根据系统基本理念及目的变更,舍弃一些功 能。

项目经理最好的朋友就是他每天要面对的敌人——独立的产品测试机构/小组。该 小组根据规格说明检查机器和程序,充当麻烦的代言人,查明每一个可能的缺陷和相互 矛盾的地方。每个开发机构都需要这样一个独立的技术监督部门,来保证其公正性。

编程人员仅了 解自己负责的部分,而不是整个系统的开发细节时,工作效率最高。这种方法的先决条件是 精确和完整地定义所有接口。这的确是一个彻底的解决方法。如果能处理得好,的确是能解 决很多“灾难”。一个好的信息系统不但能暴露接口错误,还能有助于改正错误。

交流和交流的结果— —组织,是成功的关键。交流和组织的技能需要管理者仔细考虑,相关经验的积累和能力的 提高同软件技术本身一样重要。

实际上,数据的表现形式是 编程的根本。

然而,目标上的一些变化无可避免,事先为它们做准备总比假设它们不会出现要好得 多。不但目标上的变化不可避免,而且设计策略和技术上的变化也不可避免。抛弃原型概念 本身就是对事实的接受——随着学习的过程更改设计 。

系统软件开发是减少混乱度(减少熵)的过程,所以它本身是处于亚稳态的。软件维 护是提高混乱度(增加熵)的过程,即使是最熟练的软件维护工作,也只是放缓了系统退化 到非稳态的进程。

所有软件活动包括根本任务——打造由抽象软件实体构成的复杂概念结构,次要任务 ——使用编程语言表达这些抽象实体,在空间和时间限制内将它们映射成机器语言。

不仅仅是在目力所及的范围内,没有发现银弹,而且软件的特性本身也导致了不大可 能有任何的发明创新——能够像计算机硬件工业中的微电子器件、晶体管、大规模集成一样 ——提高软件的生产率、可靠性和简洁程度。我们甚至不能期望每两年有一倍的增长。




posted on 2020-05-30 18:48  Mrsen  阅读(139)  评论(0编辑  收藏  举报

导航