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

组建搭配合理的团队


(图片来自于 pixabay)

作为Tech Lead,你要先有一支队伍。

当你还是一个 Tech Lead 菜鸟,可能更多是听取 PM 的想法来组建开发团队。但未来你需要从专业角度给 PM 建议,组建更为合理的开发团队。那么团队组建的时候, Tech Lead 应该注意什么呢?

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

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

软件开发团队是一样的,大量配比高级研发,通常对研发效率会有较大帮助。但带来的问题就是超出预算,每位高级研发发挥的空间有限,无法满足个人成长需求。

工作经验、能力搭配

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

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

项目经验搭配

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

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

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

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

技能搭配

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

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

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

不同办公点搭配

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

打造成员多样性的团队


(图片来自于 unsplash)

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

思考问题的角度不同

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

思维的碰撞

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

团队成员性格互补

每个人都有自己鲜明的性格。你的性格有时是成事的关键,有时却又是成事的绊脚石。作为个体,改变自己性格非常困难。作为团队,则幸运的多。通过招聘性格各不相同的成员,就可以获得一支性格全面的队伍。

团队成员不同性格互为补充,会让团队行事更为顺利。例如有的成员做事果断,但是容易犯错。有的成员做事思考全面,但是犹犹豫豫。这样的组合既能让事情及时推进下去,又能够兼顾到方方面面。

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

成员有更大的发挥空间

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

建设同一技术愿景的团队


(图片来自于 unsplash)

技术愿景指 Tech Lead 和团队一起设定的长期技术目标。技术愿景是团队的技术追求方向。团队可以围绕技术愿景,设定一系列的技术标准、流程和团队纪律。

制定技术愿景有如下几个作用。

保持团队纪律性

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

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

指导团队做出连贯决策

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

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

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

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

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

总结

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


文/Thoughtworks 李一鸣
原文链接:如何组建高效的开发团队

Tech Lead如何组建你的全明星团队相关推荐

  1. Tech Lead(技术经理) 带人之道

    博主:爱码叔 个人博客站点: icodebook 公众号:漫话软件设计 专注于软件设计与架构.技术管理.擅长用通俗易懂的语言讲解技术.对技术管理工作有自己的一定见解.文章会第一时间首发在个站上,欢迎大 ...

  2. Tech Lead 实践

    项目结束,休一个长假,从忙碌中停下来才发现,身体的困乏无法掩饰思想的空洞,所以半夜爬起来(估计是下午茶喝多了,人还是不能太安逸). 上个项目是我这次换工作的第一个项目,我的角色是Tech Lead,这 ...

  3. 北京/上海内推 | 小红书社区技术部招聘NLP算法工程师/实习生/tech lead

    合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 小红书 基础模型团队成立一年时间,已经在搜索排序模型.搜索召回模型.搜索链 ...

  4. Tech Lead的三重人格

    很多团队都有tech lead这个角色的存在,但同时很多团队对这个角色都缺乏明确的定义.大多数时候,团队只是指派其中经验最丰富.技术最精熟的开发者来担当tech lead.但除了"tech& ...

  5. 剑桥的商学院硕士的创业项目找我做tech lead,稳得一批

    稳得一批老哥 tech lead 我只做过小组作业,self raised project的lead 真的稳得一批 我觉得在现在的这个国际分工上 就是lse,cam,ox,hypsm的老哥出想法 我们 ...

  6. 如何组建和管理测试团队

    如何组建和管理测试团队 如何来建立一个高效的测试团队呢?这个问题,一定是"仁者见仁,智者见智"的问题. 1 测试团队中的"人" 首先,高效的测试团队需要不同角色 ...

  7. 组建合适的自动化测试团队

    为您的自动化实施团队寻找到合适的人选对于自动化实施项目的成功具有重要意义.所有成功的自动化测试项目都常常拥有 1 个或多个牛人,这些牛人也许不是自动化测试工程师,他们也许在质量保证.数据库或软件开发方 ...

  8. 如何组建和激励工程师团队

    本文转自:https://news.cnblogs.com/n/558611/ Camille Fournier 受邀在耶鲁大学进行了一场关于如何在科技初创公司里组建和激励工程师团队的演讲. 十多年来 ...

  9. 公司组建一支算法团队的隐性成本都有哪些?

    多年硅谷的工作经历告诉我们,组建一支算法团队远比认知的"昂贵"得多.比如需要为算法工程师和科学家们配备软件工程师,为他们做工具的支撑,需要采购诸如DGX或者Titan P级别的昂贵 ...

最新文章

  1. ROS中cv_bridge如何用python3进行编译
  2. Qt for Python使用Qt中的Properties
  3. 最新发布!《阿里云实时计算 Flink 版解决方案白皮书-2021版》开放下载
  4. 【Linux应用】SAN(存储区域网络)技术
  5. 关于C语言中数组输入与打印
  6. TI | TM4C123Gx单片机之---ADC笔记
  7. ucenter用户中心头像修改,不使用自带方法,不使用flash 转
  8. 记录win7安装Docker for Windows(DockerToolbox)的一记大坑:wating for an ip....卡死
  9. 如何搭建Grafana
  10. N: 无法安全地用该源进行更新,所以默认禁用该源
  11. 战争地带2100 mac版
  12. 中国股票下跌是有道理的(基金经理:现在我们不能买股票 )
  13. 华为快应用IDE——让快应用开发更快
  14. Android物联网应用程序开发(智慧园区)—— 图片预览界面
  15. 我很忙!你忙什么?瞎忙!
  16. Spring AMQP参考手册
  17. 南邮-软件设计实验(C++版)
  18. 为什么电脑右下角不显示“中”、“英”?
  19. 基于opencv的相机之加密解密功能实现(十三)
  20. Xcode8 Showing Recent Errors Only Signing for 你的工程名 requires a development team. Select a deve

热门文章

  1. 绿叶学习网CSS技术细节
  2. 承建“互联网+政务”平台,解决“二次录入”难题,博为小帮软件机器人助力“最多跑一次”政务改革
  3. 乐视TV的售后服务策略:没有售后
  4. ZYNQ petalinux系统启动文件固化到FLASH
  5. 考研冲刺阶段的7大谣言!你中招了吗?
  6. mysql创建触发器难题_[]MYSQL创建触发器遇到很奇怪的有关问题
  7. 如何做好网络安全周答题
  8. C语言扩展动态内存报错:realloc(): invalid next size: 0x0000000002365010 ***
  9. pdf添加书签的快速方法
  10. Ajax简介,ajax是什么?