Tech Lead 如何组建你的全明星团队

TL如何组建团队

当你成为Tech lead,意味着你不再只是团队中的一员。现在你是团队的Leader,换句话讲,这是一只你的团队。你需要费尽心思组建和打造你的团队!

团队组建

sport, rugby, team 作为Tech Lead,你要先有一只队伍。

你需要负责组建起这个队伍。当你还是一个 TL 菜鸟,可能PM会帮你将团队组建好,但未来一定是你来决定自己团队的组成。团队组建的时候 TL 应该注意什么呢?

组建一支有战斗力的开发队伍是打胜仗的基础。就像一只 NBA 球队,首先需要有一名核心球员,搭配1到2个明星球员,再加上几名角色球员。这才是搭配合理的球队。

近几年 NBA 流行三核心,几乎是争冠的标配。但问题是要么明星球员降薪,要么交奢侈税。同时球星的个人数据也会下滑。

软件团队是一样的,如果不考虑预算,全部上经验丰富的高级研发一定效率会更高。但带来的问题就是超出预算,另外每个高级研发发挥的空间有限,无法满足个人成长需求。

工作经验、能力搭配

一般的团队应该是菱形结构,中间多,两头少。打个比方,一个 8 人的团队,一般是 1 名 Tech Lead,1 名 高级研发,4 名初级研发,2 名毕业生。

这样的搭配,一能满足项目的成本要求,二能满足不同经验成员的发展诉求。经验不足的团队成员也可以在经验丰富成员的带领下快速成长。

项目经验搭配

如果在遗留系统做项目,人员搭配还需要考虑系统经验。系统经验和能力没有关系,考察的是对遗留系统的了解程度。如果项目组所有成员都对此系统不熟悉,那么即使都是高级研发,风险也会非常高。

遗留系统的坑就在那等着你,可是你就是看不到。这种亏吃的太多了。

另外由于流程不熟悉,导致该准备的材料没准备,或者“突然”多出一些工作,影响了项目交付甚至上线。这种事情非常常见。

8 人的团队,如果 Tech Lead 非常熟悉遗留系统,可以对其他成员不做要求。但是如果 Tech Lead 不熟悉,至少还需要 1-2 名熟悉系统的成员。和 TL 一起制定方案,并帮助团队成员熟悉系统。

技能搭配

团队的一个重要优势是个体的多样性。技能是重要的一个方面。招聘全栈工程师可以大大提升团队效率,但很难找到这么多的全栈程序员。团队合理的技能搭配可以打造一个全栈团队。

每个技能至少有两名成员熟悉,避免造成单点依赖。

这样的团队没有明显的短板,风险也是最小的。

性格搭配

性格互补可以寄激发团队更大的能量。不过很多时候组建团队的时候并不能清楚了解每个人的性格。我们可以随着团队的成长,做一些调配。

不同办公点搭配

如果是异地办公,在搭配团队时要考虑不同工作地点的因素。尽量在不同的工作地点都有经验丰富的研发。一是能看住场子,二是能加速初级程序员的成长。

团队成员多样性

multi colored pen lot on black background 尽管每个人的背景、性格、喜好都不尽相同,但如果团队招人的标准过于死板,会造成团队成员的同质化。我们打造团队的时候需要刻意考虑团队成员的多样性。请注意这里的多样性并不是指能力的多样性,例如3个后端,2个前端的多样性。这里的多样性指成员的个性、背景、思考问题的方式。团队成员多样性有如下好处。

思考问题的角度不同

多样性意味着思考问题的角度不同。例如面对生产上出现的严重bug,有人想的是立刻回退代码,有人想的是通过 log 尝试定位问题。定位问题时,方法也不一样,有的人反过来从 DB 入手,有的人从请求入口入手。思考问题角度的不同,引入解决问题的方式也不同。这样的团队可以从多个角度更快解决问题。

思维的碰撞

