根据行业共识,工程师向上发展的路径有两个,一个是走向管理,朝着技术总监和CTO发展,另外一个是朝着技术专家和首席架构师的方向发展,这是人为的把管理和架构的角色割裂开来看的,实际上架构师和技术管理的能力模型没有明显的界限,笔者所在的公司多数使用矩阵制度和项目制,一个事儿需要一个带头大哥来负责,带头大哥带领项目一起完成一个事情,这个带头大哥可能是一个技术总监,也可能是一个架构师,因此,我们在谈的通用架构师的角色是个广义的架构师,也就是能够带领大家完成一个独立项目的这样的一个角色,上面我们学习了通用的架构方法论和通用架构师能力模型,这里我们来看下工程师如何向通用架构师转型。
对于技术人员在职位上的晋升,我们通常通过点线面体来类比,这也是从工程师到架构师的晋级过程。
- 点:能够独立负责一个模块的开发。
- 线:能够根据设计,同时负责一个项目中多个模块的开发,甚至独立负责一个项目的开发。
- 面:在所在领域内,可以负责一个产品的整个研发过程,并对业务和技术要有前瞻性。
- 体:能够负责一个产品线的研发过程,并且能够开拓某个行业。
1-2所描述的能力模型比较符合工程师,而3-4描述的是架构师的能力模型。因此,为了获得3-4描述的架构师的能力,我们需要积极主动的去按照上面架构师能力模型进行休养,提前做好转型的准备。
对于3-4所描述的架构能力,我们通常通过深度、广度和高度上来衡量。
- 广度:要有全栈的技术知识,针对所在领域的技术要有全面的了解,能够评估各种技术的优缺点,要能根据优缺点来做技术选型的决策。
- 深度:要针对所在领域的核心技术有一定的造诣,阅读过源码,针对产生的bug要有能够迅速定位的能力,或者曾经贡献过核心代码。
- 高度:能够理解业务的本质,能够识别业务的风险,并做出合理的应对,对业务和技术都要具有前瞻性。 要理解业务的本质,对业务的特殊性有所把控,要能抽象事务也要能具象事务。要能用技术服务业务,或者推动技术的更新换代,或者推动业务创新,从而直接产生价值。
各个公司对工程师和架构师两个角色的定义不同,笔者也经常被HR美眉问到工程师和架构师到底有什么区别,一般公司都要求工程师具有需求分析和程序设计的能力,而架构规划的能力是架构师特有的,因此工程师要向架构师转型,一定要学会做架构的规划,未雨绸缪,要能够识别出现状架构中的痛点,提供有效的解决方案,规划将来的架构解决现状的痛点。
另外,对于线上应急和技术攻关,架构师并不一定需要亲自动手去做,但是在应急和攻关的过程中,架构师应该是要把控方向的,不要让大家跑偏,要严格把控应急和攻关的目标。
对于风险控制和保障性能的能力,无非是一个工程师向架构师转型的必备知识,作为一个架构师要实施把控项目的风险,要实时保证项目的性能能够满足用户对项目的性能需求。
作为一个工程师,通常是要理解需求,理解架构设计方案,可以自行写出模块的设计方案,并且根据架构设计和模块设计来实现项目模块,很少要与人研讨方案的优略,方案的选型,但是作为架构师这些能力都是要具备的,架构师经常要与人讨论方案,挖掘方案的优缺点,最后选择最合理的方案,因此要想从一个工程师转变成架构师,必须要培养辩论能力。
掌控方向是一个架构师独有的必须具备的能力,工程师在接受任务、完成任务的同时,需要多思考为什么我们要这样做,甚至为什么我们要做这件事情,做这件事情的价值是什么,不做有什么样的损失,要视图掌控事情的方向,才能更早的向架构师转型。
正确理解架构合理性的地位
笔者在做架构规划和把关架构评审的几年里,充分理解了架构合理性的定位,通常来说架构合理性保证的是至少未来3年后的业务和技术方向的正确性,然而做现在的事儿或者唯满足目前的目标为中心,或者完全以目标和盈利为导向的场景下,经常会导致急功近利,建设出来的是空中花园,即使有一定的进步,也不会有质的飞跃,然而,如果以过程为导向,保证了整体方向的正确性,通常能够对业务或者技术打下坚实的基础,待量变积累到一定程度,会导致质的飞跃,这就是架构合理性的实际意义。
由于架构合理性的特殊定位,通常我将架构师团队比喻成发改委,发改委综合研究拟订经济和社会发展政策,进行总量平衡,指导总体经济体制改革的宏观调控部门,而架构师团队保证组织前进的方向的正确性,总体调控业务和技术架构的方向性,有时我还会将架构师团队比喻成政协,起着业务和技术方向的监督作用,以至于业务和技术的方向不会跑偏。
我们在实际的架构规划和实施的过程中,根据架构合理性的定位,我们通常认为架构合理性的任务是重要不紧急的事情,在金融的行业里,我们通常这样给任务做如下的紧急程度的排序。
- 资金底线的保证
- 需求的急迫性
- 架构合理性
我们看到架构合理性并不是优先级最高的考虑要素,但是是最重要的事儿,所以在短期的范围内,面对资金底线和需求的急迫性等,架构合理性是可以妥协的,长期情况下是不能有任何妥协的。
更多的关于“从点线面体谈开发到架构师的转型”的内容,请参加艳鹏老师在gitchat提供的唠嗑节目。