在上一篇文章中,我们谈到了技术领导力,这是Yelp软件工程师的成长路径之一。在这篇文章中,我们想分享更多关于工程管理的内容,这是一些软件工程师在行业中工作一段时间后选择的另一条道路。我们将从解释什么是工程管理(什么不是)开始,讨论我们的管理方法,并讨论它与工程的不同之处。我们还将讨论人们如何开始在Yelp的管理之路,以及我们如何帮助我们的管理团队在各自的角色上成长。

什么是工程经理?

在Yelp,每个工程经理都要对团队的整体健康状况、执行力和愿景负责。管理人员维护Yelp的文化和确保这是一个工作的好地方。我们期望管理者做出对公司最有利的决策,并把团队的利益置于自身利益之上。有时,这意味着把一个有趣的项目交给另一个装备更好的团队,或者在Yelp的另一个团队为准备好迎接新挑战的高级工程师找到一个职位。

我们管理团队中的每个人都是技术专家,都有从事这项工作的背景,无论是软件工程、信息技术、机器学习还是其他工作。这些背景知识使我们能够理解我们的团队在日常基础上所做的工作,理解他们所面临的挑战,并将构建和运行我们的产品及其基础设施所需的大部分决策委托给我们的团队。

对团队的健康负责是什么意思?

管理者要为他们的队友的动力、幸福和职业发展负责。管理者的首要任务是与团队中的每个人建立信任关系,通常是通过每周的一对一会议和每季度的职业规划讨论。如果有人感到兴奋或自豪,经理就会和他击掌庆祝。如果有人感到压力大、心烦意乱,或者没有照顾好自己,经理就会倾听和支持他们,首先帮助他们明确自己的感受。

我们依靠管理者将合适的机会与合适的人联系起来,除非你了解某人的兴趣、抱负和顾虑,否则你无法做到这一点。有些人可能想在公共演讲方面做得更好,所以你为他们找一个项目,让他们在其他团队中做很多演讲。或者他们可能有严重的社交焦虑症,所以你要确保他们必须要展示,或者你可以为他们寻找其他机会来建立自信和沟通技巧。当一个队友在他们的职业生涯中取得进展时,与他们一起寻找机会来满足他们个人成长和学习的愿望是很重要的。如果管理者想要了解每个团队成员对工作的热爱,他们需要建立信任和开放沟通的基础。

管理者会花很多时间倾听和关注,尤其是在与团队一对一的交谈中。我们希望在人们担心、受挫或陷入困境的时候陪伴他们。我们的目标不是解决他们所有的问题,但我们会提供我们的观点和反馈,提出问题,并与其他可以帮助他们的人联系。我们也想在那里与他们一起庆祝胜利,并确保他们的成长和成就得到认可。

经理在团队执行中扮演什么角色?

管理人员有责任确保团队拥有流程、规范和保障,使团队能够有效地运作,并使每个人都能尽其所能地工作。每个团队都有自己的个性和喜好,但团队总是需要包容才能有效。例如,Scrum团队的经理可能会自己执行sprint计划,或者他们可能会将这一责任委派给工程师,但在这两种情况下,他们都需要确保每个团队成员都感到参与其中并成为积极的贡献者。管理者总是在寻找帮助他们的团队提高执行力的方法,而最好的管理者能够让他们的团队有效地做到这一点。

当人们有一种能动性和自主性的时候,他们会把工作做得最好什么工作是如何它完成了。这通常需要经理委派大量的日常技术工作,比如实际构建和交付软件。尽管所有的经理都需要准备好挽起袖子在紧急情况下帮助团队,但重要的是我们要避免尝试做与团队相同的日常工作。写代码是很有趣的——我们中的一些人真的很想念它——但如果一个经理经常做拉请求,就会产生令人不安的问题:对他们的工作留下批评的反馈是否安全?经理不信任团队吗?这是团队人手不足的迹象吗?经理还能做些什么来帮助团队表现得更好吗?

这与更高级别的技术决策没有区别:如果工程团队能够自己处理具有挑战性的决策,而不是依赖他们的经理来做决定,那几乎总是更好的。我们是否应该从一个数据库平台转移到另一个?我们是不是该重写那个无人理解的古老模块了?我们的时间是花在提高应用速度上,还是花在重写应用框架以便更多团队可以并行工作上?当这些问题出现时,经理的工作不是去做决定而是围绕团队的决策制定结构,使用我们自己的经验来指导讨论,并保持事情向前发展。

作为前工程师,我们可能喜欢与技术问题作斗争,但作为管理人员,我们经常需要把自己的兴趣放在一边,编写和推动代码,以便更好地支持团队中的其他人。然而,我们确实严重依赖于我们的技术背景来引导对话,验证团队的方向和投资,支持团队成员的技术增长,并在此过程中提出正确的问题。

“愿景”仅仅是一个用来形容华丽演讲的华丽词吗?