讨论问题时,团队成员的多样性有益于激发更多的灵感。讨论问题就是为了集思广益,那么团队的多样性,会产生更多新奇的点子,从而引发更多的讨论。讨论肯定会产生争执。有的管理者惧怕团队起争执,力求团队和谐。其实大可不必,争执是产生新点子的重要方式。人在争执过程中,会极大激发大脑的潜能,经常会冒出自己都觉得不可思议的想法。

造就更为全面的团队

作为个体,每个人都在各个方面持续不断的提升。作为团队则幸运的多,通过招聘各不相同的成员,就可以获得一只全面的队伍。团队成员不同个性互为补充,让团队行事更为顺利。例如有的成员做事果断,但是容易犯错。有的成员做事情思考全面,但是犹犹豫豫。这样的组合既能让事情及时推进下去,又能够兼顾到方方面面。

团队深处复杂环境之中,需要多样性的成员组成全面的队伍。否则外界任何变化,都有可能击溃一只曾经运行良好的团队。

成员有更大的发挥空间

团队成员的多样性给了成员更大的发挥空间。避免大家在同一个方向上发力,导致每个人发挥的空间有限。多样性让每个人感兴趣或者擅长的方向不一样,每人都能找到自己的独立发挥空间。有的人更具管理思维,那么可以辅助Tech Leader 做管理工作;有的人做事细心周到,可以负责系统上线;有的人擅长沟通,可以做UAT支持。每个成员都可以在自己擅长的方向上发展,另外又可以带动其他不擅长的同事,获得发展他人的机会。

团队的技术愿景

person holding silver compass

技术愿景指 Tech Lead 和团队一起设定的希望团队在技术上达成的样子。技术愿景也是团队的技术追求方向。团队可以围绕技术愿景,设定一系列的技术标准、流程和团队纪律。

制定技术愿景有如下几个目的。

保持团队纪律性

技术愿景指明了团队的技术追求方向,避免团队成员各自为战。对于一个团队,纪律性尤其重要。没有纪律,不能称之为团队,只是聚在一起的一群人而已。

如果由 Tech Lead 直接设立团队的纪律,会造成团队成员主动性不高,遵守不到位的情况。人们对纪律都有本能的抵触情绪。但每个人又都有追求技术卓越的心。通过追求技术卓越的想法,达成一致的技术愿景。围绕团队认可的技术愿景制定团队纪律,在推广和执行上就会容易的多。

指导团队做出连贯的决策

团队在项目上的活动是长期的。通过技术愿景,可以确保团队长期的技术活动是连贯的。而不是不同时间的决策方向各不相同,甚至相背。有的时候在做决策的那一刻并不能看出方案的优劣,这往往让我们陷于难以决策的境地。通过设定技术愿景,做决策的时候能够给我们指导。大多数时候,决策的一致性胜于某一次更优一点的方案。

指导团队做出有利于长期收益的决策

人们会本能性选择收益更快的选项,哪怕是饮鸩止渴。缺少了技术愿景的指导,小到一行代码怎么写,大到一个方案怎么做,都很可能只关注了短期收益。

往往迫于交付的压力,我们对技术的追求步步退让。最终团队技术债债台高筑,系统加速腐化。面对这样的系统,需求实现越来越困难,但你的工作量评估却不能随意增加。否则会得到业务部门的质疑:类似的需求去年只需要20人天,今年怎么需要30人天?这导致交付的压力越来越大,进而放弃更多技术追求。陷入恶性循环后,系统会快速变成一个修修补补、摇摇欲坠、无人敢碰的遗留系统。

从写下系统的第一行代码起,项目团队就在和 “熵增” 做抗争。技术愿景指导团队做出有利长期收益的决策,避免只顾及眼前利益,导致系统加速走向无序泥沼。

总结

团队由一群身怀绝技又各不相同的人所组成,大家有共同的目标,并愿意为之而努力。打造你的全明星团队,和团队一起设立愿景,这是你团队走向成功的基石!

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