一场 Gartner 网络研讨会探讨了最佳与最坏的 EA 和应用架构实践。
Gartner 副总裁兼著名分析师 Betsy Burton 与副总裁兼 Gartner 院士 Andy Kyte 组织了一场称作“最好和最佳的企业应用和应用架构实践”的网络研讨(需要账户访问)。Burton 从 EA 的十大最佳实践开始了研讨会:
- 通过制定章程要求 EA 项目要关注与企业环境——将 EA 放在整体业务环境中;只有熟知企业的现有业务战略,才能成功地执行 EA
- 制定(并执行)沟通计划——对业务进行反馈,概括当前 EA 发展带来的价值
- 讲求实效(明确界限并不断重申所做的工作)
- 将每次迭代当作项目——EA 不是项目,但是每次迭代都可当作项目来做
- 从业务战略开始,获得业务赞助
- 要对未来状态进行投资——一开始就把当前状态当作目标,往往最终会“烂泥一滩”。最好在开始之前有对未来做明确规划,在投资之前需明确要做什么
- 不忘治理——企业架构师应当“促进、指导、协调并帮助人们跨企业进行合作。”
- 建立度量程序(与全面的绩效管理关联)——度量 EA 项目的有效性
- 跟踪 EA 项目的成熟度以及人们对的看法——人们对其企业的 EA 的成熟度常常有不同的看法,而且往往差别迥异
- 人的综合素质与技能要同样关注——技术专长并不足够,人们之间的沟通能力却是关键
Burton 也提到了 13 个最坏的 EA 实践,其中有些是最佳实践的反面对照:
- 与业务战略规划及预算流程不相关
- 混淆“IT 架构”和“EA”——EA 面向整体业务的改进,而 IT 关心的是整体业务中的信息技术相关的部分
- 缺乏治理
- 过分标准化
- 过分注重工艺或 EA 语言而非其产出——EA 工作应该由业务产出驱动
- 苛求对 EA 框架的遵循——90% 的企业架构师使用多种框架的混合体,而且他们不把这些框架当作傻瓜书并严格按照其条条款款执行,这是好的
- “象牙塔”方法。
- 缺乏沟通和反馈
- EA 团队仅限于 IT 人员——鼓励让业务人员加入其中
- 缺乏绩效度量
- 选择工具先于理解业务需求——工具应该支持 EA 而非驱动 EA。Burton 建议先完成一次 EA 的迭代,之后你就会清楚哪些工具能够起到作用
- 关注当前状态在先
- “我们做完了”——EA 永无止境,应为业务需求建立持续改进的流程。
Kyte 在 EA 的语境中谈到了好几点应用架构方面的最佳实践。它一开始就提到许多企业架构师都以前都是应用架构师,而且他们倾向于关注技术的解决方案。他建议,架构师们应该退一步,站在更广阔的视角去看解决方案的整体生态环境,评估解决方案如何能在不断变化的业务环境下长期运行。
我们应思考生命周期,思考各种服务的混合体,如运维服务、维护和支持服务、提升和扩展服务、业务智能服务等,该服务混合体在应用的整个生命周期中都是需要的。然后我们可以说……我们需要建设哪些功能特性才能保证我们达到目标……
这些特性如何以我们期望的敏捷、快速响应、和可靠的方式交付呢?我们如何在整个生命周期中保持这些特性?
Kyte 建议,在判别项目成功与否时,不要看项目上线时运行的多么好,而是看“系统是否在其整个生命周期中是否满足了所有干系人的各种需求”。
Kyte 还谈到了应用架构师的保障软件质量的角色。他从 ISO 25010 开始谈到了该标准定义的软件质量的 6 项要素:功能性、可靠性、使用性、高效性、维护性、移植性。他提醒人们注意,许多架构师过多地关注软件的功能特性,可应注意的是,这些需求会随着政策法规、竞争、及业务需求的变化而变化:“墨水未干时我们也许还是对的,但一旦墨水干了,我们也许就过时了。”由于在系统的生命周期里变化是永恒的,架构师应该考虑软件质量标准提到的其他属性,特别是维护性,它有助于正确地执行变更。
Kyte 谈到了维护性的几个子领域——可分析性、可变更性、稳定性和可测试性。可分析性指的是能够方便地分析和理解系统的功能。如果回答是“阅读 86 万行 Java 代码后你就理解系统做了些什么了”,我认为这在可分析性的评判标准中评分就不会高。Kyte 坚信,人们应该通过代码的工作流程的文档化来提升系统的可分析性。
总之,要获得成功,架构师就应该从以下方面思考并评估其应用系统的产出:年度开销、寿命、功能、敏捷、移植性、使用性、可靠性、和建设成本。
Kyte 推荐的最佳实践是关注细节,并将它贯彻到应用开发的各个阶段(包括外包管理)和治理流程。
参考资源: 幻灯片 (PDF).
查看英文原文: Gartner: Best and Worst EA and Application Architecture Practices
评论