知识卡片
架构设计对项目计划编制的支撑作用
内容
架构设计过程带来的好处中,最主要的一类往往不是直接体现在设计和实现活动本身,而是体现在与项目计划制定和项目管理相关的活动上——细节划分、日程安排、工作分配、成本分析、风险管理、技能开发等,这也是软件架构师和项目经理理应保持密切关系的根本原因:架构不只是技术产物,同时也是项目管理的信息来源。在日程安排上,架构中各组件之间的依赖关系直接暗示了每个组件应该被实现的先后顺序:书中给出一个具体例子——Error Log组件必须最先实现,因为其余组件都要用到它;Customer Management和Fulfillment两个组件之间不存在依赖关系,因此可以并行实现;等这两个组件都实现完毕后,Account Management组件才能开始实现——这条依赖链直接就能转化成项目经理常用的甘特图,架构的组件依赖关系因此成了排期这项项目管理工作最原始、最可靠的输入数据。在工作分配上,架构能帮助识别出哪些区域需要哪些特定技能,从而把工作精准分配给具备相应能力的资源(人)。在成本估算上,架构的作用体现在多个层面:任务持续时间和分配的资源共同决定了劳动力成本;架构还能帮助判断使用第三方组件、以及支持开发所需各类工具的成本,因为架构师参与选定的开发环境,会决定设计人员、实现人员和其他团队成员是否能用同一套有效方式协同工作;架构师另一个关注点是识别和管理项目的技术风险——为每一项风险排出优先级、确定合适的风险缓解策略,这些结果会作为输入提供给项目经理。最后,架构还能明确识别出项目或组织中哪些解决方案属于离散组件、当前资源是否足够支撑,如果资源不足,架构分析能明确指出到底哪里需要技术支持,进而通过现有员工培养、外包或招聘新人来补足——架构因此成了”需要什么资源、需要多少”这类问题最直接的答案来源。