浅谈架构师特点

我总结了3个阶段。

arch.png

先说一下各个阶段的感受:

1、系统架构阶段

    系统架构实际上包括了 业务功能架构 和 技术功能架构。

    业务上,其实有点接近于产品,但是有些问题是与技术强相关的,产品不懂技术,他的设计就存在问题或者隐患,这时候,一个技术功底好的又有丰富业务系统开发经验的人,就能将这些功能设计得更好。这就是我说的“业务功能架构”。

    而技术架构,与开发功能、写代码,都息息相关,特别是在系统整体框架层面,以及开发重难点功能的时候,好的技术手段、算法,能够开发出更好的功能实现,包括可维护性、性能、稳定性、用户体验等等方面。

    这个阶段,我经历特别多,大概有3年半的时间(但算上加班时间,相当于5年以上时间),不一一细讲。总之,这个阶段负责了很多个的项目,包括框架、代码,重难点功能的设计实现等

    系统架构师的能力,决定了做出来的系统的好坏和质量


2、框架和中间件架构阶段

    这个阶段,不直接面向具体项目,更多的是针对工具、框架、平台和中间件层面,针对技术难点,站在技术专家的角度思考和设计。

    这个阶段的架构师,眼里都是技术细节,以及框架和中间件的代码设计,基本上可以说是完美主义者,对平台设计有非常大的追求。亦或是,捣鼓各种技术和工具,不停测试、对比,整天安装这样、安装那样——不是运维,胜过运维,不是测试,胜过测试。

    在这个阶段,对技术的要求近乎苛刻,而且还要跨多个技术领域(后端、前端、运维、网络...),所以面临的挑战很大,要学习的新东西也太多太多。一直到今天,我在这个方面也不敢说做得多好,只能说,算是熟手了,见多识广了,有信心了,再复杂、再高端的东西,我不怕了,但是如果要做到业界一流水准,还是相当困难的。

    这个阶段,要做的事情,全都是和技术相关的,举几个例子吧:

  •     负责公司基础框架及组件选型及维护、二次开发

  •     分布式存储的选型、推广、运维支持

  •     容器云平台的搭建、优化和推广

  •     监控平台的设计和搭建

  •     Kafka、Redis的多机房数据同步方案

  •     ……

    做到这个阶段,通常会被称为“高级架构”、“大架构”,做的事情往往能反映出公司的技术水平。但不是人人都能做这些事情,即便是非常有天赋的工程师,在这个阶段也需要长时间的沉淀,才能称之为专业架构。

    所以说,很多公司,在这方面是很不专业的,甚至没有全职的架构师来牵头做这些事情。


3、公司总体架构阶段

    这个阶段,更多的是方法论和策略,决策以及沟通,跟踪执行。在这个阶段,眼中没有技术细节。眼中有的,是整个公司,整个研发团队的效率和质量。一切都是围绕研发团队来的,要给研发团队指引正确的方向。

    比如说,用什么工具,用什么框架,用什么技术,流程怎么设计,规范怎么设计,遇到问题怎么解决,怎么提高效率,怎么避免风险。不是每件事情,都得你亲自去做,但是你得有一个正确的方向和长远的眼光,去指引和决策

    其实最难的是,技术、规范和流程的推广和落地实施,因为这些事情,可能涉及到很多部门、很多人,有的时候会遇到利益冲突,有的时候遇到特殊情况,有的时候遇到某些团队只顾眼前。这个时候,需要权力、决策能力和执行能力,还需要一定策略和技巧。


总结:

  1. 作为一个系统架构师,系统没设计好,是你的责任;

  2. 作为一个基础技术架构师,基础组件/框架/中间件有问题,是你的责任;

  3. 作为一个公司总体架构师,研发团队效率低、风险高,是你的责任。


 个人经验:

  1. 中小型的项目,系统是很好控制的;

  2. 基础框架/中间件,难度可能比较大,但是如果技术能力强,也能hold得住;

  3. 面对整个研发体系的团队,各种人各种事,不太好控制,需要策略,需要转变技术思维。

 

 所以:

  1. 领导5个重点项目,可以培养一个系统架构师;

  2. 5年以上技术经验,兼3年以上框架/中间件相关经验,如果技术确实很好,可以成为技术架构师;

  3. 5年以上基层技术和管理经验,3个以上公司总体架构经验,有方法、有策略、有能力,可以成为技术总监;


 重点解释:

    多数人工作经验丰富后,都可以成为系统架构师;

    但是只有 少数人 能成为合格的技术架构师,这个得看天分,就像有人数学随便能考140分一样;

    没有丰富的项目管理经验、没有出色的技术天赋和全面的架构能力和实践经验,无法胜任技术总监(或研发团队老总)。我见过很多研发老总都是“偏科的”:有的做过一些项目,但技术能力和架构经验严重不足;有的项目经验很少,虽技术精通一两项但不全面。这些偏科的人,大多数情商较高,但技术能力和架构经验不足。

    反过来,理论上还有一类人,技术和架构经验很强,但是总体领导和管理能力偏弱。但至今我还没有遇到这样的人,侧面也说明了:真正牛逼的技术人才,在二线互联网企业,是很难出头的,以至于他们很难走上管理岗位。我愿意相信,技术牛逼的人,做管理也不会差,但是他们可能不愿意去适应复杂的政治环境。


最后

  引申出技术人员的一个疑问:未来该如何发展?

    至少有四条路:

    第一条路,钻研高精尖的技术,去一线大公司做事,尽量不要去二线城市、二流公司。年薪百万不是问题。

    第二条路,做个系统架构师或项目经理,最好是在某一行业和业务领域深耕,成为技术业务专家,运气好的话可以做到部门经理、分子公司总经理。

    第三条路,全面发展,从项目管理、技术架构做起,积累丰富的研发经验,进而成为技术主管、技术总监、部门经理、技术副总等,分管整个研发团队。

    第四条路,突出的技术能力 + 敏锐的商业嗅觉,成为 独立开发者、创业者。


© 2009-2020 Zollty.com 版权所有。渝ICP备20008982号