作者:周异(Yi zhong)
由于软件架构师比组织中的其他人更有影响力,所以他们必须对自己做出的决策负责。研究表明,超过三分之二的项目要么彻底失败了,要么未能成功交付(表明为项目延期、预算超失、客户不满意思)。究竟根本原因,有许多是由于软件架构师做出了不当的决策,或者无法最终执行正确的架构决策。
怎样才能成为负责任的软件架构师,做出有效的架构决策呢?
首先,无论是以敏捷的形式还是传统的形式做出架构决策,都必须对决策过程有充分的认识。只有满足以下两个条件,才算己经完成架构决策:
- 该决策己以书面形式记录下来;由于架构决策很少是无关紧要的小事。它们必须经过校核证实,并可被追溯(traceable)。
- 必须己和执行该决策及会直接或间接受其影响的人进行过沟通,达成共知。
第二,要定期对架构决策进行复审;对照检查决策的实际效果和预期结果;识别出哪些己被证明为有效决策,哪些被证明无效决策。
第三,要贯彻架构决策。有许多软件项目,软件架构师仅参与设计阶段,随后即转向其他项目,或者咨询合同到设计阶段完成就终止了。架构师怎样确保经过其深思熟虑的架构决策最终会被正确实现呢?他们只有全程跟进项目实施过程,才能够确保最到位地实现其设计意图。
最后,可以将一些决策委托给相关问题域的专家。许多架构师错误的认为,每个架构决策都必须出自其身。因此,他们将自己定位为“无所不知(know-it-all)”的专家。在现实中,并没有所谓的全能技术天才(a universal technical genius)。对有些领域,架构师相当纯熟;对有些领域,他们有所了解;对有些领域,他们根本说不上话。对于不精通的领域,老练的架构师就会将决策委托给合适的专家。