当你 “不小心” 成为了 Tech Lead

TL角色认知

从开发成长为TL

作为一名软件工程师,技术这条路确实异常艰辛。伴随着一个个熬到爆肝的深夜,你解决掉一个个技术难题,学习了一门门技术。虽然你变秃了,但你也变强了。凭着追求卓越的精神和优秀的熬夜能力,你已经从一无所知的小白,成长为无所不能的技术大拿。你从初级程序员一路成长为高级程序员。人称 8 倍速程序员( 1 人干 8 人的工作)。

这一天经理找到你。

“王伟,近期要新起一个项目,你作为 Tech Lead 带一下开发团队。”

“没问题,团队多少人?”

“大概 20 人。”

“嗯......我没带过这么大的团队啊”

“你的代码写的那么好,没问题!”

就是这么突然,没有一丝丝防备。你凭借写得一手好代码、凭借工作三年却有五年编程经验,看起来像工作 10 年的工程师,顺利走上了技术管理岗位!听起来好像合情合理,但细琢磨起来总觉得哪里不太对劲。其实类似的事情在软件行业每天都在发生。就像电影行业的 “演而优则导”。不过,其实好演员导出的烂片也不少。

糟糕,我搞砸了

src=http___img.mp.sohu.com_upload_20170723_bda1120b8ae34ec488a859feb0ac7b73_th.png&refer=http___img.mp.sohu.webp

项目开始了,撸起袖子搞起来!但是,好像有点不太对劲.....

团队在空转、开发任务被 block、意料之外的问题、代码风格不统一、各种 bug、pipeline 飘红.....

总结下来就是效率低、质量差。 作为曾经的代码之神,王伟恨不得高呼一声:“都闪开,让我来!” 但就算是 10 倍程序员,也干不完 20 人的活。虽然 “一个队伍要像一个人”,但不能真的就只有一个人。

“王伟,怎么搞的?听说项目要延期?”

“别提了,团队各种问题,开发速率起不来,我也没什么好办法。”

“团队协作和一个人写代码肯定不一样,关于团队管理你得补补课,相信以你的能力也不是什么困难的事情。”

王伟从软件工程师转变为技术管理者的故事,大概率会发生在每一位开发身上。作为一名技术工作者,在专业领域取得成绩后,逐步过度到管理者,这合情合理。但是如何平稳越过技术到管理的沟壑,是让每一位初出茅庐 的TL 头疼的事。

TL角色认知

晋升为团队的技术管理者,意味升值加薪、更多股票!但更重要的意味着你的角色发生了变化。没错,你过去的工作方式和经验已经不好用了。过去你只需要做好自己的开发。而现在你需要带领整个团队出色的完成开发工作。是时候学习一些管理知识了,最重要的是和你的专业知识结合起来。现在你不只是开发,还是架构师,甚至项目经理。你是这些角色的综合体,但又不可能面面具到。有限的时间和经验,应该把技能点点在哪里?应该重点做什么类型的工作?这需要你对 TL 角色有正确的认知。

TL是综合体

作为开发,可能最快乐的事情就是一个人闷头写上几个小时的代码,沉浸在造物主的乐趣之中。我不希望,也不愿意和其他人有过多交流,哪怕是漂亮的 QA 小姐姐测出 bug 找到我,我也会回以“是你不会用吧?”。我只关心我的程序是不是跑通了,是不是写的足够 “工匠精神”。

但是,当你成为 TL 的那一天,你会和这种快乐渐行渐远。

过去你只关心自己程序的设计,现在你要关心系统整体设计。

过去你只关心自己的任务拆分,现在你要关心整个团队的任务拆分。

过去你只关心自己的任务先做哪些后做哪些,现在你要关心团队的任务怎么安排更合理。

过去你只关心自己的代码写的是否够好,现在你要关心整个团队的代码质量。

过去你只关心自己如何学习技术,现在你要关心团队的技术能力成长、每个成员的发展。

