<audio id="audio" title="14 | 职业规划 ：转管理是程序员的终极选择吗？" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/d1/31/d183005f9b4448be73b4fd2efa3dc631.mp3"></audio>

你好，我是臧萌。今天我们来聊聊程序员转管理这个话题。

这个话题在中国程序员界很热，很大一个原因就是中国官本位的想法依旧根深蒂固。很多人会觉得，转管理才算是“混出头”了，转管理之后就可以悠哉悠哉地“混日子”了。

这种想法肯定是错的。公司不会养闲人，做管理确实拿的钱更多，但那是因为个人能力更强，付出了更多。传统官本位那一套，很大程度上，在现代的软件公司是行不通的。说通俗一点，在软件公司里，管理和开发，都只是为公司打工而已。所以呢，**不要给管理套上太多虚无缥缈的光环，也不要对管理这份工作抱有太多不切实际的幻想。**

那么，程序员是否成长到一定阶段就一定要转管理呢？我觉得，这个问题背后的核心问题其实有两个：

1. 如果不转管理，是否就到了成长瓶颈了，以后升职加薪基本没戏了？
1. 如果不转管理，会不会到一定年纪就写不动代码了，导致对公司的价值越来越低，最后被淘汰？

那在讨论这两个问题之前，我们先来理解一下经理这个职位。

## 管理岗和个人岗有什么不同？

首先，从职责上说，公司都有个人岗和管理岗（Manager）。

首先来说说个人岗。个人岗英文简称叫做IC，全名叫做Individual Contributor，也就是个人贡献者。顾名思义，IC的意思就是只能通过自己实际的工作，来为公司做出贡献，创造价值。软件公司里的程序员，都是IC，也就是通过自己的专业技能为公司创造价值。

那么与之相对应的，就是管理岗。管理岗一般是不做具体工作的。换句话说，管理岗除了具体的事情，所有的别的事情都要管。管理岗不是通过做具体的工作，来为公司做贡献，而是通过各种管理技能和指导，让手下的IC能够发挥更好的合力，为公司创造更多的价值。简单来说，就是通过他人来达成目标。

其实说到管理岗和个人岗，这俩概念并不是什么舶来词，个人岗和管理岗就好似我们古代的官吏之别。做官，就是要和人打交道，要有治理理念，能管理人和人之间的关系，平衡各方利益。而专注做某项事的，则叫做吏。比如税吏、狱吏、刀笔吏，这些岗位的名称都明确了这个职位需要的相关技能，也代表了这个职位对应的具体工作。

那么管理岗到底和个人岗有什么不同呢？简单来说，管理岗位是公司执行系统的一部分。我来打个比方吧，**如果将公司看做一个人，管理岗就好像是人的神经系统，个人岗就像是各个职能器官。神经系统控制各个职能器官来做事情。**所以如果是从IC转管理的话，很多公司都会提供配套的培训，帮助员工完成职责的转换。

## 软件研发公司里一线经理要做什么？

搞清管理岗和个人岗有何不同之后，我们再来看看，软件研发公司的一线经理都要做什么。一线经理，简单来说就是直接管理一组程序员的经理。一个组的规模看具体的工作性质，可能是七八个人，也可能是十几个人，甚至更多一些。那么这样一个经理，平时都要做什么事情呢？我将从对内、对外以及对未来三个大方向和你聊聊。

### 一、对内

#### 从IC视角转向管理视角

正如前面说的，IC转管理带来的是视角的转换。IC看管理，很自然的是一个从下向上的视角，觉得管理好呀，可以管人，自己不用做事情。但是真正屁股坐在管理岗上之后，就会发现自己手头的事情忽然多了，担子重了。这时候再看管理，内容就完全不一样了。“可以管人”就变成了要对手下的人负责，要让手下的人有事做，发挥价值。而“自己不用做事”这种想法，则变成了，“怎样才能发挥好管理岗作为神经系统的指挥、协调和管理作用”。

#### 管理绩效

管理绩效问题是每一个经理都绕不过去的一关。手下的兄弟姐妹们跟着经理干了一年了，谁该升职加薪，谁要黯然退场，都是经理需要搞定的事情。有时候甚至要开除员工。如果没有让大家心服口服，带队伍会越来越难。毕竟没好处的话，谁愿意拼呢？

### 二、对外

#### 组织协调各种资源

经理每天的工作都可以说是在救火。人永远不够用，事情永远都很急，技术债务也在一天天成为发展的掣肘，线上生产问题还会时不时的凑个热闹。经理要组织协调各种资源，在有限的人和有限的预算内，把事情安排到内外各方都能接受甚至满意。

