成为首席架构师的打怪升级之路

经过多年职场成长,发现架构与管理有很多的相似之处,最大相似之处就是要与个人特性融合实践。也就是纸上得来终觉浅,绝知此事要躬行。

读再多的架构或者管理书籍,那不过是个最基础的起点,你外围触之可及的手段,但离最终的知行合一还存在着很远的距离。

《架构师的能力模型》中提出架构师的能力模型:

架构师能力模型

程序员只需要专注于“专”,而架构师需要“博而不专”,牺牲技术深度来提高技术广度。

对于一个全能型架构师对架构的决策,需要广度+深度+经验三者兼顾

广度决定能找到的方法+深度决定选择方法的正确性+经验决定找到正确方法的速度

架构师的能力维度从技术+业务+管理升华为技能+影响力+领导力

1.技能是实践架构的基础。它需要知识以及应用知识的能力

2.影响力用来衡量架构师在项目中应用技能后给项目或公司带来多大的效益

3.领导力确保了架构实践的状态能稳步向前推进,同时培养更多的架构师

从上面的文章和阐述,似乎只能看出架构师要全能,不但要技术强,而且不管有没有管理title都得引导架构方案成功落地。

那作为一位程序员怎么成长为一名合格的架构师,甚至首席架构师或CTO,需要经历哪些阶段,怎么样的脱变,轻重优先级怎么划分,认知需要怎么提升转变呢?

在《郭东白的架构课》里面作者给出成长路线,总结学习一下。

首先架构师是具备架构能力的人,架构能力是指为相对复杂的场景设计并引导一个或多个研发团队,来实施结构化软件系统的能力

其中结构化代表这个软件在其设计范围内的设计理念、代码结构和实现方式上是同质的。“同质”表示设计范围内处处一致。

要想成为首席架构师,需要经历程序员、兼职架构师、全职架构师、首席架构师关卡。在这四道关卡上,对结构同质的关注侧重点也将有所差别。

程序员

程序员是入门后的第一阶梯。

职责很清晰:

1、负责功能的实现方案设计,编码实现

2、追踪bug,分析并攻关解决

当然随着打怪升级,经验丰富,负责的功能会越来越复杂、核心;解决的bug也会从易到难,直至各种疑难杂症。

对照架构师的终极目标,程序员在结构化层面需要有如下的认知:

对于结构化,程序员就是在代码层面做到高内聚低耦合,在整个打怪升级路径中,这一阶段可以说是对代码最有掌控权的,只要能把需求功能实现,无bug。遵循团队统一规范,其他一切几乎都能自我实现。

在代码层面,想要做到结构化,可以详看以往两个主题:
《Clean Code》《SOLID原则》

兼职架构师

从程序员升级到下一关卡,就是兼职架构师。何为兼职架构师呢?主要是解决团队内部的横向问题,那什么时横向问题呢?其实就是《架构与架构师》中提到的软件质量问题,或者称为架构特性:如稳定性,安全性,扩展性,高并发等等。

在团队中,一般也不会设计这些职位,完成看个人主观能动性。慢慢成为团队中的技术大拿。

但还是在代码层面的非功能需求的结构化:

想要成为兼职架构师,也很简单,一切取决于个人意愿,只要肯花时间,下功夫。

《程序员职级》 中,有5年左右时间,就可以通过这个关卡。

全职架构师

成为兼职架构师后,只要公司业务还在向前发展,有机会,国内大多环境,会码而优则仕

想成为架构师,大公司环境会更有机会,小公司则会变成TL。

成为研发Leader后,大体职责:

1、团队任务管理:开发工作量评估、任务分配

2、团队生产力提升:统一规范、最佳实践总结、自动化工具开发

3、团队生产质量提升:代码审核、风险管理

4、团队专业力提升:招聘、新人指导、复盘总结改进

其实不管是TL还是全职架构师,都有相似之处:思维认知第一次脱变。成为TL,走上管理,是人生的一次转身,相当多的人在这个过程是脱了一层皮,会转身失败,有性格因素,也有认知原因。同样的,成为全职架构师,如下面思维导图中指出,要突破的障碍,明面上都有硬技能和软技能,背后是人的障碍,怎么有勇气应对挑战和不当和事佬。

两项的挑战对程序员群体都不小。

首席架构师

关卡来到这一层,可以说是相当艰难,一是这样的职位相当少,二更是要跨越人性。人都是追求确定性的,而首席架构师却是要面对不确定性。

而且在打怪升级的过程中,需要有高风险决策的机会。虽然很难,但可以通过这个职级指导其他职级,也更加印证了架构第二原则:原因比方法更重要。架构师需要详细记录架构决策以及背后权衡的逻辑。

CTO

CTO就更难了,不过应了那句话:来时赤裸裸,走时赤裸裸。入行前无技术,到了最高层次,还得抛弃技术,也就是跳出技术追求解决问题方案。

不过从上面的思维导图中,让我得到更多的不是怎么成为CTO,而是向上管理。CTO的上级是CEO,CTO怎么支撑CEO?怎么向上管理。

对应到我们任何一个层级,都需要常问自己:我的领导想要什么?遇到什么难题,从我角度怎么支撑他成功。

总结

成为首席架构师打怪升级的整个路径相当清晰了,对结构化的关注范围:从代码层面、单个领域、多个领域、再到最高的公司整体领域,一层层扩大。

对于架构师,关注两个架构定律,第一一切都是在做权衡、第二原因比方法重要。架构师需要关注自己做了哪些架构决策,尤其在可见的风险之下决策,并承担风险。以终为始,为最高阶的首席架构师做好准备,以便在未来不确定性下更好地做架构决策。

公众号:码农戏码
欢迎关注微信公众号『码农戏码』