从程序员到技术管理,我踩过的坑 ——一个15年IT老兵的管理转型笔记

0 阅读18分钟

刚被提拔成开发主管那会儿,我觉得管理挺简单的——不就是分活儿、盯进度、收结果吗?有什么难的。

真正打脸来得很快。有一次,我把一个模块开发任务交给了组里一个做了两年的开发。deadline 前一天他提交了代码,我打开一看,命名不规范、异常处理没考虑、连注释都写得敷衍。可我当时的第一反应不是"教他怎么改",而是——"我是主管,我比他能力强,我自己两个小时改完,再给他看,比跟他扯半天强多了"。

那两个小时我确实改完了。但后面的事情就失控了:越来越多的任务,分出去了又被我悄悄接回来,我的时间越来越少,团队成员越来越闲,而我还要在周会上跟领导和全部门汇报,我团队各个项目"进展顺利"。

直到有一天,领导看到十点了还在加班的我,走到我背后,看着我还在工作,问了句:"你怎么还在写代码?管理工作呢?"我才意识到——我根本没在做管理,我只是个带了头衔的高级打工人、一个带头干活的人。

那天加班到深夜,看着空荡荡的办公室,我靠着椅子开始认真想一个问题:这团队怎么让我给带成这样了,干管理与写代码,到底哪里不一样?

一、从写代码到带人,到底哪里不一样****

后来的工作,我都带着这个疑问去观察和思考。结合读过的一些书,也结合自己这几年的实际经历,我慢慢想明白了几个真正不一样的地方:

从表面上看,是工作内容变了——以前每天对着电脑,现在要对着人。但这只是表象。真正变了的,是你产出价值的方式。

写代码时的逻辑是:我写的代码能跑、功能能实现,我就有价值。这套逻辑很清晰,结果可以量化,好不好一眼看出来。但管理者不一样——管理者的产出,是团队的产出,而不是你自己的产出。 你个人写了多少代码、解决了多少问题,在管理维度上几乎不重要。重要的是:你有没有让整个团队运转得更好?

这个认知转变,说起来简单,但把旧的思想立改废,让新的概念真正装进脑子里,我花了将近两年时间。在这两年里,我踩了很多坑——有些是明知道不对还控制不住,有些是压根没意识到是问题。

下面这三个坑,是我觉得最典型、最容易被忽视、也最容易在"技术转管理"这条路上让人悄悄走歪的。

二、"我自己做更快"——事必躬亲综合症****

这个坑,就是我在开头里讲的那个故事的放大版。

事情是这样的——

那段时间,行里推一个新存款产品上线,核心系统要改、渠道对接要做、联调测试一堆活,全组四五个人一起上。刚开始我是把任务按人头都分配下去了:老张负责存款核心模块的改动,小李做手机银行的对接,小王跑联调测试。但每个人的产出给我审核时,我都会忍不住把发现的问题直接上手改——这个接口定义不规范,那个异常处理漏了,还有这里的业务逻辑跟监管要求对不上……这一改,就变成了全部自己做。

最极端的时候,我一个周的工作时间分布大概是:写代码60%、开会25%(行里各种评审会、进度汇报会)、回复消息10%,剩下5%才是真正的管理工作——比如规划、复盘、跟成员沟通。

· 我当时的逻辑很自洽:

· 教他改要半小时,我自己改只要20分钟,当然自己来

· 他写的我不放心,核心系统出了问题是要出生产事故的,不如一开始就自己做

· 我是主管,质量把关是我的责任,出了事还是我来扛

每一条理由单独拿出来,好像都没毛病。但把它们放在一起看,结果就是:我成了团队的瓶颈。

具体表现是:

· 我忙得团团转,团队成员反而没事干

· 我的进度决定整个团队的产品上线进度,我一卡全卡

· 团队成员没有成长空间,因为真正有挑战的核心工作都被我拿走了,他们做的都是些打日志、写文档、跑脚本的边角料活

· 而最讽刺的是——领导还觉得我"很拼",因为每次到下班点都能看到我在工位上敲代码

这种状态持续了大概半年多,直到两件事同时发生,才把我打醒。

