架构师,这个职业在大部分人眼中,认为他们在IT领域无所不能,不但拥有高超的架构决策能力,还精通各项主流技术领域。
在发生问题时,他们能够快速诊断故障并解决,在推进项目时,他们能够精准掌控各方面信息来源。
企业对架构师的期望可能会更高,认为他们是能够推动整个科技文化转型的关键要素,是能够调动各个科技团队融合的核心角色。
不知在你们心目中,架构师的形象是怎样的,是“超级英雄”还是“救世主”,但至少从我这二年对架构师的理解和认识而言,他们可能都不是。
甚至他们仅仅是一个听上去比较高端的职业罢了,只不过是被大多数人给神化了,导致那些对架构师并不了解的人们,对他们产生了误解。
所以,今天就和大家聊一下,在我的心目中,架构师到底是怎样的人物,他们的价值体现在哪里,以及他们应具备哪些基础能力。
决策能力
架构决策,就是在不确定的情况下对架构设计做出决定,而架构设计是架构师最关键的工作,那么毫无疑问,想成为一名优秀的架构师,那得先成为一名优秀的决策者。
架构决策前一般都会经过深思熟虑,从而在面对诸多不确定因素的情况下,能够做出最佳的架构决策,但有一些架构师在做出架构决策前,会陷入无休止的纠结中。
殊不知,这不但没有快速解决问题,甚至还可能会产生额外的隐形成本,并且在某一时刻后,这些隐形成本将会发酵,并引发风险及问题。
所谓三思而后行,并非适用于任何决策,至少在架构决策上并不完全适用,对于那些可逆的决策,即便没有十足的把握,架构师也应当机立断。
Martin Fowler曾提出过这样的观点:“架构师最重要的任务之一就是消除软件设计中那些不可逆的决策。”。你没听错,架构师应把更多的精力花费在判断决策是否可逆,若不可逆,则通过延迟决策,来争取更多的时间去消除它。
要知道,架构决策有时候需要与时间进行赛跑。因为,往往“最佳时刻”的架构决策比“最佳”的架构决策更具有价值。
沟通能力
架构决策需要适量的信息,但这些信息从来就不会从天而降,架构师应当快速识别架构决策可能会影响的相关利益方,并与他们充分沟通来获取信息。
大部分传统企业的架构师,经常会端坐在象牙塔中,绘制那精美绝伦的架构高阶蓝图,而面对架构决策,仅凭借别人的成功经验,草率的做出架构决策。
优秀的架构师应当抛开头衔,放下姿态,不断游走在相关利益方之间,他们可能是业务人员,或者是研发人员,甚至是高层领导,从而去寻找辅助架构决策的线索。
通过沟通,架构师可以充分洞察各方背后真正的意图,并站在不同的客观视角,透彻分析不同架构决策给相关利益方所带来的优劣势。
通过沟通,架构师可以解决他们之间语言障碍,同时也给对方带来一些他人的见解,并重新唤醒对方的思考和创造能力。
架构师的沟通能力不仅仅只是简单的信息传递和反馈,它更重要的作用是能够产生一种连接,这种连接可以穿透不同人中间所设置的屏障,并设法帮助他们达成共识。
取舍能力
快速架构决策固然重要,但快速并不代表盲目,架构师仍然需要判断哪些方面对他们当下而言更重要或更有价值。
既要、又要、还要只可能发生在虚拟世界,在现实世界中他们需要舍小取大,适可而止,从而做出合理的架构决策,而其中必然需体现出架构师的取舍能力。
刚从研发转为架构的入门架构师,他们往往会花费更多的精力投入在技术层面,因为,他们坚持崇尚性能优越、健壮性高的应用系统。
这本身并没有错,但不应盲目追捧,并脱离现实情况,他们应该纵观全局,并在技术、成本、业务等之间徘徊,在尽可能短的时间内,寻找出它们的平衡支点。
架构决策的背后是不断取舍的过程,而取舍的目的是实现架构决策的合理。由此可见,取舍能力对于架构决策的重要性。
取舍能力还能够充当沟通能力与决策能力之间的一种协调器,从而实现在有限的资源下,能够让相关方的利益总和最大化。
认知能力
同样的信息,不同人的理解可能会产生截然不同的结果,这取决于每个人的认知能力,而这种能力可以帮助架构师如何正确的取舍及决策。
雷达里奥曾说过:“如果你觉得过去的自己能力差,说明经过积累与不断的迭代,现在的你比过去的你有所提高。”。
听上去似乎很奇怪,但这其实是一种认知能力的提升,是从认知第一阶段“不知道自己不知道”迈向第二阶段“知道自己不知道”的一种体现。
提升认知能力的捷径是学习,但学习并不是盲目的,它需要带有一定目的性,例如:碰到的技术问题、架构决策所需知识,这样才能更好的提升学习效率及记忆效果。
随着架构师认知能力的提升,不但能让他们在面对事物时,看清事物全貌,并从多维度视角去看待问题,还能让架构师突破自身瓶颈,提升上限空间。
架构师不但需要从“不知道自己不知道”向“知道自己不知道”迈进,还要再向“知道自己知道”跨越,从而做出更正确的架构决策。
实践能力
架构师通过决策,让利益相关方达成一致,并明确工作目标,但他们的工作只是刚刚开始,还需要通过实践来观察结果,从而来验证架构决策是否正确。
不少企业中的架构师都被赋予了架构决策权,他们只负责给出决策结论,不负责或辅助产研团队落地实施。这种有权无责的反模式并不提倡。
架构师需要对架构决策承担责任,他们需要确保当前的行动与当时的决策,始终保持一致,否则可能会导致结果与预期相差甚远,甚至还将会影响后续决策的有效性。
架构师需要时刻观察实践所带来的影响,从而不断对架构决策进行求证,及时发现问题,尽早调整方向,避免更多损失,从而形成一个良性循环。
要知道,世界上再杰出的架构师,也只能尽量保证大部分架构决策的正确性,但无法保证永远正确。
架构师不是无所不知的“先知”,但他们可以通过不断的实践来降低架构决策最终失败的概率。实践才是检验真理的唯一标准。
传道能力
架构实践的成功经验,将是一种财富或资产,它不应该被当作传家宝进行封存,而是应该将它们进行传承,从而降低企业中的架构决策风险。
因此,优秀的架构师不仅是一名优秀的决策者,他们还应当时刻转换身份,充当一名合格的教练或布道师。
公开及分享是架构师传道的基本手段,在内部他们可以颁布适用于内部的规范指南,及开展培训课程,在外部,他们可以发表学术论文,及与同行业进行学术交流。
传道还能增加架构师的影响力,提升他人对架构师的信任度,使架构决策前的沟通变得更有效,提升他人对架构师的认可度,使架构决策后的结论变得更有说服力。
架构师一个人的成功并不稀奇,稀奇是如何能够让周围人一起成功,毕竟成就别人才是最好的成就自己。
所以,架构师如何提升周围人的架构能力,将是他们面临的最大挑战之一,否则,总有一天自己将成为瓶颈。
总结能力
总结这两个字可能你并不陌生,从小时候读书到长大后工作,都可能或多或少被要求写过总结,它可以是一份学习总结或是一份工作总结。
但总结并不是对近半年或一年的工作依次阐述,这样的内容不但冗长毫无重点,而且缺乏分析与思考,它将变得毫无价值。
架构师需要自驱式的对以往每一次架构决策后的实践情况进行总结,他们需要通过总结,不断反思,不断进步。
架构师不但需要对成功案例进行总结,沉淀方法论,运用于未来的架构决策,更需要对失败案例进行总结,寻找不足,弥补差距,增强认知来提升架构决策能力。
可以发现,总结的读者并不是别人,而是自己,它将会变成架构师最有力的核心武器,也将成为架构师最好的成长方式。
但总结能力并不会与生俱来,架构师需要有意识地刻意练习,这也就是我输出文章的原因之一,它可以让我持续保持不断前进的动力。
写在最后
本文仅以我当前对架构师的了解程度,对架构师这个职业所必备的七项基础能力,进行了简要阐述,它可能并不完全,但缺一不可。
七项基础能力相辅相成,为了便于读者能够体系化的理解它们之间的作用,我还绘制了如下基础能力关系图供大家参考。
希望这篇文章对于刚成为架构师或即将成为架构师的你们会有所帮助。文章发表之际,也正是作者涉猎架构工作二年,也希望自己能够继续坚持,做难而正确的事。