过去你可以流畅讲出自己的程序实现,现在团队开发的任何内容你也需要能应答如流。

嗯?怎么看起来事情还是那些事情,只是从个人到团队了?没错,事情还是那些事情,只是被放大到团队。从个人到团队,意味着你要身兼PM、架构师、高级工程师的工作。 image.png

TL 是 PM

TL 和开发的最大转变,是开始承担团队管理工作。你要开始从团队视角去思考问题。

  1. 如何提升团队的开发效率
  2. 团队成员如何成长
  3. 技术方案是否全局最优
  4. 项目进度如何
  5. 项目是否存在风险

诸如以上这些问题,如果成为 TL 后你还没有开始思考,那么你的团队将十分危险。很多新 TL 在习惯 TL 角色之前,很容易陷入某个具体问题的解决上,从而忽略团队,对项目缺少规划。这会导致团队效率低下,问题频发。最后的结果就是哪里漏水堵哪里,TL一人堵几个最难堵的洞,剩下的洞大家一块堵。整个团队疲惫不堪,项目却做的非常糟糕。

TL 除技术之外,最重要的能力就是规划能力。要想做好规划,需要清楚知道团队的能力,细化工作任务,识别出项目风险。一句话,项目的一切尽在掌握。关于如何规划,后面我会再写一篇文章,这里不再展开说。

TL 是架构师、高级研发

TL 的技术一定是过硬的,这是成为 TL 的基本要求。你做不到门门技术都是团队中最好的,但是一定要有技术广度。此外,通过学习快速掌握新技术、快速解决问题的能力是 TL 必备技能。

当团队碰到技术难题,TL 肯定是冲在前面,带领团队一起攻克难关的人。注意,是带领团队,而不是 TL 一个人解决难题。问题是团队的问题,不是 TL一个人的问题。TL 需要充分利用团队的能力,找到合适的人、合适的方法来解决问题。如果 TL 总是一个人钻研项目上的难题,这并不是正常现象。

TL 在技术层面需要关注如下三件事:

  1. 为团队建立技术标准、并带团队遵守标准
  2. 关注软件设计和方案
  3. 带领团队解决技术难题
  4. 识别和关注技术风险

沟通是 TL 必备技能

作为 TL,沟通是非常重要的技能。你不能再一个人沉浸在代码的世界里了。

请你和每一位开发沟通!和 PM 沟通!和客户沟通!

一开始会有些胆怯,甚至都表达不清楚。这非常正常,沟通是每一位工程师相对欠缺的技能。没办法,谁让咱前几年把技能点都点在了技术上。其实沟通也是有一定方法的。掌握方法的同时,大胆的去沟通,不怕犯错。只有不断实践,才能跨过沟通的障碍。

TL 还是那个技术极客

Tech Lead,根基在 Tech 上。除了团队的工作之外,一定要给自己留有学习技术、编写代码的时间。 成为TL后你会发现管理的事情永远做不完。因为管理的工作成果不如编码具像化。你会觉得自己再多思考一下,就会有更好的结果。 在这种情况下,TL 如果不规划好自己技术的时间,会造成很久不碰代码、很久不学习新技术。当 TL 意识到这个问题的时候,可能已经远离技术很久,很难重新拾起。最终被迫转行。

你虽然成为了 TL,但你骨子里还应该是那个技术极客。请你继续保持对技术的热爱,不要远离代码。只有根扎的深,树才长的高,结的果实也会更多!

王伟后来怎么样了?

“王伟,最近项目怎么样?” “已经做完技术方案设计。拆解了开发任务,和 PM 安排好迭代计划。根据团队人员配比和能力,整体进度风险不大。有一个风险是报表涉及到大量历史数据迁移,可能存在性能问题。已经安排性能测试,并且在设计增量迁移方案。”

All rights reserved
Except where otherwise noted, content on this page is copyrighted.