你好,我是小米大数据团队基础数据与用户画像组负责人徐函秋,目前主要负责小米用户画像、行为标签库、ID-Mapping 等项目的建设与研发工作。今天我分享的主题是“转型技术管理者初期的三大挑战”。对于管理这件事情,因为每个人的经历不同,所处的环境也不同,所以是“仁者见仁,智者见智”的,我今天分享的内容可能更适合刚刚成为技术管理者,和有志于将来成为技术管理者的同学。

工程师生涯中必做的决定

我相信大多数程序员在工作几年,成为团队骨干后,都会面临这样的选择,就是要么继续走技术路线,坚持做研发,要么成为团队的技术管理者,承担更多技术管理的责任。

对于个人贡献者和技术管理者这两个角色,不同的场合有着不同的称呼,比如个人贡献者又叫码农、技术开发,而技术管理者又被称为 Manager、小组 Leader 等等。另外在不同的公司,这两类岗位也有着不同的等级序列,你可以选择继续做个人贡献者,走 T 序列或 P 序列,你也可以选择 M 序列,成为技术管理者。

我个人认为,不论是选择继续走技术研发路线,还是选择技术管理路线,包括在什么时间、什么阶段选择,都没有绝对的好坏,只有适合自己的才是最好的。

那么,我们为什么要成为技术管理者呢?每个人的理由可能都不一样,有人说可以管人,有人说可以提薪,有人说自己更擅长与人打交道,而我选择成为技术管理者的原因,主要有两点。

第一,可以突破个人贡献者的天花板。因为我作为一名研发工程师,可能贡献最多的就是优化用户画像中提取引擎的效率,支持业务各种标签的挖掘需求,比如帮助广告商挖掘出小米用户中有多少人是鹿晗的粉丝等等。而当我成为一名技术管理者以后,就可以带领团队,支持全公司精准运营的若干需求,更好地帮助公司内部业务实现增长,这是之前作为个人贡献者时很难做到的事情。

第二,结合自身的职业规划和目标,提升个人能力。因为对我来说,未来如果有机会,可能还想和朋友一起创业,一起做一些有意思的事情。但那个时候可能就不仅要求自己有扎实的技术功底,还需要有良好的项目管理能力、团队管理能力、沟通能力、演讲能力等等。而成为技术管理者,就可以在实践中锻炼这些能力,对个人成长有很大的帮助。

但是,做一名优秀的技术管理者真的很不容易,可能会遇到各种各样的问题。而我就将自己遇到的一些典型的问题总结分类为三方面。

转型初期将面临的三类挑战

一、角色转型引发的矛盾
当我还是个人贡献者的时候,我的核心竞争力可能就是扎实的工程能力、编码能力,以及对机器学习、数据挖掘等算法和使用场景的掌控能力等等。而成为技术管理者以后,我发现白天除了开会,还需要做跨团队交流,比如跟业务对接、了解业务需求等,另外还需要面试新人、与组员沟通等。因此,问题就出现了——每天面对各种事务性工作,自己的核心竞争力下降了怎么办?

我刚成为技术管理者时,几乎每天晚上九点多钟,大家都下班了,我才能回到工位,完成自己的开发工作。即使如此,在一些项目开发的关键节点上,它的开发进度可能还是会卡在我这里。因此,我每天都感觉自己做了很多事情,自身能力却并没有提升。

后来我逐渐把自己的开发工作缩减,交给小组中的其他技术骨干去完成。但同时我又担忧,自己写代码的时间越来越少,技术退化了怎么办?

恰好我在面试别人时也遇到了这个问题,很多 8 年至 10 年工作经验的面试者都非常优秀,各方面能力都很突出,但由于他们已经脱离一线有一段时间了,所以在考核技术能力时没能过关。我认为技术能力是一名技术管理者的基础能力,如果技术能力不过关,我也没办法给他 offer。

这件事情引发了我的反思,如果未来自己要走出去时,会不会碰到类似的困境?

除了事务性工作与技术工作的矛盾外,还有思维上的改变,之前在研发岗位上可能只需要做好自己份内的工作就足够了,但现在带领团队的话就需要不断思考,做哪些事情能够产生价值,如何做才能将价值最大化等等。

