paint-brush
哪些技能可以帮助您成为一名优秀的开发团队领导者?经过@aleksandrguzenko
1,284 讀數
1,284 讀數

哪些技能可以帮助您成为一名优秀的开发团队领导者?

经过 Aleksandr Guzenko15m2024/02/26
Read on Terminal Reader

太長; 讀書

Aleksandr Guzenko 是一家大公司的团队负责人,他分享了如何成为前端开发团队负责人的见解,强调了该角色的管理和技术职责。他详细说明了团队领导角色和职位之间的区别,表明领导力需要硬技能和软技能、经验以及承担额外责任的主动性的结合。 Aleksandr Guzenko 建议有抱负的团队领导者获取经验、表现出主动性并抓住领导角色的机会,强调解决问题、与管理层沟通以及创造积极的团队环境的重要性。他还讨论了团队领导可能面临的挑战,包括资源限制、缺乏可见性和紧急模式,并得出结论,解决问题的能力和必要时更换公司的意愿对于领导职位的职业发展至关重要。
featured image - 哪些技能可以帮助您成为一名优秀的开发团队领导者?
Aleksandr Guzenko HackerNoon profile picture
0-item

你好。我叫 Aleksandr Guzenko,是一家大公司三个前端开发团队的组长。最近,一位员工走过来对我说:“我想成长为团队领导。我从哪里开始?”这篇文章的想法就是这样诞生的,我答应稍后将其发送给他作为指导。


在这篇文章中,我将告诉你我是如何成为团队领导的,在这个职位上你不能没有哪些技能,以及如果你是一名“普通”开发人员如何提高你的团队管理技能。


谁是团队领导,他负责什么?

我们先从理论开始,没有理论就很难理解为什么你去管理开发,却去统计项目预算。


在经典意义上,团队领导是开发团队的负责人。这是事实,但也有一些保留。



在当今的环境中,团队领导者不仅包括程序员,还包括设计师、分析师、测试人员、SEO 专家以及各种 IT 和非 IT 专业人员。因此,将团队领导定义为共享相同角色的一组员工的领导者更为准确,尽管我将特别关注开发人员。


其次,班组长不仅仅是班组长,而是员工与管理层之间的主要纽带。这是一个重要的补充,我将在下面尝试解释原因。


第三,要了解团队领导的职责,区分角色和职位很重要。


团队领导的角色主要涉及管理任务:

  • 传达管理层对重要问题的立场;
  • 进行组织变革;
  • 在员工之间分配任务并监督执行情况;
  • 回答当前团队的问题;
  • 解决纠纷;
  • 营造轻松的团队氛围;
  • 考虑每个团队成员的特点;


即使招聘网站上的职责清单另有说明,在纯粹的形式下,这个职位也很少被发现。


团队领导的职位可以同时结合多个角色:团队领导、技术领导和首席开发人员。在这个职位上,专家通常自己编写代码,管理团队的工作,并负责技术部分:


  • 制定项目开发策略;
  • 设计建筑;
  • 定义特定任务和项目的技术堆栈;
  • 监控相关库的版本;
  • 对代码质量负责;
  • 控制技术债务水平,使其不会对项目变得至关重要。


团队负责人和技术负责人都是一个人的话,业务就方便多了。在实践中,即使在大公司,团队领导的职位也涉及这三种角色不同比例的组合。因此,关于团队领导的职责的想法常常不同。


如果你问不同公司的开发人员团队负责人的职责是什么,答案很可能会有所不同。团队领导本身也会有类似的意见。要验证这一点,只需访问任何求职网站并查看不同职位空缺的职责列表即可。


谁可以成为团队领导者?

要领导一个开发团队,您需要强大的能力和经验。因此,成为团队领导者最常见、最正确的方式就是先晋升到高层,然后再瞄准领导职位。但这并不总是发生。


如果团队只由中级程序员组成,其中有一位主动性强的员工,知道所有事情并支持项目,那么他将是一个优秀的团队领导者。是的,他的技术水平不如前辈,但如果队里没有比他高的人,他的能力也足够了。


同时,并不是所有的前辈都会找到团队领导的职位适合的职业道路。在领导职位上工作应该是真正有趣的,否则你可能会因大量的管理工作量而枯萎。


如何了解自己能处理好工作量?

