此章主旨是避免过多的修饰,保持上一章的简洁直白的理念,并给出了实施方案。下面是一些段落的摘抄。

应对“修改”的策略

面对估算过高的难题,结构师有两个选择:削减设计或者建议成本更低的实现方法 —— 挑战估算的结果。后者是固有的主观感性反应。此时,结构师是在向开发人员的做事方式 提出挑战。想要成功,结构师必须:

  • 牢记是开发人员承担创造性和发明性的实现责任,所以结构师只能建议,而不能支配
  • 时刻准备着为所指定的说明建议一种实现的方法,同样准备接受其他任何能达到目标的方法;
  • 对上述的建议保持低调平静
  • 准备放弃坚持所作的改进建议; 一般开发人员会反对体系结构上的修改建议。通常他是对的——当正在实现产品时,某些特性的修改会造成意料不到的成本开销。

不要画蛇添足!

在开发第一个系统时,结构师倾向于精炼和简洁。他知道自己对正在进行的任务不够了解,所以他会谨慎仔细地工作。 在设计第一个项目时,他会面对不断产生的装饰和润色功能。这些功能都被搁置在一边,作为“下一个”项目的内容。第一个项目迟早会结束,而此时的结构师,对这类系统充满了十足的信心,熟练掌握了相应的知识,并且时刻准备开发第二个系统。 第二个系统是设计师们所设计的最危险的系统。而当他着手第三个或第四个系统时,先前的经验会相互验证,得到此类系统通用特性的判断,而且系统之间的差异会帮助他识别出经验中不够通用的部分。

一种普遍倾向是过分地设计第二个系统,向系统添加很多修饰功能想法。 开发第二个系统所引起的后果(second-system effect)与纯粹的功能修饰和增强明显不同,也就是说存在对某些技术进行细化、精炼的趋势。由于基本系统设想发生了变化,这些技术已经显得落后

实施者解决方案

直到系统的思想已经十分优越时,才开始对原有技术进行细化和精炼。

PM如何避免

项目经理如何避免画蛇添足(second-system effect)?他必须坚持至少拥有两个系统以上开发经验结构师的决定。同时,保持对特殊诱惑的警觉,他可以不断提出正确的问题,确保原则上的概念和目标在详细设计中得到完整的体现。