程序员的职业规划往往分为两条路径:Individual Contributor (IC)和 Management。
大部分人的职业生涯是从 Junior 到 Mid 到 Senior,然后再选择是否要转管理岗。
很有趣的是,据我目前的观察,大部分搞技术的都不爱做管理,有些人虽然担任着管理的职责,却把管理视作「低价值」或者「繁琐」的事情,除了完成公司规定的管理职能之外(有些公司甚至没有明确的要求),很少会主动去承担更多的事情。
Great managers orchestrate rather than do. Like the conductor of an orchestra, they do not play an instrument, but direct their people so that they play beautifully together. Micromanaging, in contrast, is telling the people who work for you exactly what tasks to do or doing their tasks for them. Not managing is having them do their jobs without your oversight and involvement. To be successful, you need to understand these differences and manage at the right level.
出色的管理者重视协调,而非亲力亲为。就像乐队的指挥,他们并不演奏某个乐器,而是指挥整个乐队共同演奏出精彩的乐章。相比之下,微观管理是事无巨细向下属交代要做什么,甚至替他们完成任务;不管理是指员工在没有你的监督和参与下独自工作。要取得成功,你需要了解这些区别,并在对的层面进行管理。
回顾我做管理的这几年,我一开始是没有意识到管理的必要性的,那时候我应该是「不管理」的状态,最多就是跟进一下团队的任务完成情况。
我是从什么时候开始意识到管理的重要性呢?大致是我觉察到我陷入了瓶颈期的那段时期。
我的瓶颈期表现是:不知道自己做的事情到底有啥意义 -> 丧失了做事的动力 -> 感觉前途迷茫,自己在原地打转。
没有人告诉我,我跑快一点和跑慢一点到底有啥区别,跑道的终点在哪里,终点的奖励是什么。
既然如何,为什么还要跑呢?
更别提我每天要开一大堆的会,还要在 1 on 1 的时候激励下属(试想,连我自己都没动力,我怎么给别人打鸡血)。
有人认为知识型员工拥有足够的能力自我管理,但我觉得这是理想状态,大部分的 Junior,Mid Developer 都没有很强的大局观,在做决策的时候需要外界的帮助。
因此,我认为,除了早期初创团队(创始人和核心员工有明确的目标,能实现自我管理)没有管理刚需之外,大部分的公司都是需要有管理层的。
那么,什么样的管理者是优秀的管理者呢?
每个走上管理岗的人都有自己的动机,有些人可能是被迫开始做管理(团队实在没人了!),有些人则是 IC 路线走到了天花板(从 senior 到 staff 很难)后选择换个跑道,还有些人是单纯地为了钱。
就拿我自己来举例,我一开始是被迫的,所以觉得管理是件很烦很无聊的事情。
但是后来我意识到了管理的必要性和我内心无法抑制的「价值导向」后,我突然发现管理者可以通过自己的工作来影响别人、带领团队达成有意义的目标。
我的管理成就感来源于我对团队的影响力,我的影响力助力达成的团队成果,以及这些团队成果给整个公司成长带来的价值。
我总跟别人说,我看到一个项目做成的时候我非常开心,但是我并不在乎自己是不是那个项目中的 Hero Developer,我在乎的是结果和目标的契合度,而不是我实际写了多少行代码。
假如管理者的动机是影响团队,并且是目标导向的话,就必须有大局观。
没有大局观的管理者,往往会执着于管理的动作(比如频繁问进度,要求大家必须严格遵守流程等等)。
朋友跟我说,这种团队运作风格叫做「bikeshed」,我查了下,bikeshed 的定义是「群体将给予更多的时间和注意力来处理琐碎的问题,而不是用来处理严肃而实质性的问题。」
比如我经常在一些会议中发现大家纠结的点完全不重要,真正重要的问题则没人提(被淹没在操作层面的细节中了)。
真正有大局观的管理者,目标明确且坚定,可以有效屏蔽不影响结果的细节,把自己的注意力放在核心问题上面。
另外,管理者还必须有决策力,也就是,当一件事情需要你拍板的时候,你别躲。
「动机不纯」的管理者往往是「多一事不如少一事」的心态,遇到问题能不解决就不解决,能拖就拖,他们的心态是:只要不做决策,就不会做出错误的决策;只要中规中矩地按规章制度办事,就能保住这个职位。
在我看来,不做决策比做错决策更加要命。
说个现实的例子,每个项目都要有 owner,假如做事的人需要 owner 给方向、做决策,但 owner 迟迟不发话,这件事做成的几率太小了。
作为管理者,就算你拍不了板,你也应该看到别人的需求(等一个决策),然后去找自己的上级或者能拍板的人来协助项目的推进;如果这项目没人愿意推,也给个明确的回复,别让人家干等着。
在组织中,waiting for decision 的时间越长,ownership 越不清晰,团队效率和士气就越差。
当然,做决策是需要担责任的。我的管理风格是:
我觉得任何管理者都不应该惩罚「擅自做决策」的员工,这些员工往往是出于效率或者其他的考量做出了决策,也许是多次请示上级从未得到明确回复,又必须把这件事做成;也许是不知道自己的职责范围,不知道该找谁问。
总而言之,愿意做决策就值得鼓励,做错了也比视而不见要好。
一个管理者如果大部分的时间都在做团队成员可以完成的事情,那么这个管理者就是在占据别人的成长机会。
某天看到了一个好玩儿的视频,说程序员最舒服的时候就是做 Junior,因为当了 Senior 之后你要想着怎么把有趣的任务分给别人做。
说到底,授权就是培养员工的一个过程,管理者如果能从日常的工作中看到员工的潜力和闪光点,并且把难度适当(最好是稍微有些挑战性)的任务授权给员工做,给出清晰的项目的 scope、时间和目标,员工就有了一个很棒的成长机会。
这点算是我的长处,因为我大局观和决策力比较强,又觉得团队里的程序员代码能力比我强,所以每次有项目我都会搞清楚需求,做一些 high-level 的设计,然后分给程序员实现,我验收成果。
有效授权的好处是,团队可以迅速成长,独当一面,产出更高,管理者也可以兼顾更多不同的项目和目标。
坏处呢?也很明显,授权是件成就他人的事情,管理者自身会因此丧失一些技术能力和锻炼机会。
但话又说回来,管理者的工作重心到底是什么?是自己做事,还是带团队做事?衡量管理者效能的标准是什么?
根据你所在的公司,这个问题的答案也许不同,但我认为,有大局观的高层领导者,是能了解到管理的必要性和核心职能的,如果把管理者当成一个高效的基层执行者来用,那这样的管理不能称作有效管理。
管理者的必备技能,还有资源整合能力。
要把一件事情做成,需要找对人,问对问题,搞清轻重缓急,处理项目中间发生的各种问题等,这就需要大量的「识人」和「沟通」能力。
动用身边的一切有效资源,达成团队目标,这是高阶管理技能。
知道哪个人能信任,哪个人需要看紧点,每个人的兴趣点在哪里,根据团队成员成熟度来用对人,这需要管理者有足够的情商和软技能。
回到之前 Ray Ralio 的那段话:出色的管理者重视协调,而非亲力亲为。就像乐队的指挥,他们并不演奏某个乐器,而是指挥整个乐队共同演奏出精彩的乐章。
在思考自己的职业规划时,我意识到,我是真正对管理有热爱的人,我是真正希望通过有效管理来把大家拧着一股绳,一起向前走的人。
就把这个作为自己的职业目标吧:)