简短的回答:尝试一下。告诉你的经理你想免费承担额外的责任,看看会发生什么。这是一个双赢的计划,因此管理层通常愿意合作。


团队领导者获胜:有人为他做他的工作。


企业获胜:工作完成了,但你不必为此付钱。


团队领导实习生还有一个优势:在这种模式下工作几个月到一年后,他可以亲自了解自己是否成功以及是否喜欢领导。如果每一点的答案都是“是”,那么你就可以认真考虑朝这个方向发展。


如何成为团队领导:成长策略

只有两个选择。第一个是排除公司中的所有其他开发人员,并作为“最年长”的员工成为团队领导。然而,存在不必将“旧”一词放在引号中的风险。第二种选择是你自己采取主动。


我会告诉你我的情况如何。根据我的文凭,我的职业是经理,我在大学学习的同时自学了编程。因此,在我找到第一份程序员工作之前,我就决定成为一名开发团队领导。


起初,我在小公司工作。我花了两年的时间才掌握了它的窍门,并从一名初级球员成长为一名强大的中级球员。如果没有编程经验,您将无法成为一名优秀的团队领导:您需要了解开发过程是如何工作的,以及存在哪些错误和陷阱。


几年后,我来到一家大公司工作,立即表明我想成为一名团队领导。在大公司中,他们通常每六个月或一年进行一次绩效评估,当经理与员工会面时,他们一起制定近期的个人发展计划。在每次这样的会议上,我都会说我想成为团队领导。第一次他们告诉我:“一切都很棒,但首先要积累经验。”我们制定了一个发展计划,以便我能够获得领导经验。


在大约六个月的时间里,我和我的团队领导一起评估和分解了任务,并尝试将它们分配给员工。当我们的工作质量差不多的时候,公司刚刚组建了一个新的前端开发团队,由我领导。在大公司,你不必等待太久。


他们说,团队领导者的发展有两个重要的里程碑:第一个是从 2 到 6 名员工,第二个是 7 名或更多。起初,我只有一名员工,现在我领导着三个前端开发团队——12名员工。


我只是表现出主动性,出现在管理层面前,一有机会,我就被任命为组长。


等待增长还是跳槽到另一家公司?

团队领导通常是在公司内部培养的,这一点值得考虑。如果你目前的工作有发展前景,你应该主动尝试担任经理的角色。但如果整个团队都是前端和后端,每个人都是自己的团队领导者,那么你就不应该期待奇迹。最好跳槽到一家更大的公司,并表明你将来想担任领导职务。您将需要时间来研究流程并了解项目的业务逻辑。但当公司出现合适的职位时,他们很可能会选择你而不是外部人员。


哪些技能可以帮助您成为一名优秀的团队领导者?

在团队领导的位置上,硬技能和软技能同样重要。开发人员通常知道硬技能缺乏什么。此外,这些要求与专业化和技术堆栈密切相关,因此没有通用的列表。我将谈论我认为对产品和公司至关重要的软技能。


发现流程中问题的能力

开发的速度和质量以及成本取决于公司的流程,但它们很少是理想的。


例如,您修复了一个错误并准备将构建带到展台上,业务正在等待。但要做到这一点,您需要经过五个管道并收集所有相关人员的批准。你写信给那些负责人——保持沉默。你开始拉扯他们,但正式的消息只是为了回应——每个人都没有时间。修正后的版本最多可能需要六个小时才能到达展台。你花了这么多时间试图联系你的同事,而企业却在赔钱。


另一个例子是对不同系统、程序、站点和存储库的大量访问。银行通常会遇到这种情况。一个人来上班,他需要了解这个项目,但在头一个半月里他根本无法做任何事情,因为 - 没错 - 没有访问权限。访问的另一个问题是访问的数量很多,而且它们的名字很难记住。例如,目录中不是“访问存储库”,而是 A32B18KZ - 尝试找到它。


我知道一些真实的案例,开发人员有一两个月无法开始工作。一直以来,他都拿着薪水,但幻想破灭并辞职了。也就是说,公司花了六个月的时间寻找一名员工,给他两个月的工资,然后不得不重新开始招聘过程。


流程中的此类问题使工作变得复杂并减慢。团队领导者的任务是查看他们并了解到底哪里工作不佳以及故障发生在哪里。


