人月神话 贵族专制和民主政治

  在这个章里面一个最重要的关键词就是概念完整性。
  如何保证概念完整性,首先提到的就是系统设计要掌握到一个人少数已经互有默契的人员来实现。举个简单的例子如做网页设计,某一个人的设计可能配色和风格并不是最好,但是由于是一个人他可以保持整个系统和页面风格的统一,这比多个人设计搞的五花八门要好的多。
  在现在软件系统的易用性越来越成为我们关注的内容,对于给定级别的功能,能用最简洁和直接的方式来指明事情的系统是最好的。而简单和直白正来自于概念完整性,这让我们对概念完整性进行了拓展,一个是涉及到功能和非功能性需求的系统架构设计,一个是涉及到用户交互和界面的交互设计,这两方面都是概念完整性的内容,随着专业化的分工,这两方面概念完整性的保证往往要分配到两个独立的角色来完成即:架构设计工程师和交互设计工程师,因此这两个人之间的沟通和协作就显得更加重要了。
  总体架构设计的重点就是理清楚整个系统的骨架和体系结构,架构设计是从实际的需求到抽象的实现之间重要的衔接。体系结构描述的是发生了什么,而实现描述的是如何实现。
  贵族专制和民主政治并不是否定民主和大家共同的智慧的力量,而是最终的合并和统一决策全力要高度统一,团队成员有的创意和意见仍然可以积极的反馈。但是系统架构师必须要注意到,他是为整个系统负责,而不是对系统的某个独立的功能模块负责,我们需要的不是头脑发达却四肢不健全的人,这是让大家无法满意的。因此不能和系统的基本概念进行整合的想法和创意,都必须暂时放在一边。
  为了解决在需求和架构阶段,大量编码人员的等待问题,我们现在已经很少采用真正意义上的瀑布模型,而是采用增量和迭代开发的生命周期模型。对于传统的大型软件项目和外包项目,它们完全可以在完成了所有的需求和架构设计后在开始编码的外包或者雇佣相应的编码人员,但是对于周期较短的中小型项目,人力资源始终是在项目内的。为了解决这个问题在前期需求和架构阶段,我们可以提前开始一些相关技术预研和公用组件的开发,提前进行业务的熟悉;但是为了真正的解决项目人力资源的有效使用的问题,我们往往引入了多个项目进行多项目管理,各个项目的各个生命周期阶段往往错开,A项目的在需求阶段的时候往往B项目正处于开发阶段,这样往往才能够真正的达到项目人力资源的充分使用和提高绩效。

最后对本章做一个总结:

    1. 概念完整性是系统设计中最重要的考虑因素
    2. 为了获得概念完整性,设计必须由一个人或者具有共识的小型团队来完成
    3. 无论项目实际规模的大小都必须要考虑概念完整性的高度统一
    4. 纪律、规则对行业是有益的
    5. 概念上统一的系统能更快地开发和测试。
    6. 体系结构、设计实现、物理实现的许多工作可以并发进行
posted @ 2021-03-29 22:17  不会编程的肉蛋葱鸡  阅读(85)  评论(0编辑  收藏  举报