管理人员将业务价值和工程项目之间的点连接起来。许多团队都有产品经理来识别商业机会,研究什么能给用户带来最大的价值。同时,工程师最熟悉产品当前的技术能力和弱点,以及哪些系统会产生技术债务,并且不能很容易地扩展或重用。工程经理促进持续的对话,使下一组技术投资与业务价值保持一致,无论是在当前状态下迭代功能或系统,还是在重构或重构上付出更大的努力。

管理者支持团队的一个关键方式就是提前计划。工程经理需要看到未来至少几个月,超越当前的积压,并确保团队为即将到来的事情做好准备。除了与其他工程团队密切合作外,我们还与产品运营、销售和客户成功团队合作,以了解业务的优先级,并帮助做出合理的权衡。我们试图在增量改进(投资回报可能很明确,但有限)和大赌注(不确定性更高,但潜在回报更大)之间取得健康的平衡。如果我们要下一个大赌注,我们会帮助团队将其分解成里程碑,以降低风险。

与此同时,每个工程团队都跟踪自己优先级的技术投资积压和工程机会;团队经理需要确保有足够的时间和预算让团队在backlog上取得有意义的进展。许多团队会在每个计划周期中分配时间来处理维护问题和小型重构。更大的技术投资是由错误和失败的模式以及开发人员的速度所驱动的。由于复杂性的积累、业务目标的漂移、系统流量的增加以及与系统交互的工程师数量的增加,对一个系统进行多年的迭代经常会导致支持它的困难。近年来,我们一直在工程级跟踪我们最大的技术投资,以确保团队知道它们是优先级。

对于每个工程经理来说,了解大局是很重要的,这样他们就可以与团队分享事情的进展情况以及如何将它们结合在一起。每个工程团队都有更多可能完成的工作,因此对于经理来说,促进不同领域的投资水平的对话是至关重要的。

把它们结合在一起

健康状况、执行力和愿景是相互关联的。一个工作与生活平衡良好的健康团队需要明确、一致的过程来区分问题并做出承诺。只有当团队相信他们的经理说:“这个决定由你来做”时,团队才有可能以协作的方式持续做出高质量的决策。一个每个工程师都能感受到动力和挑战的团队,需要一个能超前思考和预测下一步会发生什么的经理。

涉及所有这三个领域的一个例子是事件响应。多年来,我们在处理紧急事件方面做得越来越好,制定了协议,以确保工程师在事件发生时相互沟通和支持,然后讨论并编写后续行动项目(包括长期工程投资)的(无过错的)事后分析。在事件发生后,经理们会与那些利用个人时间来处理事件的工程师联系,并提供一些带薪休假来恢复。作为一个管理团队,我们优先考虑团队的自省,并留出持续改进的时间。

一个人如何成为经理?

有时工程师会表达对管理的兴趣,并与他们的领导团队一起探索管理;其他时候,我们会看到别人的潜力,并鼓励他们考虑。我们知道,有效的领导风格有很多不同,在某些情况下,需要多年的培训和鼓励工程师来尝试管理。为了确保我们对谁能成为经理持开放态度,我们继续为所有工程师开发领导力培训,而不仅仅是那些自我选择进入管理道路的人,我们要求所有经理与他们的IC3级报告进行更深层次的职业发展选择对话,因为这是我们通常看到的管理和技术领导职业道路之间的分支。

在任何情况下,我们只考虑那些已经展示了成为一个好经理所需的一些技能的工程师。这可以是指导团队中的其他工程师,帮助培训新员工。它可以是领导项目和跟踪团队活动。我们希望确保任何被考虑的管理人选都理解这个职位在Yelp的意义,并证明自己是Yelp价值观的榜样。

管理角色并不是无限的;它们通过团队成长、重组和(有时)离开而变得可用。这意味着,进入管理者的角色往往需要更换团队。我们认为这是健康的;它帮助新管理者避免试图管理团队的陷阱而且保持关键的技术贡献者之一。如果你是第一次学习管理人员,你必须能够专注于新的技能和挑战。如果它是一套新的系统,那比你作为工程师所做的要容易得多。

通过一些试验和错误,我们开发了一个我们称为“原型经理”的培训项目,帮助个人尝试管理角色,而不使其看起来不可逆转。我们想让他们接触这个角色,并获得领导层的信任,但仍然允许他们说:“我不喜欢。我宁愿继续写代码。”

作为原型经理,工程师与团队中的工程师进行一对一的交谈,并对团队的执行负责;薪酬规划和绩效评估仍然由团队经理处理。在接下来的几个月里,原型经理将从他们的团队和经理那里定期得到反馈,并将跟踪他们的进度,以达到我们的工程经理升级系统的第一级所设定的期望。

初级经理参加我们为经理开发的培训项目,详细介绍了我们的哲学、方法和工具集。他们还可以访问他们的新兴市场拥有的所有资源、文件和会议,因此他们可以尽可能快速和有效地学习。几个月后,原型经理和他们的经理决定是否继续前进,并使其正式。

