史海峰:架构师应该是一种角色,而不是一枚 “装B” 的标签

2023-03-03 15:10:11 浏览数 (1)

上周三的时候,同史海峰一起与大家聊了下 「架构师」这个话题。
什么是架构师?

很多人第一反应肯定是——年薪百万!阿里P7!

片面!片面!太片面了!为什么大家第一反应是这个呢?

是因为我们把这个职业神化了。

首先,在互联网兴起之前, 是没有架构师这个词的,它是源自于建筑行业的建筑师。那么到底什么是架构师呢?我们先看下维基百科的定义:

在信息系统研发中,负责依据需求来确定主要的技术选择、设计系统的主体框架结构,并负责搭建实施的人。

这么说是没问题的,但是不够简洁。

我在 #在实际工作中,百万年薪架构师应该具备哪些优秀特征?# 说过:“在软件工程当中,架构师就相当于建筑工程当中建筑师,他们有许多相通之处,都是负责「产品」宏观的架构设计的。”

那么架构师是做什么的呢?

1

你们嘴里的 “百万年薪架构师” 是做什么的?

相信任何一家含有技术属性的企业,或多或少都会有一名(或者多名)扮演架构师身份的人存在,在许多人眼里他们是站在技术金字塔最顶端的神秘人物,具有快速切入,举一反三,一句顶一万句的特殊技能,而且逻辑思维能力很强,思路清晰,有洞察力,善于抓重点,但也有人说他们的强项只是打酱油、和稀泥、背黑锅、拉仇恨……

很显然,评价之所以产生如此大的差异,抛去调侃的成分,我觉得还是由于每家企业对架构师职责的定位不同,而且这种不同,会随着技术发展与业务规模的变化,甚至组织结构的调整产生变化。

在我经历的企业当中,不少在起初并没有架构师,后来因为项目的发展引入了架构师。从最开始的技术救火员到项目技术评审,再到中间件产品化。不同时期,架构师所做的工作是不一样的。

更多的内容,大家可以看下#演化:这五年里,我们对架构师职责的思考与定位# 这篇文章。

言而总之,架构师一定是技术大牛,这样你才能hold住整个项目,并根据项目的特点设计一个方案,当然这个方案不一定是完美的方案,但是一定是合适的方案。

正如我开头讲到的那样,架构师这个词其实是来源于建筑行业。以此类比,可以很好地解释架构师是做什么的。

引用海峰在直播时说的一段话:

“软件设计和我们盖房子差不多,我们要盖房子,就需要先画图纸,然后进材料,最后找一个施工方把房子盖起来。早期的软件也是可以分开的, 有人专门做设计,设计完了以后,你只负责编码就可以了。但是后来数字世界膨胀了,需要更多的人搬砖了,这就需要有人去做核心的设计,或者做更高层面的考虑,去解决更复杂性的问题。”

“为什么不找那种咨询公司做架构设计?”

“架构师就是要凌驾于工程师之上吗?”

“不就做个软件设计吗?我也会。”

其实这里有两个问题,一是你不可能让一个和公司没有太大关系的人接触核心的系统,二是系统的架构设计是需要亲力亲为的,需要和接触一线的业务系统和应用场景的。

不过,咨询公司显然是不具备这样的条件的。

言归正传,头哥认为架构师做的主要工作就是,对于业务需求或者出现的问题,根据公司及项目现状,设计一个合适的方案,并且协助工程师去解决他们解决不了的问题。

架构师就是牛逼!(曾经我也是一个架构师)当然并不是所有架构师都非常牛逼,像其他职业一样,架构师也会有一些“水货”。

2

“优秀” 架构师 VS “水货” 架构师

在海峰看来,之所以会有一些“水货”架构师,主要原因还是这个人不具有架构师的优秀特征,只是被迫提升上来的。

我之前看过一本书《大型网站技术架构》中,对优秀架构师的特征做了总结,我也和大家分享一下。

▌关注人而不是产品

做项目,一定要发掘项目组每个成员的优秀潜能,让大家理解并热爱软件产品最终的蓝图和愿景,做到了这点,项目的成员就会自我驱动,自觉合作,寻找达成目标的最优路径并坚韧不拔地持续前进。

▌发掘人的优秀

发掘人的优秀远比发掘优秀的人更有意义。有些企业喜欢挖优秀的人,而不是去把自己打造成一个培养优秀人才的地方。殊不知:是事情成就了人,而不是人成就了事。指望优秀的人来帮自己成事,不如做成一件事让自己和参与的人都变得优秀。

▌共享美好蓝图

