解决方案架构师修炼之道
上QQ阅读APP看书,第一时间看更新

2.2.4 处理各种架构约束

架构约束是解决方案设计中最具挑战性的属性之一。解决方案架构师需要仔细管理架构约束,并能够在它们之间进行协调以找到最佳解决方案。通常,这些约束是相互依赖的,强调某种约束可能会放大其他约束。最常见的约束如图2-4所示。

图2-4 解决方案设计中的架构约束

解决方案设计可以帮助我们了解应用程序的以下属性:

成本:

●有多少资金可以用于解决方案的实施?

●预期的投资回报率(ROI)是多少?

质量:

●结果与功能性及非功能性需求的匹配程度如何?

●如何确保和跟踪解决方案的质量?

时间:

●什么时候应当交付产出?

●时间上是否灵活?

范围:

●确切的期望是什么?

●需求差距需要如何处理和适应?

技术:

●可以利用什么技术?

●对比传统技术,使用新技术能提供什么灵活性?

●应该由公司自建还是从供应商采购?

风险:

●什么地方可能出问题?

●如何降低风险?

●利益相关者的风险容忍度是多少?

资源:

●完成解决方案的交付需要哪些资源?

●谁将负责解决方案的实施?

合规性:

●可能影响解决方案的当地法律要求是什么?

●审计和认证要求是什么?

可能会有更多与项目相关的具体约束,比如,由于政府监管需要将数据存储在某一区域,或者出于安全考虑而选择自建。处理约束可能会非常棘手。通过减少资源来节约成本,可能会影响交付时间表。

在资源有限的情况下实现进度可能会影响质量,而质量又会因为不必要的bug修复而增加成本。所以,在成本、质量、时间和范围之间找到平衡点是非常重要的。范围蔓延是最具挑战性的情况之一,因为它会对所有其他约束产生负面影响,并增加解决方案交付的风险。

解决方案架构师必须了解每个约束的所有方面,并能够识别任何由此而产生的风险,这一点非常重要。他们必须将风险缓解计划落实到位,并在两者之间找到平衡。处理范围蔓延对项目的按时交付有很大帮助。