程序员成长的一道鸿沟:管理能力

201 阅读8分钟

你好,欢迎来到青石路记,今天咱们聊一聊我对程序员职业成长过程中,关于管理能力的思考与理解。

大部分优秀的工程师,在毕业5年以内就会成为3-5人的开发小组负责人,或者项目负责人。后续技术能力会再次提升一段,然后就会一直止步不前。很大一部分是运气未到,但也需要具备抓住好运的认知与执行力。

在筛过几百份开发简历,面过近百名工程师后,我发现多数技术同学,在技术不错的同时基本都干过小组负责人,或者担任过项目经理。工作经验跨度非常大,从5年到10年以上的都有,这中间也包含一些技术专家与架构师。在面试最后,我问到对之后的职业规划期望时,大部分人都会说深入技术或转管理。

什么意思呢?有机会靠技术不断拿高薪,那就想搞技术。如果技术上没机会,或者自己万一搞不定,就往管理上试试。

其实也没毛病,做技术的职业发展上似乎就这两条路。但是我们不妨用第一性原理来思考一下,什么样的人是管理者?有什么价值,公司才花钱设这个岗位?

我的管理知识启蒙书是管理学创办者管理大师彼得·德鲁克所著的《卓有成效的管理者》,每隔1-2年我都会重读,目前已经读了三遍,每次都有精进。

他在书中简明扼要的对管理者做了一个定义:

对组织负有责任,能影响组织经营成果的人,就是管理者

同时这一角色不局限于拥有下属的职位,而是强调是否承担决策责任。例如,知识工作者(如独立分析师、项目经理)即使没有团队,若其工作直接影响组织效能,也被视为管理者。

那我们作为程序员个体,在组织内是管理者吗?毋庸置疑,是的。小到一个函数如何定义,大到一个服务如何规划、技术方案如何设计、甚至影响产品方案,我们均参与决策,也承担责任。

完蛋,回旋镖?

虽然大家都是管理者,管理能力却是失之毫厘,谬以千里。从初级开发>高级开发>技术专家>技术主管>CTO,此时不妨想想自己的Leader或公司的CTO他们的管理能力相比自己的区别。

搞明白了什么是管理者,接着来看管理者的价值。不同组织类型,组织大小,价值差距较大,我以技术团队常见的三个阶段举例。

当在初创公司或新业务线起步时,组一个小于10人刚好能运作的团队,小而美,价值观一致,责任心都合格。目标统一后,各个岗位分工明确、各司其职,积极主动、沟通协作丝滑、效率拉满。相信工作多年的程序员都喜欢这样的小业务组的氛围,几乎没有烦人的屁事儿,专注工作,身心健康。

这时候,每个人都是组织内合格的管理者,而且都很称职。

随着版本迭代,系统越来越复杂,人也越来越多,按技术栈分成多个转向小组,这时候来到第二个阶段。

由于产品迭代初期,为了快速获取市场反馈,版本往往是要快速上线,加上业务模式未深入摸透,系统缺乏合理设计,不同模块开始出现职责不清晰,设计技术方案时 ,A做也行B做也许,出现拉扯,出问题时也出现甩锅背锅。

这时候需要一个单端管理者,比如Java开发经理,前端开发经理、APP开发经理,减少单端内部效率下滑与保障技术架构正确演进。

再比如前端技术重构时,需要后端配合调整,或者运维建议升级系统中间件版本提升系统高可用,后端需求迭代任务排太满,一直没资源支持,导致用户体验一直下降。最后几波人都担责,一个无奈,一个委屈。

这时候需要一个跨技术栈的管理者,比如技术总监,对业务线技术团队整体交付结果负责。

假设第二个阶段渡过了,公司蒸蒸日上。各个业务线齐头并进,团队与团队之间开始出现竞争。最常见的比如,不同业务线都说自己优先级最高。做为开发团队,还要兼顾内部的系统优化,不然系统稳定性与扩展性得不到保障,草率开发新业务影响已有业务稳定性,还得研发负责,研发又背了锅,有苦说不出。

这时候谁来做决策?谁能负责?

如果让产品团队制定优先级,他们没法把握系统技术债的轻重,大概率会出现下面的场景:

开发:这个版本能不能加入系统优化版本,不然后面稳定性难保障了。

产品掏出手机,打开浏览器,点了点说到:这不挺好嘛?晚点在优化,先弄需求,这个月就要交付掉,不然没法交差

一个月后....

线上突然出现大量服务器异常,开发一排查,就是一个月前想处理掉的技术包袱,这下被几个业务迭代七绕八绕的触发了,赶紧做降级吧。

产品找到开发:你们技术团队能不能行,怎么能出这么严重的问题?

如果让技术团队制定优先级,他们无法权衡外部环境与内部系统的取舍。也许系统很稳定,但是市场机会已经错过,甚至影响公司发展,比产品做决策还糟糕。

这时候需要一个统筹产研的管理者,管理产研团队,比如CTO或VP,对系统是否满足公司实现商业目标负责。

每一个阶段都需要有一个管理者,以更高的视野、更全局的判断力、更大的责任来组织团队达成全局性的正确目标。那么技术管理者到底在管什么?

一是带领团队拿到业务项目的结果,二是管控好团队内的技术架构,最后是提升团队的综合战斗力。--隐墨星辰

先看业务结果,业务结果不好一部分来自于系统能力不足,系统能力是团队人员整体素质决定的。注意这里的顺序,结果是第一性的。不要让自己的能力成为团队的盖子,有时候公司需要的人才从内部培养不出来,只能从外面找,这时候作为管理者,要做好服务员的角色,找到这样的人才,引入团队,诚心的辅助他人拿到结果,合格的管理者必须具备成他人之美的意愿。

也许你没有Title,但千万不要觉得,有Title才能做事,拿尚方宝剑的钦差大臣不需要多少管理能力,因为他只是皇帝的一把刀而已,离开尚方宝剑,他生死难料。

虚线领导恰恰是最个人锻炼的好机会,当你在牵头解决这些组内、跨端、跨部门的问题,不断提高组织效率,不断助力组织拿到更高结果的同时,你就是在履行对应管理者的职责。

当对处理一个维度的组织问题,同时也会建立起个人影响力与领导力,也就意味着你具备了该岗位的能力。换句话说,不是有了Title就有了能力,而是有了能力才具备岗位变迁的可能性。试问公司怎么会花更多的钱,让一个不满足岗位要求的人去锻炼,结果可能失败血本无归,这完全不符合商业规律。

好在多数时候只要做到60分,在需要时就会考虑提拔,因为招一个这样的人太难了。招人的标准至少要到80分,还要考虑团队磨合的风险。在公司开荒阶段(初创企业,飞速发展,人才跟不上),可能40分就会提拔,这时候确实是屁股决定脑袋,这是小概率的,也是很多时候管理者没有领导力的原由之一。

好的管理者会从专业能力上脱颖而出,拥有正直的品格,具备成他人之美的意愿,从结果出发,持续学习掌握新领域知识,追求成为卓越的管理者,始终保持前进的步伐。

最后感谢你的阅读,欢迎在评论区留言讨论。