能够解决问题或将问题正确地传达给企业

重要的是不仅要发现流程中的问题,还要提供解决方案。有些困难你可以自己解决,不需要管理层的介入。例如,一个团队正在与一个不方便的状态管理器作斗争。如果项目很小或者刚刚开始,您可以安排一次通话,找到最佳选择,并概述如何逐步引入新的状态管理器而不会造成损失。找到了解决方案,而企业甚至不知道问题的存在。


但大多数问题只能在高级管理层的帮助下解决。例如,为了加快向展台发布构建的速度,您可以找到一个在所有部门都有良好关系并可以接触决策者的人,并让他参与审批过程。如果其他部门的同事没有反馈,他知道该写信给谁,并且可以手动设置流程。但这样的工作需要单独的职位,所以你需要得到公司管理层的批准。


访问问题也同样解决。大多数开发人员需要相同的系统和程序。例如,对于前端开发人员来说——存储库、展台、Jira 等。那么为什么不为他们制作一个标准的访问包并雇用一个会向他们索取少量工资的人呢?但这也需要公司高层的意愿。


因此,团队领导者的主要技能之一就是能够正确地将问题的本质传达给业务。这里有一些秘密。


  • 一次还不够。第一次联系后问题很少能得到解决,因此你需要每隔一段时间就去找管理层并提醒他们问题:“这使团队士气低落”,“我们正在失去生产力”。


  • 如果您了解团队的问题和商业利益是如何联系在一起的,请点击此处。例如,有一个严重的错误需要两天时间才能修复,尽管只涉及几个小时的工作,结果导致企业损失了金钱。您去找管理层讨论协调构建的问题。在这种时刻,企业会尽可能地接受建议。但解决方案必须已经准备好。


与业务使用相同的语言

最可靠的方法是在将问题提交给管理层之前计算一下该问题给公司带来了多少损失。


作为前端团队负责人,我定期收集员工的反馈。例如,开发人员不断抱怨任务描述不清晰。正因为如此,需要很长时间才能找出问题的作者想从他们那里得到什么。然后测试人员来到开发人员面前,尝试了解已经完成的工作以及他们到底需要测试什么,并进一步沿着链条进行测试。结果大家还是按照自己的方式理解本质,bug就出现了。


我计算过,团队平均花费 40% 的工作时间来修复 bug。我们与团队一起进行了回顾性分析,发现这些错误中有一半的出现只是因为他们误解了问题的本质。也就是说,开发人员有 20% 的工作时间因为任务描述不清晰而被浪费。这是您去管理层时应该使用的号码。将其转换为金钱很容易——这是商业可以理解的语言。


营造良好的团队环境

当人们享受彼此合作时,任何互动都会变得更加顺利。为什么 Scrum 如此受欢迎?这不是关于文档,而是关于人。有时,给同事打电话两分钟比等两天让他记录答案并详细描述一切更有效。所以,当团队内部有一种相互理解、相互帮助的氛围时,人们之间的联系就更容易。例如,你找到了一段代码,但你不明白它的作用。如果球队的情况不好,你就不敢打电话问——“他会认为我很蠢。”


为了保持团队内部的良好关系,我每周都会进行一次长达一小时的通话。我们把这段时间分成三个部分。一是“轻松”。我们分享模因和笑话。第二部分是问题的讨论。有时我们会在 Miro 中将卡片扔在一起,这并不是每个人都喜欢的。这就是我如何了解到底是什么让这些人放慢了脚步。然后我们可以提出解决方案的选择,然后我将与管理层进行游说。然后我们再次“放松”:我们可以讨论电影或其他事情。这样的会议营造了一种积极的氛围,让我作为领导者了解到团队中有哪些痛点。


代表

新团队领导的一个常见错误是将工作流程集中在自己身上。在这种情况下,如果组长突然生病或者休假,工作就会开始停滞,他就会被不断地拉扯。为了防止这种情况发生,您可以教导团队中的某人履行团队领导的部分职责。例如,信任别人每月分配一次任务。这样,团队中的其他人就会拥有这项技能,而团队领导将能够平静地去度假,因为他知道没有他什么都不会发生。


也许这是评估团队领导工作的一个很好的标准:如果你被从团队中除名,安全裕度应该足够一个月。


