聊聊架构师角色

架构师是什么?听起来很牛逼的岗位.实际上但凡有设置这个岗位的公司,其内部等级也确实是比较高的.

根据作者经历的公司总结,开发岗位的职级大致如下.

如图,高级开发工程师之后,程序员的发展路线就开始出现分支,其中开发经理角色属于管理岗位,其他两个则属于技术岗位,类似公司职级类型中的M和P序列.

虽然很多公司在P序列并没有区分架构师和技术专家,但从实际工作而言,其实两者有很大的区别.对于人员分配合理的团队,必然会对两者进行区分,甚至通过归属不同团队来规划工作内容.

以下为作者自己的感受,通过两大角色的区别,来解释何为架构师.关于正式的解释,可以参考架构师.

架构师的工作是宏观的,技术专家的工作是微观的.

一套系统的稳定性和扩展性,很大程度上决定于整体架构,从这方面来讲,架构师的视野是全局的,其关注的是各部件之间的协作.

  • A和B能否高效合作?是否需要调整接口?
  • X功能的实现,应该挑选哪种技术?有哪些方案可以选择?
  • 各组件的分工是否符合当前业务部门人力安排?

对于整个系统的下一级单元的内部实现,并不是架构师的关注内容.这一部分将由对应的业务领域专家去管理.

作为整体系统的一份子,各个子模块需要能稳定可靠的对外输出,同时具备一定的性能,这就是对应技术专家的研究内容.很多事情都是60分的努力可以达到80分的效果,但90分的效果则需要100分的努力.在这个方向上,兴趣+天赋+努力,缺一不可.虽然太过专精导致就业面稍显狭隘,但在真正需要时,往往是无可取代.这也是为什么有些小众岗位薪资巨高,却招不到人的原因.

架构师的知识储备是广阔的,技术专家的知识储备是专精的.

人的精力是有限的,广度和深度往往只能二选一.架构师既然要放眼全局,那必然只能优先往广而全方向发展,什么都要懂.

幸运的是:软件设计殊途同归,高级开发语言也是一通百通,某种意义上来说,程序员之间其实很容易形成共鸣.因此这里的”懂”,其实并非是要能够开展研究并有所建树,而是能够通过统一的分析模型快速理解并吸收,然后加以应用.

换句话来说:

这个东西你能研究出来确实了不起,我自愧不如,但是你一讲我就懂了.

架构师是指引方向的,技术专家是解决问题的.

这个是他人视角里最大的区别点.

架构师给人的感觉就是高谈阔论,动辄在PPT中”指点江山,激扬文字”,也难怪市面上产生了不少所谓”PPT架构师”…

现有的系统能够满足将来的业务需求?
针对可能的业务需求,应如何调整系统架构,以快速扩展新的功能模块?
根据现有的技术能力,可以提出哪些业务发展方向的建议?

看到没有,这就是未来的CTO.

技术专家就大不一样了,往往都是很”平易近人”的,一个能够解决问题的”大佬”比成天鼓捣”不着地”设计的”架构师”要有人气得多.

  • 硬核优化需求,找大佬!
  • 这个问题搞不定啊,找大佬!
  • 这个方案咋样,找大佬看看!

在长年累月的疑难杂症解决过程中,进一步锻炼了自己的硬实力,提升了他人眼中的印象分,而这些分数,又反过来形成更多”疑难杂症”的吸铁石,促进自己继续进步.

这样一个滚雪球的发展轨迹,往往是那些知名大佬共同的经历.换句话说,如果你不想成为一辈子写业务代码的”工具人”,那么在你参加工作两年以后,一定要好好把握机会,营造出”牛人”的形象,别管能不能解决,先做”问题吸铁石”再说,做得好的话,一年胜似三年.

看到这里,想必你对架构师有了更深层次的理解,对自身的职业发展也有了一些规划,希望大家早日成为理想中的角色!