返回

系统架构设计在企业产品设计中的实践

2017-11-13

本文将着重探讨系统工程中的核心部分:系统架构设计。可以说,在产品研发管理的体系中,IPD的核心是系统工程,而系统架构设计则是系统工程中极其重要的部分。是连接需求与开发的桥梁,是技术转向产品和商品的关键路径,是产品竞争力最重要的基础保障。本文主要探讨架构设计在帮助企业产品从技术到商业化过程中如何更好地发挥作用。

架构设计概述

到目前为止,还没有一个特别完全一致的定义。我们更倾向于如下的描述:架构设计是如何分解和确定各个子系统及其功能、子系统间的交互关系的一系列的决策活动。

架构设计的核心是决策,是根据需求、技术趋势、经验及应用所做出的决策,良好的架构决策可以使公司的产品在竞争的市场中取得优势,而不好的架构决策很可能从一开始就会让后续的产品设计与开发陷入被动,甚至彻底失败。

架构设计决策是科学与艺术的结合,即便是很高明和有经验的架构师,也可能无法完全预料后续的全部的变化情况。因此企业需要构建符合要求的架构师团队,并最早介入到产品的构建中。

原则

良好的架构决策有一些典型的原则来借鉴和遵守,下面列出了一些业界共识的、比较重要的原则,供企业架构师在做架构决策时参考。

整体原则:每个系统都作为某个大系统的一小部分运作,同时每个系统中也都包含更小的系统。

聚焦原则:在任何一个点上都能发现很多影响系统的问题,而其数量已经超出了人们的理解能力,因此,必须找出其中最关键、最重要的问题,并集中精力思考它们。

受益原则:好的架构必须使利益相关者受益,要想把架构做好,要能够使得系统把其主要功能通过系统间的接口对外展示出来

架构师角色原则:架构师的角色是解决歧义、专注创新,并简化复杂度

歧义原则:系统架构的早期阶段充满了歧义,架构师必须解决这种歧义,以便给架构团队定出目标,并要持续更新这些目标

解决方案无关功能原则:过早引入特定的某一套解决方案、功能或形式中,会使得系统架构师的视野变狭窄,而失去更好的潜在选项。

架构决策原则:要把架构决策和其他决策分开,并且要提前谨慎处理和决定这些问题,因为以后变更会付出更高的代价。

产品进化原则:系统必须保持进化的能力,否则会失去竞争力。进行架构设计时,需要把系统中较为稳固的部分独立出来。

平衡原则:有很多因素会影响并作用于系统的构想、设计、实现及操作。架构师必须在这些因素中寻求一个平衡点,使得大多数重要的利益相关者得到满足。

系统问题陈述原则:对问题所作的陈述会确定系统的最高目标,并划定系统的边界,要对问题陈述的正确性进行反复的辩论和完善,直到你认为满意为止。

表面复杂度原则:要对系统进行分解、抽象及分层,并将其复杂度控制在团队大部分可以理解的范围之内。

架构健壮程度原则:好的架构要能够应对各种变化的因素。能够应对外部变化的架构才是比较健壮和适应能力强的架构。既能够处理环境中的变化,又能适应环境中的变化。

架构决策的耦合与整理原则:可以按照指标对决策的敏感度以及决策之间的连接度安排架构决策之间的先后顺序。

架构设计的价值

系统工程的实践表明,对于特别是复杂的系统和产品,架构设计是确保产品竞争力的最为关键的技术保证,也是从技术迈向产品的最重要的活动。

架构设计承担着构建企业产品长期竞争力的重要职责,从华为早期的产品看,当时是缺乏架构设计支撑的,包括组织、角色和流程,导致当时华为的产品推出后,随便一个小功能的改动都会导致版本升级不断、甚至要推倒重来,大大降低了客户满意度和提升了公司的经营成本。

后来随着华为引入IPD和系统工程实践,架构设计已经在各产品线发挥了重要的作用,现在华为的产品均有严格、完整的系统架构设计过程和组织支撑,确保了华为产品的长期竞争力。

