从开发人员晋升为团队领导:他们没有告诉我的事情

2020-09-23 00:34:36

生活很美好。我和我的大学室友“Q”住在波士顿南部的一间小公寓里。我在一家名为CloudLock的科技初创公司找到了一份不错的工作。我每天花12-14个小时敲定密码。我工作太忙了,我从来不知道今天是什么日子,我的老板不得不强迫我回家。当我不工作的时候,我和我的朋友玩袋子(又名玉米洞),在Super Smash Bros混战中照亮人们,或者睡觉。在这个世界上一点也不关心。

我的老板,我们的工程副总裁迈克尔·泽尔迪奇,有一天把我拉到一边。他解释说,我们的团队发展很快,要有15名以上的工程师直接向他汇报工作对他来说变得越来越困难。我们需要一些团队领导到位,这样我们才能扩展我们的组织,并确保每个人都得到了足够的关注。

好的,…。我不会撒谎的。我很惊讶。但这不是我第一次考虑这个问题了。

CloudLock是我大学毕业后的第二份工作。我的第一份工作是在Nuance通信公司工作。当我的老板休假两周时,我尝到了带领团队的滋味。他提名我在他不在的时候担任技术支持的工程联络人。在这两周里,我在公司内部的人脉扩大了,我第一次接到了客户电话,我体验到了不仅仅负责我自己的代码是什么感觉。这很有趣,而且我很擅长!

那天,当迈克尔和我谈话时,那段经历就在我的脑海中浮现出来。我想说是,但我有一百万个问题。

我不记得他的确切言辞了,但他的要点是迈克尔说的是“别担心。你会很棒的。我会帮你的,我们会让它一起工作的。“。

迈克尔真的是个好人。我信任他,尊敬他。所以这就是我需要听到的一切。

感谢您阅读我的故事!我也希望您能看看我的最新项目。我们的开发团队厌倦了复杂的Jira工作流,每15分钟就会被打断一次状态更新。因此,我们正在构建一个仪表板,将Git分支和PR活动与相关的Jira故事关联起来,这样您就可以很容易地看到特性和错误的进展情况。你可以免费去看一看。我希望能得到您的反馈。

回想起来,在最初的几个月里,我并不真正了解这份工作。

我只是走过场。模仿我见过的其他开发团队领导所做的所有事情。

别误会我的意思。我做了些好事。但我也有过不少挣扎。

首先,每次出现问题,我都会进入超人模式。单枪匹马地以光速安装它。毕竟,我是一名伟大的程序员,对整个系统的知识范围不断扩大。我很擅长帮助其他开发人员解决他们的问题。这就是我被提升为领队的原因,对吧?(有点。)。

一开始,团队中的一些人实际上很喜欢它。他们承认我把手弄脏了,乐于助人,乐于助人。

但团队中的一些人不喜欢这样。它给人的印象是控制欲强。那些喜欢它的人最初不再喜欢它,因为他们一遍又一遍地犯同样的错误,而且没有好转。我们较弱的DEVE仍然很弱,而我们较强的DEVE没有增长。

有更多的错误。比如,我等了太久才解雇一个糟糕的开发人员,他的负面行为伤害了团队。

我相信做一名领导者是一段永无止境的旅程。总是有更多的东西要学。谢天谢地,我有很棒的导师教会了我很多东西。我也从艰苦的道路上学到了一些教训。

残酷的讽刺是,强大的个人开发技能和开发团队领导技能之间存在着相反的联系。最强大的开发人员在作为经理开始时将会有更多的艰苦战斗。

作为开发团队的领导,我们面临的75%的问题都不是技术问题。这份工作主要是关于人和流程的。一旦我意识到这一点,对我来说一切都改变了。

我可以修复代码库中的任何东西。我很擅长找到创造性的解决方案来解决其他开发人员遇到的问题。不仅这些技能已经不再是超级重要的技能,而且伟大的开发人员还有其他一些特质实际上可能会伤害到你作为管理者的能力:

超人情结。如果团队有技术问题(bug、技术拦截器),伟大的开发人员通常会本能地立即介入并修复它。事实上,当我作为一名开发人员这样做的时候,我得到了同事和领导的称赞,因为我是一个伟大的团队合作伙伴。作为一名经理,当你这样做的时候,你就是一个团队成员的对立面。

相反,我们需要使我们的人民能够解决问题。即使第一次需要更长的时间。即使他们犯了错误。即使他们做得不好,我们也会做的。

通过帮助你的团队弄清楚这一点,而不是为他们做这件事,你会得到很多好处。你的人民会看到你信任他们。他们会学到更多。随着时间的推移,他们会变得更加自给自足。他们还将学会互相帮助,这将使团队更紧密地团结在一起。