#### 计划和安排，争取资源

经理要给出未来的人员计划和安排，计划未来一年可能需要的预算（包括人、机器、软件等），这些资源分别用来做什么。

这就要求经理必须深入理解自己队伍的家底和强项，并能够在自己的队伍发展和公司发展之间找到契合点，除了要证明自己的队伍现在存在的价值外，还要能规划未来发展的价值，进而争取到更多的资源。

#### 进行各种交流，做出承诺和决策

经理是一个组说了算的那个人，什么事情要在什么之前做完、做完的标准是什么、什么事情要做、什么事情拒绝做等等，这些交流和承诺都要经理给出。经理做出各种决策的同时，自己心里的算盘也要算清楚，手头有多少人，有多少事情，未来还能接多少活儿等等。

### 三、对未来

#### 理解公司发展方向

作为公司的“神经系统”，当然要和“大脑”有通常的信息通道。经理需要洞悉公司和所在部门的发展方向，并理解发展方向背后的逻辑，在此基础上，才能够在繁杂的日常工作中找到工作的重点，让自己的手下能够把时间用在该用的地方。

#### 培养人才，发展团队

人才和团队是经理这根“神经”控制的“器官”和“肌肉”。一线经理很大一部分的工作就是要培养人才，发展团队，让队伍更具凝聚力和战斗力。前面我们讲到的一对一会议，就属于这部分内容。

#### 获取客户，赢得认可

经理还必须是个嗅觉敏锐的销售，队伍里的人负责做事情，经理要向外宣传，也就是所谓的“吹”。

对于一个稍有规模的公司来说，一个需求有时不止一套解决方案。如何能够让自己的队伍做的系统，去争取到更多的高价值客户，创造更多的价值，就是经理要做的事情。同时，更多的需求也是打造产品的原材料，通过让队伍理解和消化这些需求，可以打造更好的系统。

同时，一个公司的事情，往往是多个组协同合作完成的。你不出去“吹”，别人就看不到你在这件事情里的贡献，队伍的付出也就“打了水漂”。所以，如何把队伍付出的汗水包装成大家认可的成果，进而换回队伍的实际利益，也是经理要操心的事情。

在一个队伍中，还难免会有各种摩擦，各种磕磕碰碰，各类杂事，这些经理当然也得去协调。

## 什么样的人适合转管理？

说了那么多经理需要做的事情，经理这个角色不知道在你眼里有没有发生一点改变呢？说实话，就我自己的经验来说，经理可真不是那么好当的。在我眼里，一个合格的经理需要具备如下的素质。

### 喜欢和人打交道

经理的大部分工作内容是要跟人打交道，搞定人和人的关系，搞定关系背后的各种利益，这非常考验经理自身的沟通和协调能力。

同时，跟人打交道的事情不确定性更多，需要操心的事情也更多，工作也更累。所以软件研发公司的经理，绝对不是一个闲职，图清闲的就不用考虑了。

### 会经营、有眼光、有干劲

经理管着一票人，负责一堆事儿。心里要个本账，做什么划算，什么不划算。

还有呢，经理也要有眼光，能够紧紧盯住公司和部门的发展方向，同时为自己的队伍制定适合公司和部门的发展方向。

经理一定是有干劲儿，打心底里要做事情的人。正所谓，兵熊熊一个，将熊熊一窝。如果经理本身气场不足，那么队伍就不可能有太大战斗力。甚至自己队伍的地盘，有可能被人抢走。

### 能够承受压力

转管理之后，各种千头万绪的事情都会涌来，各种信息都要消化吸收，各种决策都等着你做，对外有交付，对内要有交代。所以坐在经理的位子上，抗压能力也是必须的。

### 有远大抱负

如果说前面提到的“要做事”，是管理的基本素质。那么有远大抱负，则是优秀管理者的必备条件。如果你看到技术的前进，感到的不是一般的激动和兴奋，而是心底里不断地涌出要用技术做出一番事情来的冲动，转管理可能是不得不做的选择。因为做技术你只能使用自己的时间，你会深深感觉单凭自己的精力，无法完成自己的抱负。

看着满腔的激情和一天仅有的24小时，恨不得自己一个人可以变成十个人。当然这是不可能的，但你可以带领十个人甚至更多人和你一起做事情。所以如果想成大事，手里就一定要有一个团队，用利益，更用自己的激情，来带领团队实现心中的抱负。

有一个很经典的例子。我们都知道，马云看到互联网之后，感觉这个东西能改变世界。那么他是怎么做的呢？他是不是去学计算机了呢？并没有。他肯定也知道这个事情大到单凭自己是无法做出成绩的，所以他选择组建团队，大家一起来实现心中的抱负。最后他也打造出了自己的帝国。

