很多同学在向更高一级进阶的时候,往往会遇到很多困惑,最常见的,就是自己的技术能力,是不等于管理能力的,自己能做好事情,不代表团队能做好事情。除去职责本身的变化外,我们还需要从全新的视角,来看待自己做的事情,本文便从“看清楚”这件事情出发,来讲解技术主管的职责。

|0x00 技术团队的构成

我们首先讲一下,技术团队的职责是什么?通常而言,一线技术团队是以工程师为主要团队成员,辅助以测试、产品、项目经理等其他岗位的支持,目标是交付满足干系人需求的产品或者系统,而干系人一般指代我们所称呼的业务方。

技术团队通常需要负责一个或者多个产品的演进工作,但互联网公司有别于传统软件公司的区别,是在产品的生命周期内,基本上项目都是无限兜底的一个情况,也就是一直要有人负责到底。因此,所谓的“烂尾”,一般指干系人不想要了,而不是技术团队不再维护的情况。这就要求,对于相应的产品、系统或者是业务模块,我们不仅需要完成需求,做好功能的开发,也需要负责后续的部署和维护工作。

从以上职责出发,我们可以看出,为了能够实现团队所负责的目标,我们通常需要以下的参与角色:

  • 首先是技术负责人,也可以称之为架构师,需要制定产品的技术方案,指定子系统的开发负责人等工作;
  • 其次是技术开发,也就是团队的基础成员,负责一线工作的同学;
  • 再次是项目参与者,研发活动通常以“项目制”的方式开展,“BU制”相对少见,当项目开展时,需要与产品、测试、项目经理等其他岗位进行协同,配合就会变得非常重要;
  • 最后是职能岗位,比如招聘、绩效、行政、法务等岗位协同。

那么研发团队的管理者,需要覆盖哪些角色呢?一般是根据团队和公司情况确定的,PMP中给出了很多项目合作的方式,都是可以参考的原型。因为公司采用的项目管理方式不同,那么技术管理者的一些职能也就不同,比如人员管理与招聘,在一些公司就是技术主管的责任,具体的技术负责人可以拆解给下属,而另外一些公司,技术主管就是技术负责人的角色,需要制定和把控团队的技术方案,而人员的管理和招聘交给HR。

所以,虽然我们的目标都是TL,但TL也是分类型的,需要跟公司组织方式和文化相适应,才能发挥出自己的真正战斗力。例如让一个架构高手来组建团队,恐怕这个团队会发展的不顺利。

因此,我们需要把技术主管的能力拆开看,一个是技术领导力,另一个则是管理能力,每一种大类之下,又是很多细分的领域,就像学校的学科一样,如果某个方向突出,我们可以称之为“学霸”,但只有综合的分数最高,才能成为“状元”。

接下来,我们把这两种能力分别拆开来看。

|0x01 技术领导力具体内容

技术领导力,最重要的一点,是明确自己所负责的范围。如果没有一个实在的职权,而仅仅是有指导的义务,那么很多种差不多的技术方案同时在跑,就会变成架构师的噩梦,因为权利和责任没有统一,那么架构师的角色也就难以发挥真正的作用。

因此,技术领导力,最重要的就是发挥出一种“Owner”意识,很多公司强调主动精神,也是希望负责人能够为最终的结果负责,否则领导力不够,就难以成为真正的领导人。

当我们有了这种意识之后,下一步就是对技术领域的工作做具体的拆解,技术工作通常有四个发展阶段,像自动驾驶的L层级一样,我们给出如下的拆分:

L1:写代码,实现具体功能;
L2:Review代码,做架构设计;
L3:Review架构,落地具体项目;
L4:把握技术演进方向,推动领域的技术前进;
L5:制定技术标准。

每个技术人都是从低层级逐步打怪升级上来的,因此如果做到主管这一层级,技术能力至少能够达到L2的级别。同时,随着公司规模的不断扩大,负责的方向和管理的人数增加,能力逐步从L2提升至L4,部分顶尖的能够达到L5。

