《Software Engineering at Google》摘抄(5)

by kevin 2. 九月 2022 14:24 >

In nascent teams, both roles will sometimes be filled by the same person: a Tech Lead Manager (TLM). On larger teams, an experienced people manager will step in to take on the management role while a senior engineer with extensive experience will step into the tech lead role. Even though manager and tech lead each play an important part in the growth and productivity of an engineering team, the people skills required to succeed in each role are wildly different.(在新生团队中,这两个角色有时会由同一个人担任:技术主管经理(TLM)。在较大的团队中,有经验的人事经理将介入管理角色,而具有丰富经验的高级工程师将进入技术负责人的角色。尽管经理和技术负责人在工程团队的成长和生产效率方面都发挥着重要作用,但在每个角色中取得成功所需的人际关系技能却大不相同。)

Many companies bring in trained people managers who might know little to nothing about software engineering to run their engineering teams. Google decided early on, however, that its software engineering managers should have an engineering background. This meant hiring experienced managers who used to be software engineers, or training software engineers to be managers (more on this later).(许多公司引进了训练有素的人事经理,他们可能对软件工程知之甚少,甚至一无所知来管理工程团队。然而,谷歌很早就决定,其软件工程经理应该有工程背景。这意味着雇用曾经是软件工程师的有经验的经理,或者培训软件工程师成为经理(后面会有更多介绍)。)

The tech lead (TL) of a team—who will often report to the manager of that team—is responsible for (surprise!) the technical aspects of the product, including technology decisions and choices, architecture, priorities, velocity, and general project management (although on larger teams they might have program managers helping out with this). The TL will usually work hand in hand with the engineering manager to ensure that the team is adequately staffed for their product and that engineers are set to work on tasks that best match their skill sets and skill levels. Most TLs are also individual contributors, which often forces them to choose between doing something quickly themselves or delegating it to a team member to do (sometimes) more slowly. The latter is most often the correct decision for the TL as they grow the size and capability of their team.(团队的技术负责人(TL)通常会向该团队的经理汇报,负责产品的技术方面,包括技术决策和选择、架构、优先级、速度和总体项目管理(尽管在较大的团队中,他们可能会有项目经理帮助处理这个问题)。TL通常会与工程经理携手合作,以确保团队有足够的人员来完成他们的产品,并确保工程师被安排在最符合他们技能组合和技能水平的任务上工作。大多数TL也是个人贡献者,这往往迫使他们在自己快速做某事或委托团队成员做(有时)更慢的事之间做出选择。对于TL来说,随着团队规模和能力的增长,后者通常是正确的决策。)

Another difference that takes getting used to is that the things we do as managers typically pay off over a longer timeline.( 另一个需要适应的差异是,我们作为管理者所做的事情通常会在更长的时间后才得到回报。)

