知识卡片
架构作为开发管理与配置管理的基础
内容
团队开发天然带来管理复杂性,而这种复杂性的根源可以追溯到架构层面:开发人员之间的依赖,本质上源自他们各自负责的程序之间的依赖,要理清并管理人员协作,就必须先搞清楚系统一级”模块+交互”的设计——这说明架构不只是技术产物,也是开发管理天然的组织依据。具体体现在两方面:对项目管理而言,架构从大局出发对技术方面的重大问题做出决策,构造出一个由粗粒度模块组成的解决方案,从而让不同模块可以分配给不同小组分头开发;同时架构方案规定了各模块之间如何交互的机制和接口,这套机制在开发小组之间起到”沟通桥梁”和”合作契约”的作用——项目经理制定计划、分工、考核进度,实际上都是在架构划定的模块边界基础上进行的。对配置管理而言同样如此:在软件架构确定之前,配置管理是无法全面展开的,配置管理员需要从架构方案中了解开发出来的软件以什么样的目录结构存在、编译后的目标模块放到哪个目录等决定,并以此作为制定配置管理基本方案的基础——脱离架构谈配置管理,配置方案就没有稳定的组织依据可循。这两个例子共同说明:架构决策一旦确定,会像”骨架”一样为项目管理和配置管理这类看似与技术设计无关的管理活动提供结构化依据,这正是”架构师也要为管理人员而设计”的根本原因。
参考来源
- 位置:《软件架构设计:程序员向架构师转型必备》第3章《理解架构设计视图》"3.1.4 为管理人员而设计"节(源文件:_epub-src/OEBPS/text00006.html)
- 结论依据:原文说明"开发人员之间的依赖,源自他们负责的程序之间的依赖……要理清并管理人员协作,就应该搞清楚系统一级'模块+交互'的设计,搞清楚架构",并分别举出软件架构在项目管理(分工依据、沟通桥梁)和配置管理(目录结构、目标模块存放依据)中的具体作用,直接支撑本卡片结论。
- 原始内容:开发人员之间的依赖,源自他们负责的程序之间的依赖……软件架构设计方案规定了各模块之间如何交互的机制和接口,在开发小组之间起到"沟通桥梁"和"合作契约"的作用。