第一件事: 一个平时挺认真的组员找我谈话,说觉得在这个团队里没什么成长机会,想转组。我当时很震惊——我觉得自己带团队挺好的啊?后来他才说了实话:"主管,您什么活儿都自己干了,我们剩下的都是些边角料,技术没长进、业务也学不到东西。"那是我第一次意识到,我以为的"负责",在他们眼里是"不信任"。

第二件事: 我自己生病请了一周假。回来之后发现,新产品的开发进度几乎为零。因为我手上的核心模块没人能接——不是大家不愿意接,是这半年来这些模块从设计到实现都是我一个人搞的,除了我没人搞得清里面的逻辑和关联。而其他人手上又没有足够分量的工作在推进。

这两件事放在一起,我才意识到一个问题:我不是在管理团队,我是在用一个人的力量假装一个团队在工作。 如果哪天我不在了,这个团队立刻停摆。

****

【反思】

现在回过头看,事必躬亲的本质是什么?是不信任——不是不信任别人的人品,而是不相信"别人能做到和我一样好"。尤其是在银行这种对稳定性要求极高的环境里,"不能出事故"成了我最常用的借口,用来合理化所有本该交出去的工作。

但管理的真相是:你不放手,他们就永远做不到。 你今天省下来的那20分钟,换来的是团队成员永远停留在"不够好"的状态,而你永远停不下来。更危险的是——你正在培养一支离不开你的团队,而不是一支能独立作战的团队。前者让你觉得自己重要,后者才是管理者该追求的目标。

后来我强迫自己做了一件很不舒服的事: "哪怕他做的只有我的70%水平,我也交出去,只在关键节点把控方向和质量。" 一开始确实痛苦,看着不那么规范的代码合入版本库,看着测试环境偶尔冒出来的小问题,心里像猫抓一样。但在银行里我们有个机制帮了我——代码评审(Code Review) 。我不是不看了,而是从"直接改"变成了"提意见让他们自己改"。三个月后,那个曾经让我"最不放心"的成员,已经能独立承担一个子系统的开发了。而我,终于有时间去做那些"只有主管该做的事"了——比如去了解下一个季度行里的科技规划,比如去思考团队接下来半年该怎么排兵布阵。

三、"我说得很清楚啊"——沟通不是传话筒****

这个坑,我栽过不止一次。而且每次栽完都觉得自己这次真的说清楚了,下次照样翻车。

最典型的一次,是行里开完年度科技规划会之后。

领导在会上定了方向:今年要重点做数据治理,把散落在各个系统里的客户数据统一管起来。具体要求是"先摸底、再建标准、最后落地执行",时间节点是三季度前出成果。我觉得理解得很到位——不就是数据治理嘛,三步走,很清楚。

回到组里,我把任务原话转达给了团队:"领导说今年重点做数据治理,先摸底再建标准再落地,三季度前要出成果。"大家点头说懂了,然后就开始分头干活。

结果两个月后汇报进度,领导看完演示的第一句话是:"你们做的这个不是我想要的。"

当时会议室的空气大概凝固了五秒钟。团队成员看着我,一脸茫然;领导看着我,表情不太好看。我心里想的却是: "我说得很清楚啊,你们怎么做成这样了?"问题肯定出在他们执行偏了。

后来复盘的时候我才发现,问题根本不在他们。是我自己就理解错了,然后把我理解的"错东西"准确无误地传达给了团队。

具体拆解下来,这条信息链路上出了三个问题:

第一,会上我没有确认自己的理解。 领导说"数据治理",我以为他要说的是技术层面的数据标准化(字段规范、接口统一、数据质量校验),但领导实际想要的是业务层面的——能支持上层营销和风控的数据应用。"数据治理"这四个字,我和领导脑子里想的根本不是一个东西。但我当时没有追问一句:"您说的数据治理,具体是指哪一块?"

第二,向下传达时我只做了搬运。 我自己理解的(已经是错的)原话丢给团队,没有用自己的话复述一遍让他们确认。他们点头的那个"懂了",可能跟我理解的也不一样。三个人心里三个版本,但每个人都觉得自己是对的。