|0x02 管理能力具体内容

相对于技术领导力相对清晰的演进路线,管理能力则更像是“并行”的系统,很多能力之间没有绝对的前后顺序。

首先我们要对管理能力有一个比较清晰的认知,即管理能力是为了什么?在大多数打工人的朴素认知中,管理能力是“权力”的代名词,对权力的过分追求,是大公司病的主要“病因”。如果把带人、抢地盘等属性剥离,管理者才能够看到自己应该起到的作用,也就是如何为团队带来贡献。

那么管理对于团队的贡献主要是什么?建议看一下《纸牌屋》第一级Frank对于党鞭工作的介绍,也就是:“保持信息通畅、对齐团队目标、发挥组织效率”。

管理能力,第一点,就是保持信息的通畅,因为组织的存在,信息自上向下传递的过程中,会出现很多确实、失真的情况,尽管信息技术已经发展到今天,但“信息不对称”依旧是组织管理的大问题。因此,管理者不仅要做好向上、向下、横向的管理,还需要把信息清晰的传递给团队,辅助团队看清楚复杂局面和应对策略。

其次,我们需要对焦好每个人的目标,作为技术团队,个人的分工,很多时候等同于技术架构的分拆,做好内部的工作划分,能够非常有效的提高组织成员的信赖感,并降低沟通上的消耗,这也是主管管理能力的核心体现。

再次,团队是每个人组成的,每个人都会有自己的七情六欲,发生一些意外、出现一些困难,不论是工作上还是生活上,都是常有的事情,即便是资深的技术专家,作为局中人,也不一定走得出这些困难。而作为主管,是需要承担一些类似于教练的角色,为团队的发展扫除障碍。

最后,就是一些项目管理的工作,就像PMP中讲到的,项目经理90%的时间在沟通,因此从独立工作走向多方沟通,也是个人性格的一大提升。

管理要交付的结果是什么?我想,最大的结果,就是“信任”,团队信任主管、主管信任成员,毕竟效率这个事情,机械执行是换不来的,只有人心所向,才是最大的提升。那么信任是怎么来的?是一次又一次的胜利,是一场又一场的交心,通过结果换取信任。

|0xFF 正确认识自己

作为工程师,不论是数据、Java还是其他岗位,走向技术主管的道路,都是类似的。当我们面临做事风格的巨大转变,也就是从代码为主转向沟通为主,为业务目标负担实际责任,对技术债务最终兜底时,是否能够像过去那样一往无前。

尽管,在绝大多数科技公司里,技术路线的上升通道都比不上管理路线的上升通道,因此很多人对自己的定位,往往会出现偏差,而这些偏差,会导致心理不平衡的出现,这其实是团队成员流动的深层次原因。如果我们问一个工程师,你看过哪些技术著作,或者是技术文章,很多优秀的工程师,可能会告诉你在过去的很长时间里,一直都在学习不同的知识。但如果我们问一个技术主管,针对管理你学习过哪些知识、阅读过哪些的经典著作,估计情况就不那么乐观了。因为知识的缺少,对于事情的判断,就往往出现了误差。

例如,团队的成果,不等于个人的成果,为什么?因为末级管理者的权威,是需要实打实的能力,打出来的,但你所能影响的,则是很虚无缥缈的一些东西。这个时候,我们环顾四周,能帮到你的,除了朋友、经验之外,能够借鉴的经验,真的就很少了。所谓的“高处不胜寒”,个中滋味,只有体会才能感受。

技术主管,是需要时间磨练的一个岗位,几乎所有的事情都需要学习,不仅仅是技术,也是人情世故,我们不会认为参加几个小时、几天的管理培训,就能够学到管理的真谛;也不认为参加几次峰会,就看到了技术未来的趋势。责任的增加,接触知识层级的提升,不代表你依然能够做成准确判断,打出实际成果。

无路如何,这是一个职业生涯的转型,需要清晰的思考自己的规划,并决定如何去选择。