There seems to be a sort of disease that strikes managers in which they forget about all the awful things their managers did to them and suddenly begin doing these same things to “manage” the people that report to them. The symptoms of this disease include, but are by no means limited to, micromanaging, ignoring low performers, and hiring pushovers. Without prompt treatment, this disease can kill an entire team. The best advice I received when I first became a manager at Google was from Steve Vinter, an engineering director at the time. He said, “Above all, resist the urge to manage.” One of the greatest urges of the newly minted manager is to actively “manage” their employees because that’s what a manager does, right? This typically has disastrous consequences.(似乎有一种疾病袭扰了经理们,他们忘记了他们的经理对他们所做的所有可怕的事情,突然开始做同样的事情来 "管理 "向他们汇报的人。这种疾病的症状包括,但不限于,微观管理(事必躬亲),忽视低绩效员工,以及使用推卸责任者。如果不及时治疗,这种疾病可以杀死整个团队。当我第一次在谷歌成为经理时,我得到的最好的建议是来自当时的工程总监史蒂夫·温特。他说:"首先,要抵制管人的冲动"。新上任的经理人最大的冲动之一就是积极 "管理 "他们的员工,因为这就是经理的工作,对吗?这通常会带来灾难性的后果。

The cure for the “management” disease is a liberal application of “servant leadership,” which is a nice way of saying the most important thing you can do as a leader is to serve your team, much like a butler or majordomo tends to the health and well-being of a household. As a servant leader, you should strive to create an atmosphere of humility, respect, and trust. This might mean removing bureaucratic obstacles that a team member can’t remove by themselves, helping a team achieve consensus, or even buying dinner for the team when they’re working late at the office. The servant leader fills in the cracks to smooth the way for their team and advises them when necessary, but still isn’t afraid of getting their hands dirty. The only managing that a servant leader does is to manage both the technical and social health of the team; as tempting as it might be to focus on purely the technical health of the team, the social health of the team is just as important (but often infinitely more difficult to manage).(“管理”疾病的治疗方法是“服务型领导”的自由运用这是一个很好的做法,作为一个领导者,你能做的最重要的事情就是为你的团队服务,就像一个管家或大管家关心一个家庭的健康和福祉一样。作为一个服务型领导者,你应该努力营造一种谦逊、尊重和信任的氛围。这可能意味着消除团队成员自己无法消除的官僚主义障碍,帮助团队达成共识,甚至在团队在办公室工作到很晚的时候为他们买晚餐。服务型领导会填补缝隙,为他们的团队铺平道路,必要时为他们提供建议,但仍然不怕弄脏自己的手。服务型领导所做的唯一管理就是管理团队的技术和社会健康;尽管单纯关注团队的技术健康可能很诱人,但团队的氛围健康也同样重要(但往往更难管理)。

Most people still use the title “manager” despite the fact that it’s often an anachronism. The title itself often encourages new managers to manage their reports. Managers can wind up acting like parents,[^4] and consequently employees react like children. To frame this in the context of humility, respect, and trust: if a manager makes it obvious that they trust their employee, the employee feels positive pressure to live up to that trust. It’s that simple. A good manager forges the way for a team, looking out for their safety and well-being, all while making sure their needs are met. If there’s one thing you remember from this chapter, make it this: Traditional managers worry about how to get things done, whereas great managers worry about what things get done (and trust their team to figure out how to do it).(大多数人仍然使用 "经理 "这个头衔,尽管它往往是一个不合时宜的头衔。这个头衔本身经常鼓励新经理撰写报告。经理们可能会表现得像父母一样,因此员工的反应也像孩子。从谦逊、尊重和信任的角度来看:如果经理明显地表示他们信任员工,那么员工就会感到有积极的压力,不辜负这种信任。就是这么简单。好的经理为团队开辟道路,关注他们的安全和福祉,同时确保他们的需求得到满足。如果你在本章中记住了一件事,那就是这个: 传统的经理担心的是如何把事情做好,而优秀的经理担心的是把什么事情做好(并相信他们的团队能想出办法来)。)

Instead, you should strive to hire people who are smarter than you and can replace you. This can be difficult because these very same people will challenge you on a regular basis (in addition to letting you know when you make a mistake). These very same people will also consistently impress you and make great things happen. They’ll be able to direct themselves to a much greater extent, and some will be eager to lead the team, as well. You shouldn’t see this as an attempt to usurp your power; instead, look at it as an opportunity for you to lead an additional team, investigate new opportunities, or even take a vacation without worrying about checking in on the team every day to make sure it’s getting its work done. It’s also a great chance to learn and grow—it’s a lot easier to expand your expertise when surrounded by people who are smarter than you.(相反,你应该努力雇用比你更聪明的人,并能取代你。这可能很困难,因为这些人也会定期挑战你(除了在你犯错时只有你自己知道)。这些人也会不断地给你留下深刻印象,并让伟大的事情出现。他们将能够在更大程度上指导自己,有些人也会渴望领导团队。你不应该把这看作是企图篡夺你的权力;相反,你应该把它看作是一个机会,让你领导一个额外的团队,找到新的机会,甚至休假,而不必担心每天都要检查团队,确保它完成工作。这也是一个学习和成长的好机会——当周围有比你更聪明的人时,拓展你的专业知识会容易得多。)

Ignoring low performers is not only a way to keep new high performers from joining your team, but it’s also a way to encourage existing high performers to leave. You eventually wind up with an entire team of low performers because they’re the only ones who can’t leave of their own volition. Lastly, you aren’t even doing the low performer any favors by keeping them on the team; often, someone who wouldn’t do well on your team could actually have plenty of impact somewhere else.(忽视低绩效员工不仅会阻碍新的高绩效员工加入你的团队,而且也会鼓励现有的高绩效员工离开。你最终会发现整个团队都是低绩效员工,因为他们是唯一不能主动离开的人。最后,你把低绩效员工留在团队中,甚至对他们没有任何好处;通常情况下,一个在你的团队中做得不好的人,实际上可以在其他地方产生很大的影响。)

It might feel terrible to do so at first, but as you deliberately drop so many balls, you’ll discover two amazing things. First, even if you don’t delegate that middle 60% of tasks, your subleaders often notice and pick them up automatically. Second, if something in that middle bucket is truly critical, it ends up coming back to you anyway, eventually migrating up into the top 20%. You simply need to trust that things below your top-20% threshold will either be taken care of or evolve appropriately. Meanwhile, because you’re focusing only on the critically important things, you’re able to scale your time and attention to cover your group’s ever-growing responsibilities.(最开始,这么做可能会感觉很可怕,但随着你故意丢掉这么多球,你将会发现两件令人惊奇的事。第一,即使你没有托管中间60%的事,你的下属领导者们通常会意识到并主动接住它们。第二,如果中间这堆球中有真正重要的事,它最终无论如何都会回到你这里,然后转换到顶部20%那堆球里。你只需相信在20%阈值下的事情最终都会被有人接管,或是在适当时候知会给适当的人。与此同时,因为你只关注最重要的事情,你可以花更多时间和注意力在承担你的团队不断增长的责任上。

Remember that you can lead a team and build consensus without being a close friend of your team (or a monumental hard-ass). Likewise, you can be a tough leader without tossing your existing friendships to the wind. We’ve found that having lunch with your team can be an effective way to stay socially connected to them without making them uncomfortable—this gives you a chance to have informal conversations outside the normal work environment.(请记住,你可以领导一个团队并建立共识,而不需要成为你团队的亲密朋友(或一个不折不扣的硬汉)。同样,你也可以成为一个强硬的领导者,而不把你现有的友谊扔到九霄云外。我们发现,与你的团队共进午餐是一种有效的方式,既能与他们保持社交联系,又不会让他们感到不舒服——这让你有机会在正常工作环境之外进行非正式的对话。)

Part of “losing the ego” is trust: you need to trust your team. That means respecting the abilities and prior accomplishments of the team members, even if they’re new to your team.(“丢失自负 "的一部分是信任:你需要信任你的团队。这意味着尊重团队成员的能力和先前的成就,即使他们是团队的新成员。)

If you’re not micromanaging your team, you can be pretty certain the folks working in the trenches know the details of their work better than you do. This means that although you might be the one driving the team to consensus and helping to set the direction, the nuts and bolts of how to accomplish your goals are best decided by the people who are putting the product together. This gives them not only a greater sense of ownership, but also a greater sense of accountability and responsibility for the success (or failure) of their product. If you have a good team and you let it set the bar for the quality and rate of its work, it will accomplish more than by you standing over team members with a carrot and a stick.(如果你没有对你的团队进行微观管理,你可以非常肯定,那些在基层工作的人比你更了解他们工作的细节。这意味着,尽管你可能是推动团队达成共识并帮助确定方向的人,但如何完成你的目标的具体细节最好是由正在制作产品的人决定。这不仅使他们有更大的主人翁意识,而且对他们产品的成功(或失败)也有更大的责任感和使命感。如果你有一个好的团队,并让它为其工作的质量和速度设定标准,它将比你拿着胡萝卜和大棒站在团队成员面前的成就更大。)

A simple way to visualize this effect is to see your company’s organization chart as a chain of gears, with the individual contributor as a tiny gear with just a few teeth all the way at one end, and each successive manager above them as another gear, ending with the CEO as the largest gear with many hundreds of teeth. This means that every time that individual’s “manager gear” (with maybe a few dozen teeth) makes a single revolution, the “individual’s gear” makes two or three revolutions. And the CEO can make a small movement and send the hapless employee, at the end of a chain of six or seven gears, spinning wildly! The farther you move up the chain, the faster you can set the gears below you spinning, whether or not you intend to.(将这种效应形象化的一个简单方法是将你公司的组织结构图看作是一个齿轮链,个人是一个很小的齿轮,只有几个齿,而他们之上的每个继任经理都是另一个齿轮,最后CEO是有数百颗牙的最大齿轮。这意味着个人的 "经理齿轮"(可能有几十个齿)每转一圈,"个人的齿轮 "就转两三圈。而首席执行官可以做一个小动作,让处于六、七个齿轮链末端的无助的员工疯狂地旋转!你越是往上走,就越是如此。你在链条上走得越远,你就能让你下面的齿轮转得越快,无论你是否打算这样做。)

This brings us to another Zen management trick: asking questions. When a team member asks you for advice, it’s usually pretty exciting because you’re finally getting the chance to fix something. That’s exactly what you did for years before moving into a leadership position, so you usually go leaping into solution mode, but that is the last place you should be. The person asking for advice typically doesn’t want you to solve their problem, but rather to help them solve it, and the easiest way to do this is to ask this person questions. This isn’t to say that you should replace yourself with a Magic 8 Ball, which would be maddening and unhelpful. Instead, you can apply some humility, respect, and trust and try to help the person solve the problem on their own by trying to refine and explore the problem. This will usually lead the employee to the answer,[^6] and it will be that person’s answer, which leads back to the ownership and responsibility we went over earlier in this chapter. Whether or not you have the answer, using this technique will almost always leave the employee with the impression that you did. Tricky, eh? Socrates would be proud of you.(这给我们带来了另一个管理自我技巧:问问题。当一个团队成员向你征求意见时,这通常是非常令人兴奋的,因为你终于有机会解决一些问题了。这正是你在进入领导岗位之前多年所做的事情,所以你通常会立即进入解决方案模式,但这是你最不应该做的。寻求建议的人通常不希望解决他们的问题,而是希望你能帮助他们解决问题,而最简单的方法就是向这个人提问。这并不是说你应该用 "魔力8球 "来代替你自己,那样做会让人发疯,而且没有帮助。相反,你可以运用一些谦逊、尊重和信任,通过尝试完善和探索问题,尝试帮助这个人自己解决这个问题。这通常会引导员工找到答案,而且这将是这个人的答案,这又回到了我们在本章前面所讲的所有权和责任。无论你是否有答案,使用这种技巧几乎总是会给员工留下你有答案的印象。很狡猾,是吗?苏格拉底会为你感到骄傲的。)

One of the most common things a team leader does is to build consensus. This might mean that you drive the process from start to finish, or you just give it a gentle push in the right direction to speed it up. Working to build team consensus is a leadership skill that is often used by unofficial leaders because it’s one way you can lead without any actual authority. If you have the authority, you can direct and dictate direction, but that’s less effective overall than building consensus.[^7] If your team is looking to move quickly, sometimes it will voluntarily concede authority and direction to one or more team leads. Even though this might look like a dictatorship or oligarchy, when it’s done voluntarily, it’s a form of consensus.(团队领导最常做的事情之一是建立共识。这可能意味着你从头到尾推动这个过程,或者你只是在正确的方向上轻轻地推动它以加速它。努力建立团队共识是一种领导技能,经常被非官方领导人使用,因为这是你可以在没有任何实际权力的情况下进行领导的一种方式。如果你有权力,你可以指挥和发号施令,但这在整体上不如建立共识有效。如果你的团队希望快速行动,有时会自愿将权力和方向让给一个或多个团队领导。尽管这可能看起来像独裁或寡头政治,但当它是自愿做的时候,它是一种共识的形式。)

Attempting to achieve 100% consensus can also be harmful. You need to be able to decide to proceed even if not everyone is on the same page or there is still some uncertainty.( 试图达成100%的共识也可能是有害的。你需要能够决定继续进行,即使不是每个人都在同一起跑线上,或者仍有一些不确定性。)

Much like the role of manager, most people don’t apply for the role of mentor—they usually become one when a leader is looking for someone to mentor a new team member. It doesn’t take a lot of formal education or preparation to be a mentor. Primarily, you need three things: experience with your team’s processes and systems, the ability to explain things to someone else, and the ability to gauge how much help your mentee needs. The last thing is probably the most important—giving your mentee enough information is what you’re supposed to be doing, but if you overexplain things or ramble on endlessly, your mentee will probably tune you out rather than politely tell you they got it.(与经理的角色一样,大多数人并不申请担任导师的角色——他们通常在领导寻找指导新团队成员的人时成为导师。要成为一名导师,不需要很多正式的教育或准备。主要来说,你需要三件事:对团队的流程和系统的经验,向别人解释事情的能力,以及衡量被指导者需要多少帮助的能力。最后一点可能是最重要的——向被指导者提供足够的信息是你应该做的,但是如果你说得太多或者没完没了,被指导者可能会把你拒之门外,而不是礼貌地告诉你他们明白了。)

This doesn’t mean that we’re assuming you are lying to your team, but it merits a mention because you’ll inevitably find yourself in a position in which you can’t tell your team something or, even worse, you need to tell everyone something they don’t want to hear. One manager we know tells new team members, “I won’t lie to you, but I will tell you when I can’t tell you something or if I just don’t know.”(这并不意味着我们假设你在对你的团队撒谎,但值得一提的是,你将不可避免地发现自己处于一种无法告诉团队的境地,或者更糟糕的是,你需要告诉每个人他们不想听的事情。我们认识的一位经理告诉新团队成员,“我不会对你们撒谎,但当我不能告诉你们一些事情或者我只是不知道的什么时候,可以告诉你们。”)

A good simple way to track your team’s happiness[^8] is to ask the team member at the end of each one-on-one meeting, “What do you need?” This simple question is a great way to wrap up and make sure each team member has what they need to be productive and happy, although you might need to carefully probe a bit to get details. If you ask this every time you have a one-on-one, you’ll find that eventually your team will remember this and sometimes even come to you with a laundry list of things it needs to make everyone’s job better.(跟踪你的团队幸福感的一个好的简单方法是在每次一对一的会议结束时问团队成员:"你需要什么?" 这个简单的问题是一个很好的总结方式,确保每个团队成员都有他们需要的东西,以提高工作效率和幸福感,尽管你可能需要仔细探究一下以获得细节。如果你在每次一对一会谈时都这样问,你会发现最终你的团队会记住这一点,有时甚至会带着一长串需要的东西来找你,以使每个人的工作变得更好。)

下面是谷歌在你担任领导职务时推荐的其他提示和窍门:

  • 委托,但要弄脏自己的手
    当从个人贡献者的角色转变为领导角色时,实现平衡是最难做到的事情之一。起初,你会倾向于自己做所有的工作,而在领导岗位上呆久了,很容易养成自己不做任何工作的习惯。如果你刚开始担任领导职务,你可能需要努力工作,把工作委托给团队中的其他工程师,即使他们完成这项工作所需的时间比你长很多。这不仅是你保持理智的一种方式,而且也是你的团队其他成员学习的方式。如果你已经领导了一段时间的团队,或者你接了一个新的团队,获得团队的尊重和了解他们的工作的最简单的方法之一就是弄脏你的手——通常是承担一个别人不愿意做的肮脏的任务。你可以有一份简历和一份一英里长的成就清单,但没有任何东西能让团队知道你有多熟练、有多谦逊(和谦逊),你喜欢跳进去做一些艰苦的工作。

  • 寻求继任者
    除非你想在余下的职业生涯中一直做着完全相同的工作,否则要设法寻找继任者。正如我们前面提到的,这从招聘过程开始:如果你想让你的团队成员取代你,你需要雇佣有能力取代你的人,我们通常总结说,你需要 "雇佣比你更聪明的人"。在你拥有能够胜任工作的团队成员之后,你需要给他们机会承担更多的责任或偶尔领导团队。如果你这样做,你会很快看到谁最有领导才能,以及谁想领导团队。请记住,有些人更愿意只做高绩效的个人,这也是可以的。我们一直对一些公司感到惊讶,这些公司把他们最优秀的工程师,违背他们的意愿,把这些工程师扔到管理岗位上。这通常会从你的团队中减少一名优秀的工程师,而增加一名不合格的经理。

  • 知道什么时候该掀起风波
    你会(不可避免且经常地)遇到一些困难的情况,在这些情况下,你身体里的每一个细胞都在对你大喊大叫,要求你什么都不要做。这可能是你团队中的工程师,他的技术能力达不到要求。它可能是那个在每辆火车前跳来跳去的人。它可能是每周工作30小时的无心的员工。"只要等一等,就会好起来的,"你会告诉自己。"它会自己解决的,"你会合理地解释。不要落入这个陷阱——这些是你需要掀起最大波澜的情况,你需要现在就掀起。这些问题很少会自己解决,你等待解决的时间越长,它们对团队其他成员的不利影响就越大,它们会让你彻夜思考。通过等待,你只是拖延了不可避免的事情,并在这个过程中造成难以言喻的损失。因此,要采取行动,而且要迅速行动。

  • 屏蔽团队免受混乱影响
    当你步入领导岗位时,你通常会发现,在你的团队之外是一个混乱和不确定(甚至是疯狂)的世界,而你在做个人贡献者时从未见过。当我在20世纪90年代第一次成为一名经理时(在回到个人贡献者之前),我对公司里发生的大量不确定性和组织混乱感到吃惊。我问另一位经理,是什么原因导致原本平静的公司突然出现这种动荡,另一位经理歇斯底里地笑我太天真了:混乱一直存在,但我以前的经理把我和我的团队其他成员都挡在外面。

  • 给你的团队提供空中掩护
    尽管让你的团队了解公司 "上面 "发生的事情很重要,但同样重要的是,你要保护他们不受很多不确定因素和轻率要求的影响,这些要求可能来自你的团队之外。尽可能多地与你的团队分享信息,但不要用那些极不可能真正影响到他们的组织的疯狂行为来分散他们的注意力。

  • 让你的团队知道他们什么时候做得好
    许多新的团队领导可能会陷入处理团队成员的缺点中,以至于他们忽略了经常提供积极的反馈。就像你让某人知道他们搞砸了一样,一定要让他们知道他们做得很好,而且一定要让他们(和团队其他成员)知道他们在球场里踢出了一个好成绩。

 

There are two types of motivation: extrinsic, which originates from outside forces (such as monetary compensation), and intrinsic, which comes from within. In his book Drive,[^10] Dan Pink explains that the way to make people the happiest and most productive isn’t to motivate them extrinsically (e.g., throw piles of cash at them); rather, you need to work to increase their intrinsic motivation. Dan claims you can increase intrinsic motivation by giving people three things: autonomy, mastery, and purpose.(有两种类型的动机:外部动机,来源于外部力量(如金钱补偿),和内部动机,来源于内部。丹-平克在他的书《驱动》中解释说,让人们成为最快乐、最有效率的人的方法不是外在地激励他们(例如,向他们扔大量现金);相反,你需要努力提高他们的内在动机。丹声称,你可以通过给人们三样东西来增加内在动机:自主性、掌控力和目标。)

分享到: 更多

打赏请我喝果汁咯

支付宝 微信

关于我

80后,单身,平庸的程序员。

喜欢看书,乐于交友,向往旅游。

遇建Kevin

FluentData交流群:477926269

Fluentdata