在这一章里面有一个最重要的关键词就是概念完整性。
不论你软件项目规模的大小都,不论你采取的软件生命周期方法论,我们都不要忽视了总体架构设计这个过程,而总体设计的一个重点就是概念完整性。概念完整性是系统设计首要考虑的内容,为了反映一系列连贯的设计思路,宁可省略一些不规则的特性和改进,也不提倡独立和无法整合的系统,哪怕它们其实包含着许多很好的设计。因此以我的理解认为:概念的完整性要求设计必须由一个人,或者非常少数互有默契的人员来实现。而进度压力却要求很多人员来开发系统。有两种方法可以解决这种矛盾。第一种是仔细地区分设计方法和具体实现。第二种是10人一种崭新的组建编程开发团队的方法。
贵族专制和民主政治并不是否定民主和大家共同的智慧的力量,而是最终的合并和统一决策全力要高度统一,团队成员有的创意和意见仍然可以积极的反馈。但是系统架构师必须要注意到,他是为整个系统负责,而不是对系统的某个独立的功能模块负责,我们需要的不是头脑发达却四肢不健全的人,这是让大家无法满意的。因此不能和系统的基本概念进行整合的想法和创意,都必须暂时放在一边。因此,对于计算机,它是编程手册;对于编译器,它是语言手册;对于控制程序,它是语言和函数调用手册;对于整个系统,它是用户要完成自己全部工作所需参考的手册的集合。而在现实中,为了解决在需求和架构阶段,大量编码人员的等待问题,我们现在已经很少采用真正意义上的瀑布模型,而是采用增量和迭代开发的生命周期模型。对于传统的大型软件项目和外包项目,它们完全可以在完成了所有的需求和架构设计后在开始编码的外包或者雇佣相应的编码人员,但是对于周期较短的中小型项目,人力资源始终是在项目内的。为了解决这个问题在前期需求和架构阶段,我们可以提前开始一些相关技术预研和公用组件的开发,提前进行业务的熟悉;但是为了真正的解决项目人力资源的有效使用的问题,我们往往引入了多个项目进行多项目管理,各个项目的各个生命周期阶段往往错开,A项目的在需求阶段的时候往往B项目正处于开发阶段,这样往往才能够真正的达到项目人力资源的充分使用和提高绩效。
通过作者的自我问答,我们可以得出结论:软件体系结构设计中,贵族专制必须实行。少数结构师决定整体框架,普通程序员是被专制对象。对于普通程序员来说,成为贵族就是其目标之一了