专业提示:不惜一切代价避免评判。当你的员工自由地走出他们的舒适区,不怕批评地犯错误时,你会看到他们真正的创造力显现出来,你会对他们的能力感到惊讶。

专业提示:你可以通过教育你的员工了解你的思维过程来调整自己。帮助他们理解为什么你的直觉在一个问题上起作用。解释您诊断问题的流程。解释你识别修复选项的心智模型。解释您将如何与团队其他成员沟通所有事情。深度聚焦。作为一名经理,另一项技能对我没有很好的帮助,那就是深度专注。作为一名开发人员,你必须进入这个区域。我善于锁定并将我所有的精力集中在一个单一的问题上。这会让你作为开发团队的领导送命的。

伟大的领导者欣然接受情境切换。他们四处走动。他们和很多人交谈。如果你发现自己被一个技术问题困了几个小时,这可能是你需要更多委派的信号。

当你确实有充分的专注时间时,用它来思考战略计划。比如如何向高管团队提出下一笔重大的非功能性投资,或者介绍下三名开发人员的情况。

伟大的魔法师有伟大的本能。你的直觉,来自你的经验,你对系统的广博知识,以及你对端到端过程的理解,让你甚至在你能准确地指出事情是什么之前就能感觉到事情。当您在代码中沿着错误的路径前进时,您会感觉到。当您的团队迭代落后于计划时,您会感觉到这一点。

继续磨练这些本能。只是不要像以前那样对他们采取行动。

你现在更需要你的敏锐嗅觉来找出别人什么时候需要帮助:

但如果我们不像蜘蛛侠那样跳进水里去拯救世界,那会怎样?

(超人?蜘蛛侠?拿定主意吧,伙计!我知道呀。事实上,死侍是我最喜欢的超级英雄。你问的关于工程领导力最好的死侍名言是什么?“房子被炸毁会塑造人的性格。”)。

首先,深呼吸。我处理事情的速度很快,但作为一名经理,这可能是一个不利因素。保持倾听,花更多的时间去处理。

如果你没有听到足够的信息,可以问一些问题。在你提供任何建议之前,尽可能多地收集信息。有时,仅仅提出正确的问题就可以帮助您的开发人员以一种新的方式思考问题,并提出自己的解决方案。

专业提示:单口相声是一个特别有用的时间,用来倾听可能有点离谱的东西。如果我担心有人没有走上正轨,这些问题总是帮助我弄清楚是否需要更深入地挖掘:

(填写依赖于此工作的开发人员或团队)是否对此进行了审查?

3.多沟通“为什么”而不是“做什么”和“怎么做”。

作为开发人员,我们习惯于处理什么以及如何处理。作为开发经理,这些仍然是相关的,但对我们来说,更重要的是关注其中的原因。

客户一致性:产品经理希望提供清楚解释客户问题和用例的故事。但对于开发人员来说,进入杂草中仍然是很容易的。如果您不断提醒您的团队回到问题和用户体验上来,您将更频繁地交付更高质量的产品。

专业提示:当开发人员停滞不前时,我想问的另一个问题是:“您能描述一下您的用户在使用此功能之前、期间和之后要做什么吗?”如果他们不能,他们需要更多的信息。

专业提示:鼓励您的开发人员听取客户支持电话和销售前景电话。根据我的经验,很多团队说他们会这样做,但他们没有这样做。在LinearB,我们有一个规则(由团队投票决定),每个开发人员每个月至少参加两次客户电话会议。

代码是确定性的。你让它做点什么。它做到了。如果代码做了错误的事情,您只需修复它,它就会做正确的事情。作为开发人员,这就是我们的大脑是如何连接的。

但这不是人们的工作方式!你不能告诉他们该怎么做。它不起作用。总有一天你会得到一样东西。第二天你可能会得到完全不同的东西。

与人打交道,你所能做的就是为他们的成功做好准备,并相信他们会做正确的事情。如果你有很棒的开发人员为你工作,你能做的最好的事情就是给他们一条清晰的道路,给他们让路。

作为一名经理,我知道如果我解除了对我的团队的阻碍,我就是在明智地利用我的时间。每周都会有三种类型的阻滞剂出现:

技术人员:我们对这件事了如指掌。尽量避免自己拯救世界。你最好授权他们自己去解决它,或者互相帮助去解决它。

依赖性:我们也习惯于处理这个问题,但现在我们可以更好地预测何时会出现问题。我们可以利用我们对整个团队和其他团队正在发生的事情的可见性来预测问题,并尽早开始沟通。

