本文来源: 汽车电子与软件
架构团队:利益相关者之间的平衡器
在电子电气系统的开发过程中,利益相关者的数量众多,角色各异。 充分考虑并平衡上述各个利益相关者的诉求, 是一项必须且艰难的工作。正是基于这个原因,架构团队所设计的各种原则才有其必要性与合法性。否则,如果各方在不同的时候、站在不同的角度提出了完全不同的诉求,那么整个系统的开发将无所适从。只有有了明确的规则,参与的各方才能高效地进行合作。从这个角度来讲,架构的开发过程也是一个收集各个利益相关者的诉求,并将其转换为具体的设计原则的过程。
确定设计原则的过程往往也是不断抗争的过程。 架构团队必须从公司的长远利益出发,与其他部门深度协同,建立并维护各种原则 ,成为各个利益相关者之间的平衡器。 任何公司内部各个部门之间、人员之间的博弈本来就是无止境的。 很多时候,博弈之后的妥协才是最好的结果。
在庞大如整车厂的组织中,各方的某些诉求总是会有发生冲突的时候,如实现某项质量部门的要求将导致某个零部件的制作成本大幅增加,或是某个设计变更将导致某个部件的交付周期晚于计划等,这个时候,总要有人站出来,组织各相关方来讨论具体的解决方案,在质量、成本与交付(Quality、Cost、Delivery,QCD)三者之中找到平衡。
架构团队作为整个电子电气系统的责任人,往往要承担起解决冲突的责任。 解决方法可能是让当事人适当做出一定程度的妥协,也可能是提出一个全新的解决方案。总之,要在保证项目的推进与坚守原则之间找到一个平衡点,要么给那个最初设定的原则找到一个偏离的理由,要么就更新某个原则,无论如何都要让架构团队的成员有可以遵守的原则,否则不但架构团队内部会无法可依,而且在架构团队外部的那些众多的利益相关者也会迷惑——不知道自己应该在遇到此类问题的时候该如何决策。
QCD是任何项目都无法逃避的问题,其关系如图1所示。资源总是有限的,无论是时间、人力还是资金。对于架构团队来说,在评估是否接受某种诉求的时候,QCD是一个有力且有效的工具。QCD三者围成的三角形的总面积被称为项目的范围。当这个范围变化的时候,QCD三者之中的一个甚至全部都要受到影响。而QCD其中的一个因素变化的时候,也很可能影响整个项目的范围。很多时候,一个项目最后的费用超标、周期超标的根本原因还是项目的范围没有被有效地控制。 虽然每个人都想把项目做得尽善尽美,但是资源总是有限的,怎么能够让QCD三者得到一定程度的平衡,并始终在可控范围内,是架构师最重要的工作。
图1 QCD三者的关系
影响电子电气系统的QCD的因素有很多种,图2仅列出一些常见的因素。
图2 电子电气系统设计的影响因素
这些因素相互交织,互相影响。如造型与可制造性和成本之间就经常发生冲突:一个视觉上非常美观的方案,可能会造成极大的生产困难或者成本大幅度提升。类似的冲突还长期存在于项目经理与架构师、架构师与系统工程师、系统工程师与零部件工程师等角色之间,以至于处理这种冲突变成了所有工程人员日常工作内容中的一部分,而且是占比很高、非常重要的一部分。
有效地处理各种冲突,需要的不只是情商和同理心,更重要的是技术能力。这里所说的技术能力不仅是对自己所在专业的精通程度,还要有相关专业的各种知识和经验。电子电气架构开发的最大难点在于其超高的复杂度。这种复杂度不但来源于部件数量众多和利益相关者众多,更来源于其跨学科和多方协作的特点。
对于架构师来说,只有电子相关知识是远远不够的,更要有系统思维的能力,即将每一个部件、每一个功能、每一个设计都放在电子电气系统、整车、车辆将来使用的环境甚至整个行业中思考的广度与深度。架构师不但要懂得功能逻辑设计,还要懂得软件开发、通信、硬件设计、机械设计、生产装配、可靠性验证、EMC、测试,乃至财务和管理等众多领域的知识。而且,要能够将上述各种知识在适当的时候应用到适当的领域和场景中,只有拥有了这种能力,才能从容面对各种挑战与冲突。
在表1中,列出了系统需要满足的一部分质量属性。可以看出,要完美满足每个属性是不可能的,而且很多特性并没有严格的标准。一个好的架构一定要尽量努力地朝着完美的方向前进,虽然这是一个无法达到的目标。各种属性间的平衡,以及与企业目标的高符合度才是一个好的架构应该符合的真正标准。
表1 系统的部分质量属性
开发人员最怕听到的句子是“既要……,还要……”,世界上很难存在两全其美的事情, 而造车的艺术就是平衡的艺术,在各种因素之间如何找到一个平衡点是一个永恒的话题。
一个系统的复杂性的增加往往是由需求不断增加导致的,而需求的增加和变更是日常工作的一部分。更多的功能、更好的性能、更佳的鲁棒性、更大的灵活性、更低的成本……这是每个人都想得到的,却也是互相矛盾的。 在各种需求、各个利益相关者的诉求之间如何妥协,看似一项无奈之举,实则一门平衡的艺术。
造车是一个商业活动,离开了商业的可行性谈技术是无意义的。这个世界会不断出现很多看似炫酷的技术,如果不能有效地把这些技术变成在商业上也可以取得成功的产品特性,从而让终端消费者愿意为之买单,那么这些技术对电子电气系统开发就是没有价值的。如何能够在令人眼花缭乱的技术世界中找到那些真正有利于提升车辆价值的技术,更多需要的是智慧的决策。
架构师的八项基本能力
从架构设计的讨论中我们可以得出一个结论:架构设计是一项高度复杂的工作。既然如此,对从事架构设计的人——架构师的要求就要非常的高。虽然不同的架构师最终都可以交付出一个完整的架构设计,但整个组织付出的成本(时间和资源)和架构的质量可能大相径庭,优秀的架构师可以用尽量少的综合成本交付更加优秀的架构设计。这里介绍优秀架构师需要具备的8项基本能力。
2.1 洞察业务本质的能力
没有业务,架构也就无从谈起,架构是为了业务而设计的。好的架构一定是随着业务的发展逐步进化的。懂业务是一项对架构师的最基本要求。无论哪个层级的架构师,如果缺乏对自己所设计的架构对应业务的基本理解、只是泛泛空谈浮于表面,就绝对不可能设计出好的架构。因此, 好的架构师一定是从实践中成长起来的,只有实践中的历练才可能造就出一个对行业趋势、公司战略和目标的深刻理解的优秀架构师。
对于汽车电子电气系统的架构师而言,懂业务不仅要懂架构设计的相关理论,还要对整个电子电气系统都有深刻的理解,还要对企业的目标与市场竞争情况都有正确的认识。 不但要懂得如何将一个架构开发出来,更要懂得产品的生产、质量控制、销售乃至售后服务等所有环节的基本过程和需求。要有将“业务需求”转化为“技术需求”的能力,这是一个本质提炼的过程。
如果企业的竞争力来源于不断地创新,那么架构就必须要能支持快速的迭代与新功能的迅速部署,如果企业是通过良好的客户服务赢得的市场,那么如何保证对服务的支持——数据收集、个性化的配置等就是架构需要优先保证的能力。而如果企业是靠高质量的产品吸引客户的,那么对质量的要求与保证就是架构师在进行设计和原则制定时需要优先考虑的。
架构师之所以是架构师,就源于他在庞大系统的面前仍然能够敏锐发现其底层之本质,这一定是来源于多年、多领域的知识和经验的沉淀,更需要他有深入的思考和洞察能力。
2.2 强大的学习能力
对于架构师来说,在各个领域的长时间实践工作是必不可少的历练。无论一个架构师来自哪个领域,在其中某一个领域的技术深度是最基本的要求之一。只有技术深度是不够,还要有跨领域的知识与思维。虽然没有人可以掌握所有的电子电气系统知识,但是却可以在精通自己领域知识的基础之上通过触类旁通的能力来迅速地理解、掌握其他领域的知识,成为百科全书式的智者。
一个好的架构师一定是T型人才,甚至是π型人才, 如图2所示。
图2 T型人才与π型人才
在汽车电子与IT行业技术不断融合的今天,深耕于传统汽车电子行业的架构师需要有能力迅速地学习IT行业的最新技术,并将其应用到架构的设计工作中。在这个学习与应用的过程中,既不能畏首畏尾的不敢越雷池半步,也不能盲目冒进的随意引入新的东西。如何将架构设计的三大原则与新技术的引入进行适度的平衡,是每个架构师都必须解决的问题。
2.3 高瞻远瞩的能力
一名合格的架构师设计出来的架构是要有前瞻性的,要能够帮助组织在未来更上一个台阶,在满足当下需求的同时还能够适当扩展。
技术前瞻性还体现新技术的选型上,哪些东西适合自己团队,哪些不适合,哪些在未来可以适当导入等都是需要全盘考虑的。学习成本、开发成本、维护成本、硬件成本、潜在风险等等都是架构师需要考虑的。
架构师与技术专家的区别在于 ,架构师不仅要能够解决具体的技术问题,还要能够明晰某个具体的设计或原则在整个系统范围内可能产生的潜在问题和风险。
架构师不但需要在自己所处的领域对各种现状了解颇深,还要能够对本领域的技术在未来该如何发展有自己的理性判断,而且还应该对整个行业的未来发展趋势有深刻的见解。架构师必须具备非常好的技术前瞻性和业务前瞻性,要先于大多数人了解到最新的技术和行业动态。只有能够站在技术的山顶向前眺望,才能具备前瞻的设计眼光。
架构设计是过程,并非结果。架构设计是架构师洞察内部与外部结构、原则、规律与逻辑的过程,架构师要做到自己清晰理解系统,并能够简洁描述,这是分析整合的能力。
架构既看重前瞻,又看重落地,落不了地的架构只是空中楼阁,所以, 如何将架构落地,考量的就是一名合格架构师的综合素质和系统思考的能力。 合格的架构师都是好的战略家,前瞻性眼光是他们起码的要求。
2.4 适当妥协的能力
架构几乎影响了与该系统相关的所有人和事,甚至从某种角度来说决定了一个企业的命运,以及企业中每个人的命运。如何在各种利益相关者的诉求中取得适度的平衡是既是一种能力也是一种艺术。
架构师首先关注的不是架构的先进性,而是满足需求,尤其是企业的需求。理想中的设计也许永远无法实现,能够在现实中存活下来比坚持理想更加重要。
一方面要适当坚持理想,一方面又要适当妥协。 只有合适没有喜欢,通过平衡取舍来确保架构在现有资源约束下是最合理的。一味盲目坚持有的时候只会导致停滞不前。
因为架构的规划和落地必然要依附于现有的环境因素,所以合格的架构师要能够尽可能多地将对架构有影响的因素考虑进来,然后做出权衡,通过适当妥协来保证架构能够得以实现,从而保证企业的目标能够尽可能实现。
2.5 高度的抽象能力
抽象是指为了某种目的,对一个概念或一种现象包含的信息进行过滤,移除不相关的信息,只保留与某种最终目的相关的信息。例如,将苹果、香蕉、荔枝、葡萄、芒果等这几种东西进行抽象后可以得到更一般性的概念,也就是“水果”。得出水果概念的过程,就是一种抽象。从另外一个角度看,抽象就是简化事物,抓住事物本质的过程。
架构设计是一门高抽象级别的学科。需要对系统进行全面了解,包括所有的组件、结构关系和内外部环境。这种了解使架构师成为电子电气系统开发团队的核心部分,因为他们了解“为什么”,而不仅仅是“做什么”。
在架构的设计过程中,抽象能力是一种几乎每天都要使用的能力。首先,需要根据公司战略制定技术方面的子战略,并将其分解为指导思想和原则。其次,在具体的开发过程中,要随时对复杂的事物进行抽象处理。例如,对一个系统、一个逻辑功能或者具体的零部件进行命名。命名的活动看似简单,其实一个简单并能反映本质的名字将给后续的工作带来非常多的便利,将那些具有类似属性的物理部件或逻辑部件进行归类,将其合理地划归到不同的系统或模块中也需要高度的抽象能力。
制定架构设计的各种原则的过程也是一种将具象化的需求进行抽象的过程。例如功能安全等级中,ASIL A-D就是一种将具体的设计需求抽象为少数几类具体规则的典型范例。类似的例子还有电源模式、网络模式、辅助驾驶等级等。可以试想一下,如果没有这些成功的抽象,工程师在讨论问题的时候将不得不罗列出无数的具体需求才能将问题表述清楚。
抽象能力就是在思维活动中,通过对事物整体性的科学分析,从纷繁复杂的事物中提炼本质舍弃非本质、非主要的内容而形成概念和范畴的思维能力。抽象要以分析、综合、比较为基础,抽象为判断和推理提供前提条件。
在架构的设计过程中,抽象能力有助于将复杂的系统中的组件、关系和规则等进行高度简化,从而产生一些普适性的规则,让设计工作简单化。 抽象在架构设计中是一种解决系统复杂性的有效方法。抽象是有层次性的,抽象层次越高,内涵越小,外延越大,扩展性越好;反之,抽象层次越低,内涵越大,外延越小,扩展性越差,但语义表达能力越强。越是顶层的设计,需要的抽象层次越高,从而需要从事设计的人员具有越高的抽象能力。
2.6 系统思考的能力
新架构的设计目的一定是为了解决某些目前面临的问题。可是实际在操作过程中经常会出现解决了一个问题却引入了更多问题的现象。这种现象的产生往往是因为设计者缺乏系统思考能力。关于系统思考,此处要再次强调一下。
在电子电气架构的设计过程中,所谓系统思考的能力,是指设计者能够综合考虑问题相关的所有的利益相关者的诉求、所有系统中的所有的元素(组件、环境与结构关系),以及整个系统的各种属性之间的关系后,提出一种或多种解决方案,或者做出一种或多种最适合当下情形的决策的能力。
拥有系统思考的能力的前提是对系统的深刻了解。一般来说,经验越丰富、站位越高、眼界越宽、考虑的维度越多、将各个因素之间的关系认识得越深刻,系统思考能力就越强,提出的解决方案的可行性也越高,风险也越小。
2.7 良好的沟通能力
作为一名架构师,日常工作中至少要完成以下几种沟通交流。
架构师必须参与项目开发的全过程,他们沟通交流的对象包括但不限于所有的利益相关者。因为交流的对象众多、所处的角度各异、诉求各不相同甚至互相冲突,所以要求架构师要有良好的沟通能力。
所谓的沟通能力,并非巧舌如簧,而是要 针对不同的沟通对象有不同的交流方式,并能用对方可以理解的语言解释问题、站在对方的角度思考问题,并争取达成共识,从而保证架构开发能够顺利进行。 可以毫不夸张地说,架构师沟通能力的水平将直接影响架构开发的进度与质量。
对于大多数架构师来说,除了具备一般意义上的沟通能力之外,专业的文档表达能力也至关重要。因为在系统分析和建模过程中,需要不断地传达决策,规则和原则,还需要对它们加以解释和记录,以确保规则的一致性和强制性。因此,架构师的工作很多时候都要输出大量的设计文档给各个相关方,而且这些文档要被大量的人所使用。如果文档的表达能力不足,必然会大大降低 |