举个例子,小米在每个季度初都会制定 OKR,在我刚成为技术管理者的时候,每次制定 OKR 时都会思考,在未来的一个季度内,我们小组要做哪些事情,比如支持多少个业务、挖掘多少个标签等等。但我所思考的这些内容其实与上级主管的关注点并不相符。其实上级主管并不太关心工作内容的细节问题,他们更看重工作成果,比如为公司节约了多少成本,提升了多少收益,或者是使团队工作效率提升了多少倍等等。

所以,在制定 OKR 时我就需要考虑得更全面,不仅要从自身角度与团队角度出发,还需要兼顾公司业务所涉及的各方面问题。

二、在项目管理能力上的挑战
一名优秀的技术领导者,需要具备良好的项目管理能力,但我在实践的过程中发现了两个问题。

第一,之前作为技术骨干,我们可以很好的完成工作任务,甚至超预期完成任务目标。那现在要领导 15 人的团队来完成历时两个月的项目,如何能保证按时且高质量交付呢?

第二,对于安排给其他团队成员的任务,因为责任边界不明确,最终导致项目延期交付,面对这样的问题该怎么办呢?

举个例子,领导交给小王和小张一个任务,让他们一起来完成,但没有将责任具体落到某个人上,最后任务交付结果并不理想,小王和小张都认为是对方的责任,这就是责任边界不明确的问题。

三、在团队领导能力上的挑战
一名优秀的管理者必须具备良好的团队领导能力。在《技术领导之路》这本书中,对领导力的定义是,“所谓领导力,就是创造一个环境,让所有的人都可以发挥出比单干时更大的价值,并不断成长”。但是我们从技术岗转为管理岗之后,并没有人告诉我们该怎么做才能创造出这样的成长环境。我们都是依靠本能并通过不断地学习,在走了很多弯路之后,才探索出了一些方法。

目前在领导力方面,我之前主要遇到了三个问题。第一个问题是,当团队成员遇到困难的时候,如何能及时感知,并有效的帮助其解决问题?

举个例子,去年我们小组加入一位同学,当时,我将一个用户反馈分类的需求交给他解决。就是当小米手机有若干故障的时候,用户会在各种渠道上反馈,我们根据用户的描述,将问题分类为相机问题、主板问题等等,并训练出一个相应的机器学习模型。

因为这个工作不在主线业务内,所以我给了他充分的时间。结果一个月后,他找我沟通,表示想离职。我当时就懵了,具体沟通后才发现,他其实不太想做这件事情,另外,他所做的工作并不是我们团队的主线业务,跟其他团队成员也交流不多,没有融入团队。所以,面对类似这样的问题,技术管理者该怎么办?

第二个问题是,团队成员不断增加,但自己却越来越累,团队例会效率越来越低怎么办?

随着业务越来越多,团队加班就会成为常态,所以我们需要招更多人。但新成员加入后,却感觉自己更累了。因为之前只需要跟五、六个组员讨论工作,打磨工作成果的品质。而团队成员越多,所要花费的心力与沟通时间就越多,这个问题又该怎么解决呢?

第三个问题是,当团队成员之间发生矛盾时,比如 A 会跟我抱怨 B 的问题,而 B 也会吐槽 A 不懂协作。那该如何沟通,才能协调他们之间的矛盾呢?如何解决问题,才能不影响团队的工作效率呢?

小结

在工程师的职业生涯中,一定会面临一个选择,或成为资深技术人,或从技术转型管理。对于后者,我总结了我目前遇到的三类挑战,即角色转型引发的矛盾、在项目管理能力上的挑战、以及在团队领导能力上的挑战。受限于篇幅,本文只谈了问题与挑战,我会在下一篇文章中,根据自己的实践经验,讲讲我对这三类挑战的应对方法,欢迎持续关注。

感谢收听,我们下期再见!如果你觉得这篇文章对你有帮助的话,也欢迎把它分享给更多的朋友~

作者简介

徐函秋,现为小米大数据团队基础数据与用户画像组负责人,目前主要负责小米用户画像、行为标签库、ID-Mapping 等相关项目的建设与研发工作,为 MIUI、金融、新零售等小米公司核心业务提供大数据相关技术支持,帮助业务团队快速搭建多维分析平台,实现精准运营。加入小米公司之前曾在中科院自动化研究所担任研发工程师,期间参与了实验室的多个横向、纵向项目,并多次参加相关的国内、国际数据挖掘竞赛。