架构师要和项目组全体成员共同描绘一个蓝图,这个蓝图是整个团队能够认同的,是团队共同奋斗的目标。在项目过程中,架构师要保持对目标蓝图的关注,对任何偏离蓝图的设计和决定保持警惕,错误的偏离要及时修正,必要的变更要经过大家讨论,并且需要重新获得大家的认同。

▌共同参与架构

架构师需要对系统架构负责,但并不是说一定要架构师自己完成架构设计,并要项目团队严格遵守架构决策。而是让项目成员都参与架构设计的过程,让他们觉得自己对这个项目的贡献也是非常大的。

▌学会妥协

不要企图在项目中证明自己是正确的,一定要记住,你是来做软件的,不是来当老大的。所以不要企图去证明自己了不起,永远也别干这种浪费时间、伤害感情的事。

▌成就他人

我们活着不是为了工作,不是为了做设计、写程序,这些不是我们生活的目的。我们活着是为了成就我们自己,而要想成就自己,就必须首先成就他人。

以上就是一些优秀架构师的特征,相信很多人都会深有感触,但是如果我们给 “水货” 架构师定义一些特征,会有哪些呢?

▌不屑于沟通

很多公司非常重视架构师的硬技能,而不是特别重视他的软技能。无论是跟项目之间的沟通,还是聊需求也好,他认为这些“low逼”的事是项目经理干的,不是自己做的。在我的认知中,我觉得这样的想法是错误的。

▌官僚主义

受一些文化的影响,很多人当了架构师以后,都会觉得自己被领导重视了,你们所有人都要听他的,项目的好坏都是由他一个人说的算,他觉得好就是好。

▌眼高手低

架构师在晋升之前可能是负责一部分的业务系统,出现的问题也只需要考虑在当前这部分解决就好了,而晋升之后则需要考虑整个业务系统,和之前完全不是一个维度的问题,这可能就会影响你对整个事情的掌控力和决策。再加上有些架构师觉得自己刚刚晋升,不自觉的就想证明自己,摆架子,觉得自己去问别人,就会显得自己不够格。另外有一些架构师会觉得自己很牛,根本听不见别人的建议。

那么怎么样才能防止沦为不称职的 “水货” 架构师呢?

3

如何防止自己沦为不称职的 “水货” 架构师?

如果你想避免成为一个不称职的架构师,就需要不断的提升自己各方面的能力,无论是技术能力,还是沟通能力、领导力、甚至是背黑锅、和稀泥的能力。

那么如何成为一个称职的架构师,海峰在直播时也给我们讲了 6个要点

一、技术能力是架构师基础属性

作为一个架构师,技术能力永远是最基础的,在技术团队中,架构师是技术的领导者,必须对最终设计和实现负责。如果你的技术能力达不到,其他能力再强也达不到架构师的水准,所以你想成为一个合格的架构师,技术能力必须要过关。

二、不可或缺的业务经验

如果你是一个做纯技术产品的架构师,不是包含业务逻辑系统的架构师,对于这方面的要求可能不是特别高,但是你也需要对技术产品的定义非常清晰。而如果你是负责有业务逻辑的架构师,就需要有非常多的业务经验,这是一个硬指标。

如果你连业务逻辑都不懂,你能设计出多好的系统架构呢?

三、超强的自我驱动能力

如果说前两条是一个硬指标,那么后面这几条都是一些软指标。首先就是自驱能力,无论是学些新的技术,还是提升自己的思考与业务能力,都需要自驱力,而这个能力是没有办法逼出来的,只能靠自己的领悟和习惯。

四、高效的学习是架构师必需的技能

互联网行业是发展非常迅速的一个行业,技术的更新迭代也非常快,十几年前,我们都还在使用单体架构,而今天我们已经全部拥抱云原生。所以这就需要我们可以快速的学习一些自己之前不具备的能力,因此高效的学习能力是架构师的必需技能。

五、心态是架构师的基石

在软件行业,架构师需要面对巨大的压力,什么苦活累活都需要我们去做,而且这些活也没有一定的套路,需要我们不断的去摸索,如果你的心态不好,那么很容易就扛不住压力,继而会产生更多的问题。

六、沟通协作能力是项目进行重要能力

架构师作为一个技术领导者,在团队中属于核心角色,你需要将很多架构思想或者设计和团队内部的人去同步。而我们很多纯技术人员往往由于专注于技术研发比较容易忽略这点,但是对于架构师来说,不仅要有横向沟通的能力,还要做好,做到位。

写在最后,无论一个架构师是好还是坏,最重要的评价标准就是你负责的业务系统是否稳定,团队内部是否有共同的目标,是否对你足够信任。

一个好的架构师,可以为公司降本增效,而一个 “水货” 架构师,可能会给公司带来无法预计的灾难。

-----------------------

为了方便进行探讨和交流,我为大家建立了一个读者群,一起学习,一起进步。

0 人点赞