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