去年底,我曾经面试过一位架构师的候选人。这位候选人是一位大厂高级工程师,因为技术好,在团队中承担一些管理工作。从他简历上的项目经验,我能看出他的编程能力和技术深度都属于优秀行列,在某些项目上,已经承担了一部分架构设计职责,是个潜力型人选。

几轮面试下来,面试官对他的评价很不错,编程能力和技术深度都能过关。所以我面试的时候,就从他做过架构设计的项目出发,摘了几个具体的点去深度沟通。

然而,当我真的围绕“架构师”职责去考察时,却发现,他对“架构师”的理解,还停留在接到需求后,依据产品设计给出实现的阶段。对于接下来的模块分解、代码重构、技术选型、性能优化等方面,虽然他有所了解和接触,但实在太过皮毛,缺乏体系化的理解。

后来,在和他进一步沟通的过程中,我发出了这样的感慨:一个工程师,如果不能从架构师的角度思考问题,带领团队,整体完成一个系统的架构设计与开发,就永远也不会了解如何做一个架构师。而如果他不去做一个架构师,又永远没有机会带领一个团队,完成一个系统的架构设计与开发。

这里似乎形成一个死循环。能否解开呢?当然可以,从我 15 年的架构师经验来看,要突破这个死循环,有两个关键点。

第一,你表现出优秀的开发能力,让领导相信,即使你没有架构设计与领导开发的经验,你也能做好架构师这一角色,从而任命你做架构师。

第二,你在成为架构师之前,就掌握了足够的做架构的方法和技能。在被任命为架构师之后,不会手足无措把事情搞砸,而是能够有条不紊开展工作,打好你的架构设计第一仗。

那么,到底如何才能成为一个架构师呢?换句话说,优秀架构师应该拥有哪些能力和素养?在我看来,一名优秀的架构师,必须具备 8 大核心能力:

  • 优秀的编程能力

  • 设计文档的能力

  • 模块分解的能力

  • 大规模复杂系统架构的能力

  • 掌握典型技术解决方案的能力

  • 系统优化以及保障系统稳定的能力

  • 数据处理与应用的能力

  • 领导与管理能力