第三,过程中没有任何中间检查。 两个月的时间,我在干什么?写代码、改bug、开会。我没有在第二周或者第四周拿一个阶段性产出跟领导对一下——"这是目前的方向,您看是不是这个意思?"如果当时做了,最多浪费两周,不会浪费两个月。

****

【反思】

后来我才想明白一件事:程序员做管理最容易犯的一个错误,就是把沟通当成信息传递——就像函数调用一样,参数传进去,结果返回来,中间不应该有损耗。

但人不是计算机。同一句话,不同的人听了会有不同的理解;同一个人在不同状态下听,理解也不一样。你以为你"说清楚"了,对方只是"听到了",不代表"理解了一致"。

这个认知改变之后,我给自己定了几条规矩,到现在还在用:

1. 向上接需求:必须复述确认。

听完领导的指示,用我自己的话说一遍:"所以我理解的重点是XXX,您看对不对?"花两分钟确认,比返工两周划算得多。

2. 向下派任务:让对方复述给我听。

布置完任务后问一句:"你理解的任务目标和关键点是什么?"不是不信任他,而是确保我们在同一个频道上。

3. 长任务设中间 checkpoints。

任何超过两周的工作,必须在中间设一个检查点——不为了考核,只为了纠偏。早发现早调整,总比最后才发现方向错了好。

这三条听起来都不复杂,但我真正坚持下来是在踩了很多次坑之后。现在回头看,管理者的沟通能力,不在于你能说多漂亮的话,而在于你有没有机制确保"说出去的意思 = 对方收到的意思"。

四、"技术牛人嘛,有点性格正常"——好人陷阱的高级形态****

这个坑,我想讲一个比"不好意思开口"更深的故事。因为它不只是性格问题,还有一个技术管理者特别容易陷入的思维误区。

那时候组里新招了一个人,技术确实厉害——代码写得快、架构理解深、新技术上手也快。坦白说,有些方面的技术能力比我强。但问题也在这:他不服管。

具体表现就是:安排工作的时候他总有自己的一套想法,觉得这个没意义、那个太简单、或者"应该用另一种方式做"。每次分配任务都像在谈判,你说东他说西,最后常常是不欢而散或者各干各的。

当时我怎么处理的?忍了。

我当时的逻辑是这样的:

· 人家技术确实牛,比我强的人有点个性很正常吧?我自己当年做开发的时候不也挺有脾气的?

· 我自己也不是那种喜欢管人的性格,为了组内团结,退一步就退一步吧

· 能招到这样的人不容易,别因为一点摩擦把人逼走了

· 再说了,他是来做技术的,不是来当乖员工的,只要活儿干了就行

现在回过头看,每一条都是自欺欺人。但在当时,这套逻辑让我心安理得地选择了忍让。

真正的爆发点,是一个二代支付接口改造的项目。

行里要求对接新的支付清算平台,时间紧、接口文档又厚,我把这个任务分给了他。说实话,以他的能力,这事儿确实不算有挑战性——无非是按照文档对接几个接口、跑通联调测试。他自己可能也这么觉得。

接下来几周的情况是:他平时就在工位上刷各种技术视频、看技术论坛(那时候还没有短视频这东西),看起来挺"充实"的。我当时想的是:人家技术牛人,这种工作对他来说估计早就搞完了,剩下的时间学点新东西也没啥不好的。我给组员定的规矩本来就不严——不看电影、不玩游戏就行,学技术的东西我不拦着。

然后,到了临近交付测试的前两天,我在例会上问了一句:"支付接口那边进度怎么样?后天要测了。"

他回了我一句让我到现在都记得的话: "那个我没做,也不想做。太简单了,没什么技术含量。"

当时会议室里的场景我大概一辈子忘不了——其他几个人都不说话,空气安静得能听到机房风扇的声音。我的第一反应不是愤怒,是一种被架在半空下不来的感觉:你跟我说不想做?现在才说?那前面这几周算什么?

后来的处理过程就不细说了。总之这件事之后我意识到,这个问题已经不是我自己能解决的了。我向领导争取支持,最终通过一些方式让他自行离职了。

但这件事给我的教训远不止"开掉一个刺头"那么简单。