## 谈谈“临界级别”

无论是IC还是管理，越高端的地带，职位就越少。一般来说，公司都有这样一个临界级别，只要靠单纯的把经理交代的工作完成好，混“资历”就可以升职到临界级别。

临界级别之上，每升一级，几乎都要淘汰十几个甚至几十个候选人。也就是说，就算单纯靠“混资历”，基本是没可能升到临界级别之上的。其实大家平时说的瓶颈，很多时候指的就是这个临界级别。

事实上，管理职位的临界级别，确实是比IC的临界级别高了一级，甚至两级。所以普通人如果有做管理的素质，确实可以通过转管理，达到一个比做IC更高的级别。

在我看来，我并不想从“管理更容易升职”这个角度来看待这个现象。我更倾向于理解为，这是对经理更多付出的一种肯定。也就是说，经理这个职位本身就更辛苦，升到更高的级别是一种合理的现象。

## 我不转管理怎么办？

不管程序员是否转管理，临界级别都在那里。很多软件研发公司的IC职位，也有着非常高的级别，程序员成长的瓶颈不是自己的角色是否是管理，而是在于自己的能力，是否能够达到职业生涯下一个级别的要求。

很多人的迷茫其实是从“临界级别”开始的，不明白自己好好的把事情做完了，为什么不能升职。其实从临界级别开始，要想继续升职，就要实现自我突破，要能够承担起更重的担子，更大的责任。

IC如果想要继续升职，方向有很多，可以吃透公司的业务，主攻业务；可以吃透公司各个系统，主攻架构；也可以主攻技术，成为某个方向的技术专家等等。当然，这些都需要根据自己的特长来决定，也都需要IC能够继续在技术上深入，有敏锐的技术嗅觉。但是有一个共同之处是，这时候，IC的工作就不单纯的是写代码了，花在与人沟通，塑造自己影响力上的时间会越来越多。也就是说，无论是否转管理，想要向更高级别迈进，都必须注重和人的交流沟通。

但是IC和管理的角色还是很不一样的。它俩最大的不同之处就在于，管理要搞定人与人之间最复杂的一件事：利益。而IC则专注于做事情就可以了。

## 解答开篇

那么我们再回过头来看看开头的两个问题：

1. 如果不转管理，是否就到了成长瓶颈，以后升职加薪基本没戏了？
1. 如果不转管理，会不会到一定年纪就写不动代码了，对公司的价值会越来越低，慢慢就会被淘汰？

第一个问题。成长瓶颈无论对IC还是管理，都是存在的。能够一直做一直升职的人，毕竟是少数中的少数。大部分人会卡在临界级别这里。这时候不妨积蓄力量以求突破，或者跳槽去别的公司寻找机会。

第二个问题。确实，很多人在到了一定年纪之后，就没有写代码的动力，也没有学习新技术的激情了。这时候，一直混下去很难再有升职加薪的可能，甚至还可能被公司淘汰。如果觉得自己随着年纪和阅历的增长，能够应对管理的职责，那么转管理不失为一个不错的选择。毕竟软件公司的一线管理，还是需要有技术底子的人来做比较好。

## 总结

现实中，也很多人确实是因为对技术没兴趣了，才转管理。毕竟想在技术的路上走下去，学习各种新技术是躲不过的。转管理则可以在很大程度上不用关心各种技术细节。

但是也不是每个人都适合转管理。就拿我来说吧，我在某个特殊阶段，短时间担任过一线开发经理。我感觉从担任经理的那一刻起，自己身上的担子立刻就不一样了。各种事情都要开始自己打理，可以说脑子里就没有一刻是闲着的。想静下心来搞点技术，基本上是不可能的。

当然，这也跟每个人的能力有关。对于擅长这种事情的人，会觉得管理岗位激发了自己的潜力，让自己越干越带劲。但对于我来说，除了累，就是累。所以我还是选择了技术方向。潜心做技术，可以让我感受到发自内心的快乐和满足。

所以是否转管理，答案就在你自己心里。你对什么饱含激情，就应该朝着那个方向努力。

<img src="https://static001.geekbang.org/resource/image/a1/38/a115ec84d69c17790fc3933cfd9bca38.jpg" alt="">

## 思考题

你有考虑过转管理吗，或者你有过转管理的机会吗？你的选择是什么？回顾你的成长历程，你有哪些感触呢？

欢迎在评论区和我交流。也欢迎把这篇文章分享给你的朋友或者同事，一起交流一下。