优先顺序:在我担任领导一段时间后,我发现我的团队错过迭代的首要原因是,要么是我的开发人员没有真正理解他们的首要任务是什么,要么是他们知道这是什么,但他们仍然在忙于其他事情。这是一个沉默的杀手。最后,我整个星期都把大量时间集中在确保每个开发人员都在做能帮助我们按时交付迭代的最重要的事情上。

专业提示:与其在日常生活中花时间谈论状态更新,这很容易成为一条松懈的信息,不如考虑一下优先事项。给你的开发人员一个机会,让他们说出他们的首要任务是什么,如果有什么事情让他们放弃工作的话。我敢打赌,您将看到您的团队的参与度达到了一个新的水平,并且您将更频繁地按时交付迭代。

LinearB打造了未来的立式仪表盘。运行数据驱动的每日脱口秀节目,重点放在团队交付上。很容易理解团队在哪里受阻,以及如何提供帮助。现在就去拿。对开发团队免费。

说到优先级…。作为一名开发人员,您确实会被要求进行大量更新。作为一名开发团队负责人,我发现状态更新请求增加了10倍。

确定优先事项和对业务做出估计的过程至少占用了我一半的时间。我发现这是一个有趣的谜题,我很享受在它上面工作。

关于如何估算的文章已经写了很多,所以我现在不打算详细讨论。但我会分享我学到的一些小贴士:

当谈到评估时,要诚实,不要玩游戏。不要告诉他们他们想听的话。如果你的公司说“我相信你能做得更快”,那就坚持你的立场。如果你不这样做,它会追上你的。

尽可能多地倾听你自己的开发人员的意见。尝试对他们的非功能性请求进行优先排序,因为最终,这些项目将使您能够提供更多其他人想要的东西。同样,你会从CEO和其他领导那里得到很大的压力,要求他们把重点放在客户功能上。使用数据向他们展示,如果您现在执行不起作用的功能,以后您将交付两倍的功能。

与你的产品领导交朋友,教育他们你想要的非功能性工作如何帮助他们更快地得到他们想要的东西。如果你在产品管理方面有统一战线,你就更有可能说服别人。

当我们升职时,我们的圈子会扩大3-5倍。我们习惯于与我们团队中的开发人员合作,我们的产品负责人,有时还会与其他团队中的一些开发人员合作。

突然之间,我们定期与所有其他开发经理、他们的许多开发人员以及产品、技术支持、销售和人力资源部门的所有领导进行交流。更不用说我们部门的高层领导了。

这些关系真的很重要。没有他们的帮助,你的新工作就不会成功,没有他们的赞助,你肯定不会晋升到下一个级别。所以在这些人身上投资吧。了解对他们来说什么是重要的,并不遗余力地让他们的生活变得更容易。

例如,与销售团队一起,询问他们什么可以帮助他们的演示更好地运行,并在您的下一次黑客马拉松中为他们做一些事情。

你的新老板(总监、副总裁或首席技术官)关心的事情与你担任开发人员时不同。他们可能会更加关注数据和指标,因为这是他们的老板所关心的全部。那就把它给他们吧。

这就是我创办LinearB的原因。在CloudLock,我们缺乏一套清晰的指标来向企业传达工程进度。问题总是“我们是否在按计划在截止日期前交付特性XYZ?”

如果您不确定应该共享哪些指标,我将此指南与LinearB现在用来跟踪和沟通开发团队绩效的17个指标放在一起。

我们自动连接和分析来自Git和Jira的数据,为您提供仪表板,您可以在日常站立表演、复古以及与老板沟通时使用仪表盘。因此,您不必经常窃听开发人员的状态更新。马上叫LinearB来。对开发团队免费。

我喜欢做开发团队的领队。这种满足感不再像你直接建造东西时那样是瞬间的。但是帮助其他人发挥他们的潜力感觉真的很好。看着他们成长。你现在是公司里最有权势的职位之一。这是一个完美的地方,不仅可以在战术上实现目标,还可以影响战略。

我在CloudLock的小团队成了一股强大的力量。我们构建了数以千计的安全专业人员每天都在使用的功能。我们帮助带领公司自下而上走向成功。这些开发人员中的许多人后来成为了建筑师、经理和董事。

两年后,我被提升为主任。然后再来,工程部副总裁。我渴望进步,渴望经历新的挑战。但我总是深情地回想起那些年。作为一名开发领导,你的职位越高,就越孤独。

我怀念和团队一起解决问题的日子。为了赶在最后期限前完成任务,他们并肩工作到深夜。内部笑话。没有什么比得上一个小而紧密的团队了。