架构设计的主要作用:

识别关键技术:架构设计要确保提前识别技术风险和成熟度,以确保后续产品设计在技术上不出现巨大的实施风险。

确定合适的子系统和接口:基于需求、技术、效率等各种要素,对如何划分子系统、确定系统间的接口做出最优决策。

系统稳定性和演进:架构设计担负着构建产品长期竞争力、应对变化和产品长期稳定的守护者职责。

最终为构建企业产品的长期竞争力负责。

好的架构可以增强产品的生命力,反之不良架构则会破坏产品竞争力,薄云基于在华为长期的产品实践以及指导众多企业的过程中,对这些不良后果有如下总结:

1. 系统缺乏弹性,扩展性差,不能够适应需求变化或添加新的功能。

2.  关键技术决策错误,导致后续开发的诸多痛苦和面对代码深夜加班。

3.  无约束修改,无处不在的代码问题。

4.  低品质的软件和漫长的版本发布周期。

5.  员工问题(压力大、士气低、跳槽等)。

......

架构不良会造成上述问题不断重复,最终必然会损害公司产品的竞争力,使得公司在竞争日益激烈的市场中不能取得成功。

如何在企业中更好实施架构设计

相信前文描述已经让大家认识到架构设计在产品开发中的重要作用,那么企业在实施系统工程的过程中,如何才能让架构设计更好地落地实施呢?

薄云结合多年为企业提供咨询的经验,认为如下的措施可以帮助企业在实施系统工程应用中更好地实践架构设计这一关键活动。

架构设计不仅仅是技术层面的事情,更是组织、角色和流程方面的统一。架构设计作为系统工程的一个重要部分,需要遵循系统工程的方法论和流程。

基于华为成功的实践和薄云实施系统工程的经验,企业高效实施架构设计需要考虑如下因素:

架构师的培养:架构师担负着系统架构的具体设计者,架构师质量直接影响架构设计的质量。因此企业需要从组织的角度给架构师一个成长、晋升的空间,让架构师不断在实践中提升能力,承担起架构设计的重任。

从薄云的经验看,架构师需要具备如下的能力:

√ 在产品所处的情境与系统所处的情境复杂多变的情境中,具备全局和 系统思维,不能只看到局部。

√ 分析并评判已有的系统架构的能力。

√ 指出架构决策点,并区分架构决策与非架构决策。

√  为新系统或正在进行改进的系统创建架构,并得出可以付诸实施的架构结果。

√ 从提升产品整体价值及增强公司竞争优势的角度审视架构。

√ 通过定义系统所处的环境及系统的边界、理解需求、设定目标以及定义对外体现的功能等手段,理清目前各处的模糊之处。

√ 为系统创建由其内部功能及其形式所组成的概念,从全局的角度对这一概念进行思考,并在必要时运用创造性思维。

√  能够驾驭系统复杂度的演化趋势,并为将来的不确定性因素做好准备,使系统不仅能够达成目标和实现功能,而且还可以在设计、实现、运作及演化过程中一直保持易于理解的状态。

遵循系统工程方法:架构设计是系统工程中的重要活动,因此需要遵守系统工程整体的方法和流程要求(参见前篇系统工程概述)。

因此,架构设计的好坏很大程度上取决于架构师的修养和能力,但是培养一个架构师需要企业提供长期完善的包括组织、成长空间等方面的环境,并在系统工程方法指导下长期实践才有可能培养出优秀的架构师。

薄云在系统架构方面的实践

薄云咨询基于华为的成功实践方法,已经成功为多家行业标杆企业实施了系统工程方法论的应用,效果良好。

薄云通过包括但不限如下的方式,让架构设计在系统工程应用中发挥作用:架构师训战培训、大会交流、项目模拟指导、企业实际项目的参与指导和咨询等全流程的活动参与,直接帮助企业把架构设计这一重要的系统工程关键活动落地,强有力地支撑企业产品的商业成功。