[架构师]05.架构师就是平衡
当我们想到软件架构时,我们最先想到的是经典的技术活动,如模块化体系、定义接口、分配责任、运用模式,并优化性能,架构师还需要考虑安全性、可用性、保障性、发布管理、部署选项,还包括了其他一些事情,但是这些技术上和程序上的问题必须由干系人和他们的利益进行平衡,采取“干系人和利益”的做法,在需求分析上的一个很好的方式,能够确保一些正在开发软件的需求规范的完整性。
在开发软件的组织和组织内部去分析干系人和他们的利益的过程,能揭露最终和软件架构相关的优先级事项,软件架构师将平衡这些优先级事项,在短期和长期上来说,真是一个适合当前的工作环境的好方法。
思考一下,举个例子,工程部门的软件即服务(SAAS)业务,这个业务可能有一些优先事项,如:合同法务会议、创收、客户保障、成本控制和创造有价值的技术资产,这些业务的优先级可能转化为部门的优先级,像确认功能和正确性,正在开发软件的“品质”,以及确保产品开发团队,确保可持续性和可审性的开发操作,以及适应性和长寿的软件产品。
这是架构师的工作,不仅仅是为用户创造有功能的、具有品质的软件,而且还要去兼顾其他部门优先级的事情,像和商业CEO的成本控制,和运营同事的易于管理的利益,和今后方案编制工作人员的易于学习和易于维护的利益,以及软件师专业的最佳实践。
架构师可以在短期内有意识去选择某一个举足轻重的优先事物,但是长远来看,为了真正做好工作,最好坚持一个适当的平衡,这个有影响力的平衡要适合手头上的工作环境,还要顾虑其他因素,譬如:预期软件寿命,关键软件的业务,技术和组织的财务文化。
总之,软件架构不仅仅是经典的技术活动;在项目中他还要平衡技术需求与商业需求相关者的利益。
选自:Architecting is about balancing
Tags: 架构, 架构师, 软件工程