一个人如何成长为一个经理?

每年都有大量关于管理的书籍出版,但管理者的成长主要来自于工作本身。你不太可能通过读一本书或参加一次培训,就能突然熟练地与一个即将疲惫不堪的人进行重要对话。一个拥有强大团队的复杂项目仍然没有按照计划运行的原因需要经验和实践。然而,我们有几个习惯和项目来支持新经理在工作中学习。

新上任的管理者从他们的同事那里获得了很多建议。主管们每周都会与同行管理人员小组举行会议,重点是知识分享和小组内的支持。每个与会者都为议程贡献了他们认为有用或有见解的书籍、文章或视频,但大多数讨论通常围绕着我们所说的“人物故事”。经理可以给小组带来有趣或有挑战性的情况,其他与会者会倾听、提问和提供建议。很多这样的故事都是关于指导、给予反馈或为特定的个人寻找机会。这些会议是绝对保密的;这样做的目的是为了让管理者获得如何帮助他们的团队和专业成长的建议。我们发现,这些会议在规模较小的情况下是最有效的,因为我们希望它们能创造一种安全和信任感,让每个经理都觉得他们可以从一个值得信任的同行圈子中寻求建议。

我们还在Yelp的所有工程经理中每月召开一次经理会议,这是一个信息分享会议,涵盖的主题包括我们的水平系统和薪酬计划的更新,工程团队的更新,以及经理们的演讲(例如,关于联盟关系)。这也提供了一个向高级管理人员提问的定期论坛。

多年来,我们已经开展了多个版本的管理培训,培养了一批新经理(那些刚接触管理或刚进入Yelp的人),并为他们的报告安排了一系列围绕决策、指导和职业发展等主题的课程。随着我们的进展,我们一直在努力使其与Yelp的整体管理和领导力培训更加一致,刷新内容,并确保它在全球工程办公室和分布式团队环境中可扩展。

最后,我们在早期实施了一个经理导师计划,发现经理们从与其他经理的会面中获得了很多好处。许多新上任的管理者发现自己在当前团队内外都有导师。

我们如何跟踪经理的职业发展?

我们的经理分级系统反映了工程调平系统,共享一组共有的五个维度:技术技能、所有权、业务洞察力、持续改进和领导力。我们希望大多数经理在这些不同的领域都是全面的。这些领域的进步通常与扩大范围的问责挂钩。高级管理人员倾向于处理更多模棱两可的问题,更多地考虑技术如何提供业务价值,指导和管理更多高级报告,管理预算和招聘计划。他们通过制定流程和结构来解决问题,在不断变化的业务环境中寻找改进的机会,并指导我们团队的增长和重组。

虽然其中一些领域是不言自明的,但我们在持续改进和领导力中有几个我们想强调的子维度:导师、福祉和社区。这些反映了我们作为一个团队的价值观,确保经理们在寻找机会帮助其他人成长,支持他们的团队,并建立牢固的关系。在更高的层次上,我们期望经理们建立和扩展维持Yelp工程的项目。

我需要成为一名经理来保持成长吗?

绝对不是!我们明白,管理职业与成为一名优秀的软件工程师是两条不同的道路,我们努力让这两条职业道路都充满成长机会。任何人都不应该被迫或被迫进入管理层以推进自己的职业生涯,因为他们会在一个自己不喜欢的职位上结束,而他们的团队也不会得到他们需要的支持。

虽然我们支持那些对产品管理和数据科学等其他职能有兴趣的工程师,但许多工程师选择在Yelp继续走技术职业道路。欲了解更多信息,请查看本系列的其他两篇博客文章:工程师的职业路径而且技术领导

建立Yelp的管理团队

我们两个人在Yelp有19年的管理经验。我们在Yelp招聘、指导和管理了许多经理,其中许多人是第一次担任管理职务。多年来,我们帮助定义和阐明了我们的管理文化。建立和支持这个团队是非常值得的。虽然我们知道管理道路并不适合每个人,但它在帮助团队有效地工作并共同定义和实现成功方面带来了许多挑战。当人们聚在一起构建软件时,很多事情都可能出错,而管理人员可以帮助团队克服各种各样的挑战,并庆祝个人和团队的成功。

我们的管理文化已经扩大到一个150多名经理的团队。在之前的一篇博文中,我们谈到了我们的职业成长框架,它是标准化职业对话和薪酬标准的有用工具。在我们的下一篇文章中,我们将讨论我们如何衡量和确保整个Yelp工程在职业发展中的薪酬公平和公平。

如果这一切对你来说都很好,并且你很想继续发展你的管理事业,我们正在招聘

这篇文章是关于我们如何在Yelp建立一个快乐、多元化和包容性的工程团队的系列文章的一部分,包括我们如何处理一路上的各种挑战,我们尝试了什么,什么有效,什么没有。

阅读本系列的其他文章:

回到博客