****

【反思】

事后复盘,我才把自己当时的心理链条彻底拆清楚:

第一步:我被"技术崇拜"蒙蔽了判断。

因为他技术比我强,我潜意识里把他放在了一个特殊位置上——好像能力强的人就有资格不遵守规则。但管理的真相是:能力越强的人,如果不配合团队,破坏力也越大。一个普通成员不服从安排影响的是一个模块;一个核心技术人员不服从安排,影响的是整个项目的节奏和团队的士气。

第二步:我把"忍让"当成了"团结"。

我以为不跟他冲突就是在维护团队和谐,但实际上我是在牺牲整个团队的规则感来迁就一个人。其他组员看在眼里,他们学到的潜规则是什么?"在这个团队里,只要你够牛,就可以不听安排。"这不是团结,这是纵容。

第三步:我用"宽松管理"给自己找借口。

"我不喜欢管人""我有自己的性格""大家都是成年人了"——这些话听起来像是有原则的管理风格,实际上就是逃避作为管理者该做的艰难决定。宽松和放任只有一线之隔,那条线就是:当问题出现时,你有没有及时面对它。

后来我总结了一条自己的管理原则,至今还在用:

技术可以牛,但态度必须对。能力越强的人,标准应该越高而不是更低——因为他有能力做到更好,团队对他的期待也更高。如果能力和态度不能兼得,我宁愿要一个态度好愿意学的普通人,也不要一个能力再强但不把团队放在心上的大神。

说出来可能有人觉得这是废话。但如果你在现场——面对一个技术确实比你强、每次对话都在挑战你的权威、而你又不想把关系搞僵——你就会知道,做出这个判断有多难,坚持这个立场需要多大的勇气。

五、写在最后****

写到这里,回头看一下这三个坑:

· 事必躬亲 — 以为"自己做更快",结果把自己做成了团队瓶颈

· 沟通当传话筒 — 以为"说清楚"了就等于对方理解了,结果信息链路层层失真

· 不敢得罪人的好人陷阱 — 以为"忍让"是维护团结,结果伤害了认真干活的人

三个坑看起来不一样,但根子是同一个:我还在用程序员的思维方式做管理这件事。

程序员追求的是"正确答案"。代码能跑就是对的,不能跑就是错的,黑白分明。但管理没有标准答案。同样一件事,不同的人、不同的阶段、不同的场景,处理方式都不一样。你唯一能做的,是建立自己的判断框架,然后在实践中不断调整它。

我花了将近两年时间才真正接受这件事。如果你正在从技术转管理的路上,希望这篇文章能让你少走一点弯路。

最后给你三条我从坑里爬出来之后一直在用的具体行动,不讲大道理,都是可以今天就开始做的事:

1. 每天记录一件"我没有亲自做的事"

不是记你做了什么,而是专门记那些你本来可以自己动手、但选择让别人去做的事情。

坚持记录一个月,你会看到自己的变化。更重要的是,你会慢慢习惯那种不舒服的感觉——看着别人做得不如你完美、但忍住不动手。这种不舒服正是你在成长。

2. 每次布置任务后加一句确认

不需要什么复杂的流程,就在每次说完任务之后多问一句:"你理解的任务目标是什么?有没有哪个地方不确定?"

对上级也一样:接到需求后用自己的话复述一遍。"领导我确认一下,您说的这个需求重点是XXX对吗?"

3. 这一周内找一个你需要给反馈的人,正式谈一次

不需要等"合适的时间",不需要准备完美的谈话稿。找那个你已经注意到问题但一直没开口的人。

不舒服吗?肯定不舒服。我第一次做的时候手心都在出汗。

但你会发现:大多数人在被正式反馈之前,根本不知道自己有问题。而你不说,他们就一直没有机会改。

**你的"不好意思开口",对方理解成了"默认可以"。 **这句话值得再读一遍。

从写代码到带人,这条路我走了十几年,还在走。如果你也是从技术岗走上管理岗位的同行,欢迎在评论区聊聊你踩过的坑。管理这件事,大概是我们所有人都在持续进修的一门课——没有毕业证,只有不断升级的版本号。

 

共勉。