从算法工程师到主管的转变,需要改变的是什么
黄鸿波
什么样的人容易被提升
对于一些已经工作了三年以上的同学来讲,已经到了为自己的未来考虑的时候了。在互联网行业,3 年就是一个坎,对于一个技术能力相对较强的同学,在一家比较大的企业 3 年的时间完全可以从一个新人晋升成为一个组的组长,在一个小公司甚至都有可能变成一个小的技术经理。
在成为技术经理或组长之前,大家的任务一般只有一个,那就是不折不扣的完成领导交代的任务,对于技术能力较强的同学,可能会在处理细节以及性能优化上面做的相对好一些,而对于技术能力相对弱一点的同学来说,可能主要还是以完成功能为目标,并尽量去保证能够在规定的时间内完成。有些人想的周到一点,就能够知道领导希望得到的结果是什么,并朝着这样的结果去努力,甚至超出领导的预期,而对于这样的同学,领导一般都会更加关注一些,有一些相对比较复杂和艰巨的任务也会交给这样的同学完成,时间久了,这些同学就自然而然的晋升到了组长或者经理级别。
但是,当一个算法工程师刚刚被提拔为组长或经理(以下统称为主管)级别之后,往往会发现自己领导对自己的态度发生了翻天覆地的变化。在以前,当任务完成的不好的时候,领导可能会鼓励你,很多时候,你只需要按照领导给安排的既定的路线去做就好;但是当你当上了主管之后,你会发现,你的领导对你的要求也发生了非常大的变化,他所关注的点不仅仅再是你有没有按时完成任务,更重要的是你和你团队成员之间是如何配合的,你如何给团队成员进行分工的,如何带领你的组员共同进步并使他们有着相对明显的提升等等慢慢的变成了领导所关注的点。
新晋领导常见问题
我还记得我刚刚成为技术组长的时候,我的领导让我带着 2 名实习生做项目,当时做的内容就是推荐系统。记得第一个版本要求在 5 月 10 号完成,我是 3 月 13 日被分配做这个任务的,而实习生是 4 月初才入职,所以在实习生入职之前,我已经将算法的核心部分完成,并且将工程化部分完成了一半,等到实习生入职之后,只是在我所做工作的基础上完成了一些模型输入输出的处理以及工程化和系统部署方面的内容,系统在 5 月 10 日顺利上线。上线半个月之后,通过灰度上线,观测到的点击率指标提升了 54% 左右,从整体来看,效果还是很好的。我拿着这个指标去找我的老大聊,本来以为老大会说:“嗯,做的不错”,没想到老大却说:“这一个月的成果我看到了,总体来说还不错,但是,你却没有达到我的期望,我让你做这个组长是为了让你把实习生都带起来,而不是写代码,不是要你一个人都把所有的活给做了,项目是做完了,效果确实也很好,但是这些基本上都是你来做的,实习生在这期间没有得到更多的锻炼”。
又过了几个月,实习生逐渐的成长起来,基本能够完成业务所需要的所有的需求,基本上所有的任务我都可以放心大胆的交给实习生去做了,而我的工作变成了整体框架的搭建、工作任务的分配以及需求的对接和时间的排期。突然有一天,项目为了迎合十周年庆,要做一个大的改版,这个改版需要大概三四个其他组的配合才能够完成,与推荐系统相关的需求拆分出来之后,大概能有七八个子需求,总体的技术点大概有 15 个左右,一般来讲,针对这些技术点的评估,3 个人用 20 个工作日左右就完全可以搞定,况且我们差不多有 25 个工作日的时间,为了时自己的时间富裕一点,我对产品经理报的工作量是 23 个工作日。我把每一个需求分配到不同的实习生身上,当然,也包括我自己。我们按照既定的时间一步步地做着,突然有一天,我们发现了几个比较难的技术点,本以为可以 2 天就能搞定的,结果这一个问题就用了一个多星期,另外,与我们配合的组在调用我们提供的接口时,经常会出现请求 3 次就会 timeout 一次的现象,这个问题的解决又花了大概 1 个工作日的时间(数据库长连接问题),当还剩下 10 个工作日左右的时候,我们突然评估发现,我们的时间可能不够用了,因为我们在评估当初,对于一些潜在问题的评估没有评估到位,导致中间有很多问题没有发现,所以,为了能够追赶进度,我们不得不加班,因此,连续 10 个工作日加上周末,我们几乎变成了 907,早上九点到公司,忙到半夜 12 点,一周七天,甚至有的时候半夜 2 点才到家,那一次,无论是对于我,还是对于整个团队来讲,都生活在了痛苦之中。
后来,项目做完了,领导在对我在这段时间内的评价就是,不能够很好的做好技术评估,过于乐观,因此,当月绩效可想而知。
如何做一名优秀的管理者
之所以会出现上面案例所提到的问题,其追根到底就是当我从一名算法工程师被提升为主管后没有合理地调整好自己的状态。
其实对于一个主管来讲所需要的状态和对于一个程序员来讲所需要的状态是完全不同的。作为你的领导来讲,当你成为一名主管之后,领导对你的考察点就从你如何能够不折不扣的完成任务转变成了如何能够带领团队走的更稳、更远,如何能够使团队中的成员都能发挥其自身的价值,并使它们能够有更快的成长和进步,而在这期间,就需要有一个心态的转变。
首先要记住的是,当你成为了主管,你所代表的不仅仅是你一个人,而是你的团队,在你的上级看来,团队所做出的所有的成绩和发生的问题,无论是好是坏,责任人都是你,而你在汇报时所说的每一句话,代表的都是整个团队,而不仅仅是你一个人。
作为一名从算法工程师或者开发工程师而提拔上来的主管,其最大的心里瓶颈在于太技术派,很多时候,我们经常会以技术来衡量自己或团队的成员,甚至会以一个非常高的标准来要求每一个人,从原则上来讲,这是没有错的,但是作为一个团队的领导,更应该注重的就是将团队的成员优点放大,缺点缩小,并帮助团队中的每一个成员进步,在注重团队中每一个成员发展的前提下,注重团队整体的发展,只有这样才能够使团队更有凝聚力。
当你从一名算法工程师提升为一名技术主管后,一定要培养自己把控全局的能力,也许在整个团队中你的技术不一定是最强的,但是却一定要是最全面的,你可以不了解到每一处的技术细节,但是你一定要知道这个项目中最主要的技术点,以及难点在哪里,重点在哪里;作为一名技术团队的主管,最大的挑战在于如何让你的团队成员能够“听你的话”,这里的听话并不是你利用上下级的关系来做管理,而是要让你团队成员打心底敬佩你,所以,在这里一般需要做到以下几点:
- 为团队成员谋福利,有担当,有困难要冲在前面,有好事要向大家分享,向自己的上级争取更多的资源,使你在团队成员的心里是“这个领导很好,什么都为我们着想”的领导;
- 技术能力全面,知识体系丰富。作为技术团队的管理者,无论你要不要去写代码,都需要对新的事物、新的技术保持敏锐的关注度,要丰富自己的技术栈,无论团队成员在工作的过程中出现任何的困难,都能够利用你的自身的技术积累,快速定位到问题所在,并解决它;
- 团队是一个整体,在任何时候都要把这一条摆在心里最重要的位置,在对外最汇报的时候,一定要跟大家说,我们团队做出了什么样的成绩,而不是我做出了什么样的成绩,在一个团队中,不能缺少任何一个人,俗话说孤木不成林,所以,千万不要把自己的功劳凌驾于团队之上,哪怕所有的都是你做的;
- 人人平等。很多人当上了领导之后就开始飘了,认为自己升官发财了,就有一种想要凌驾于别人之上的感觉,与团队成员之间的聊天变成了命令式的口吻,这是作为技术管理者的大忌,一旦走出这一步,团队成员将会逐渐的离你而去,人心不齐,团队很快就会散掉;
一个优秀的领导应该有一种“做出好的成绩是团队的功劳,团队的产出出了问题我要担全部的责任”的心态,一个优秀的管理者,应该勇于承担责任,这就是所谓的担当。
新晋的管理者们,加油!