人月神话阅读笔记03

这里是对第五章《画蛇添足》的阅读感想

这一章的学习很有趣。看章节题目我就知道软件开发过程中有许多不必要的措施或者人员配置。这一章也恰恰讲了关于功能方面的多余化会造成许多麻烦。

1、这一章其实主要是针对项目产品不要有多余的功能的阐述。一种普遍倾向是过分地设计第二个系统,向系统添加很多修饰功能和想法,它们曾在第一个系统中被小心谨慎地推迟了。结果如同 Ovid 所述,是一个“大馅饼”。例如,后来被嵌入到 7090 的 IBM 709 系统,709 是对非常成功和简洁的 704 系统进行升级的二次开发项目。709 的操作集合被设计得如此丰富和充沛,以至于只有一半操作被常规使用。

2、想要成功,结构师必须 牢记是开发人员承担创造性和发明性的实现责任,所以结构师只能建议,而不能支配; 

时刻准备着为所指定的说明建议 一种 实现的方法,同样准备接受他任何能达到目标的方法;

对上述的建议保持低调和平静; 准备放弃坚持所作的改进建议;

 一般开发人员会反对体系结构上的修改建议。通常他是对的——当正在实现产品时,某些特性的修改会造成意料不到的成本开销。

3、结构师如何避免画蛇添足——开发第二个系统所引起的后果(second-system effect)?是的,他无法跳过二次系统。但他可以有意识关注那些系统的特殊危险,运用特别的自我约束准则,来避免那些功能上的修饰;根据系统基本理念及目的变更,舍弃一些功能。 一个可以开阔结构师眼界的准则是为每个小功能分配一个值:每次改进,功能 x 不超过 m 字节的内存和 n 微秒。这些值会在一开始作为决策的向导,在物理实现期间充当指南和对所有人的警示。 项目经理如何避免画蛇添足(second-system effect)?他必须坚持至少拥有两个系统以上开发经验结构师的决定。同时,保持对特殊诱惑的警觉,他可以不断提出正确的问题,确保原则上的概念和目标在详细设计中得到完整的体现。

原文地址:https://www.cnblogs.com/surver/p/5491109.html