“第二个系统是设计师们所设计的最危险的系统。而当他着手第三个或第四个系统时,先前的经验会相互验证,得到此类系统通用特性的判断,而且系统之间的差异会帮助他识别出经验中不够通用的部分。”“一种普遍倾向是过分地设计第二个系统,向系统添加很多修饰功能和想法,它们曾在第一个系统中被小心谨慎地推迟了。”探讨预估工时、“冗余功能”如何防止出现由于结构师的创造性热情造成的冗余功能?基本回答是结构师和建筑人员之间彻底、谨慎、和谐的交流。
“编程实现人员理解结构师的决策;结构师保持系统概念上的完整性。文档是结构师主要的工作产物,为自己描述的任何特性准备一种实现方法,但是不应该试图支配具体的实现过程”
“清晰的目标?是的,尽管幼稚得近乎不可能。而且,项目早在遇到这个基本的限制之前,就已经失败了。人力?非常充足。材料?在美索不达米亚有着丰富的泥土和柏油沥青。足够的时间?没有任何时间限制的迹象。足够的技术?是的,金字塔、锥形的结构本身就是稳定的,可以很好分散压力负载。对砖石建筑技术,人们有过深刻的研究。同样,项目远在达到技术限制之间,就已经失败了。那么,既然他们具备了所有的这些条件,为什么项目还会失败呢?他们还缺乏些什么?两个方面——交流,以及交流的结果——组织。他们无法相互交谈,从而无法合作。当合作无法进行时,工作陷入了停顿。通过史书的字里行间,我们推测交流的缺乏导致了争辩、沮丧和群体猜忌。很快,部落开始分裂——大家选择了孤立,而不是互相争吵。”在第七章中,主要讲述了交流的重要性。
第八章只解决一个问题:一个程序员的生产效率究竟有多高?对于常用编程语句而言,生产率似乎是固定的。这个固定的生产率包括了编程中需要注释,并可能存在错误的情况。
生产率随着系统复杂性或者难度增加而降低。使用适当的高级语言,编程的生产率可以提高5倍。