资深工程师的资深责岗位职责,说到底就一句话:把别人搞不定的工程事搞定,同时让团队里其他人以后也能搞定。师岗这话糙,位职但理不糙。资深责
我见过太多挂着“资深”头衔的工程人,实际干的师岗活跟中级工程师没什么两样——接需求、写代码、位职提测、资深责修bug,工程循环往复。师岗区别无非是位职代码写得快一点,或者错误犯得少一点。资深责这不对。工程真正的师岗资深工程师,价值不在执行层,而在决策层。
举一个我亲历的例子。去年我们系统遭遇一次诡异的线上故障,数据库连接池被耗尽,但监控指标全部正常。初级和中级同事花了整整两天排查,怀疑过慢查询、怀疑过内存泄漏、甚至怀疑过网络抖动,都没找到根因。最后是一位资深工程师介入,他没有急着看日志,而是先问了一个问题:“最近一次发布,改了什么?”答案是一个看似无关的配置项——连接池空闲超时时间从60秒调到了10秒。问题就在这里:超时时间缩短后,连接被频繁回收重建,而应用层有个老旧的连接持有逻辑没跟上,导致连接泄漏。整个排查过程不到两小时。
这个案例说明什么?资深工程师的核心职责之一,是具备跨层级的系统认知能力。他不需要比所有人都懂细节,但他必须知道问题可能出在哪些层,以及如何快速缩小范围。这种能力不是靠写代码堆出来的,是靠踩坑、复盘、再踩坑积累出来的。
再说第二件事:技术决策。资深工程师的另一个重要职责,是在关键时刻敢于拍板,并且为自己的决定负责。我前东家有个项目,技术选型时团队争论不休——有人要用微服务,有人坚持单体架构。吵了三天,没结果。最后技术总监把资深工程师老张叫来,老张听完双方理由,直接说:“就单体,模块化拆分做好,等用户量到十万再说微服务的事。”理由很简单:团队只有六个人,微服务的运维成本会吃掉一半开发资源。后来项目上线,半年内用户涨到八万,单体架构完全撑得住。老张的决策省下了大量不必要的复杂度。
这里有个容易忽略的点:资深工程师的决策,往往不是选“最好的技术”,而是选“当下最适合的技术”。这需要极强的业务理解力和一定的“反技术崇拜”精神。很多工程师技术至上,觉得用上最新最火的框架才算有水平,但资深工程师知道,稳定压倒一切,团队的学习成本、维护成本、故障恢复成本,都得算进决策公式里。
第三件事,也是我认为最难的一件事:培养人。资深工程师不可能永远自己冲在一线,他必须学会“放手让新人做,但兜住他们的错误”。我见过反面教材——一个技术很强的资深同事,每次分配任务都自己先做一遍,然后让新人照着抄。结果新人干了半年,还是不会独立设计模块。这不是培养,这是复制。真正的培养是:你告诉新人目标,让他自己出方案,你审方案、提风险点,让他动手实现,你在旁边盯着,出了问题你担责任,但复盘时让他讲清楚原因。这个过程很慢,但值得。
说白了,资深工程师的职责清单里,写代码只占三成。剩下的七成,是判断力、决策力、以及把经验转化为团队能力的影响力。如果你现在带的项目里,离开你就转不动,那不是你厉害,是你失职。资深这两个字,不是用来标榜个人能力的,是用来衡量你能让周围多少人变强的。
最后说个现实点的观察:很多公司在招聘时写“资深工程师需要五年以上经验”,但五年只是个参考线。我见过三年就够格的,也见过十年还在原地踏步的。关键看你有没有主动承担过那些“没人愿意碰”的难题——线上事故复盘、历史遗留代码重构、跨部门技术协调。这些脏活累活,才是真正锻造资深能力的磨刀石。别躲,躲一次,你就晚一年。