正确分配团队内的职责范围

在开发过程中,诸如总线因子之类的指标用于管理项目的风险。它显示了需要有多少团队成员被一辆虚构的公共汽车撞到才能导致整个项目失败。如果总线系数= 1,则会出现严重问题。


例如,我们正在开发一个复杂的项目。它有一个复杂的模块,只有一名开发人员知道它是如何工作的并知道如何处理它。如果这个人生病、辞职或去度假,改变这个模块将变成一个非常漫长且昂贵的过程,这将对整个项目产生负面影响。为了防止这种情况发生,您需要逐步教会其他员工使用复杂的模块或库。


团队领导者必须能够在团队内正确分配职责,而不会将流程限制在一个人身上,也不会让他对项目至关重要。


项目的战略愿景

团队负责人必须了解项目的进展情况、存在哪些问题以及如何解决这些问题。例如,团队的总工作量是每周 100 个工作小时。企业在这 100 个小时里表达了自己的愿望。此时项目上的技术债务正在积累,也到了处理的时候了。团队领导者的任务是跟踪技术债务变得严重之前的时刻并游说管理层,以便团队将一定比例的时间用于解决当前问题。


作为团队负责人,您可能会遇到哪些问题?

最好从一开始就知道为什么团队领导会精疲力竭地敲响警钟。


企业方面的误解

这是最常见的问题,当你月复一月地试图联系管理层时,你提出了你的问题和现成的解决方案,但在顶层,他们只是把问题放在积压中,什么也没有发生。可能有几个原因。首先,你对商业的说法是错误的,你应该改变你的方法。第二个是你的老板“最了解一切”并继续按照他的方式行事。在这种情况下,最好的解决办法就是更换公司。


缺乏资源

一个简单的例子:您的团队不断被任务压垮,并且不再有足够的人手。中小型企业可能根本没有钱雇用新员工。在这种情况下,您可以承担额外的角色,例如系统分析师的角色,并开始描述任务,以便工作进展得更快。在大公司,十有八九是有钱,但决策链条太长,难保三四级老板之间没有猫过,流程不会因此而停滞。在这里,你只能尝试将高层管理人员争取到你身边,或者只是等待。


工作成果不可见

碰巧你来到一家公司,制定战略,制定计划,对工作充满热情,但时间流逝,什么都没有改变。很快就会变得沮丧:“谁需要这一切?”在这种情况下,您可以进行回顾性分析,了解项目没有进展的原因。问问自己:“也许我击中了错误的目标,解决了错误的问题?”


缺乏实现目标的工具

当你被置于领导地位,被赋予责任,但没有任何控制杠杆时,就会发生这种情况。例如,无法独立进行面试并招募开发人员加入您的团队。这里只有两个选择:要么尝试联系企业并表明你的立场,要么更换公司。


直接接触高级管理层

为了开发产品并解决团队当前的问题,团队领导必须与决策者保持不断的联系。如果与“高层”的联系被关闭,问题就得不到解决,发展战略就得不到落实,工作动力就会丧失。为了不精疲力尽,如果你无法与管理层建立关系,最好换一家公司。


永久紧急模式

有时任务太多,团队无法再应对传入的流量。在持续发生紧急情况的情况下,常规呼叫会逐渐消失——当这个时间可以用来消除错误时,谁还需要模因和空洞的闲聊呢?结果,整个团队就像一匹被赶走的马,迟早会失去动力,人们会开始离开。团队负责人所能做的就是尝试强制扩充人员或将任务放入队列中。


队内气氛不好

如果你加入一个已经建立的团队,而每个人都互相憎恨,这种情况就会发生。有毒的沟通方式已经在团队中扎根,没有任何互助之谈。那么唯一能做的就是解散整个团队,重新招募。


无论出现什么问题,总有机会获得有利的结果。第一次失败后不要放弃。也许值得等待一下或改变你的方法。但如果你已经尝试了一切,但感觉就像在敲一堵空白的墙,那么离开将是唯一正确的决定。


结论

解决问题的能力是团队领导者的重要素质。但可惜的是,这并不总是有效。但如果你觉得自己已经原地踏步一两年了,无法以任何方式影响它,但又想成长,那么换家公司也不失为一个好主意。不要害怕改变。换工作很正常。