上QQ阅读APP看书,第一时间看更新
2.2.4 处理各种架构约束
架构约束是解决方案设计中最具挑战性的属性之一。解决方案架构师需要仔细管理架构约束,并能够在它们之间进行协调以找到最佳解决方案。通常,这些约束是相互依赖的,强调某种约束可能会放大其他约束。最常见的约束如图2-4所示。
图2-4 解决方案设计中的架构约束
解决方案设计可以帮助我们了解应用程序的以下属性:
□成本:
●有多少资金可以用于解决方案的实施?
●预期的投资回报率(ROI)是多少?
□质量:
●结果与功能性及非功能性需求的匹配程度如何?
●如何确保和跟踪解决方案的质量?
□时间:
●什么时候应当交付产出?
●时间上是否灵活?
□范围:
●确切的期望是什么?
●需求差距需要如何处理和适应?
□技术:
●可以利用什么技术?
●对比传统技术,使用新技术能提供什么灵活性?
●应该由公司自建还是从供应商采购?
□风险:
●什么地方可能出问题?
●如何降低风险?
●利益相关者的风险容忍度是多少?
□资源:
●完成解决方案的交付需要哪些资源?
●谁将负责解决方案的实施?
□合规性:
●可能影响解决方案的当地法律要求是什么?
●审计和认证要求是什么?
可能会有更多与项目相关的具体约束,比如,由于政府监管需要将数据存储在某一区域,或者出于安全考虑而选择自建。处理约束可能会非常棘手。通过减少资源来节约成本,可能会影响交付时间表。
在资源有限的情况下实现进度可能会影响质量,而质量又会因为不必要的bug修复而增加成本。所以,在成本、质量、时间和范围之间找到平衡点是非常重要的。范围蔓延是最具挑战性的情况之一,因为它会对所有其他约束产生负面影响,并增加解决方案交付的风险。
解决方案架构师必须了解每个约束的所有方面,并能够识别任何由此而产生的风险,这一点非常重要。他们必须将风险缓解计划落实到位,并在两者之间找到平衡。处理范围蔓延对项目的按时交付有很大帮助。