从小白到高管,硅谷大佬深度解读工程师职业进阶之路
Raylene Yung总是喜欢说,她进入工程管理的道路在某些方面是渐进的,而在另一些方面,则是一个充满挑战的狂野之旅。2011年,她在Facebook工作,她把Facebook描述为一个小团队。“我所在的团队只有三个人,还包括我自己在内,”Yung说。“每天的生活并没有太大的不同。我仍在钻研代码,但同时也在学习如何招兵买马、并且保持一对一谈话的习惯。”
然后,疯狂的旅程就开始了。当她的团队从3个人扩大到30个人,甚至更多的时候,她不得不全身心投入。2015年,当Yung离开Facebook的时候,她已经是一家拥有1万多名员工的上市公司里最年轻的工程总监了。而她刚刚开始的时候,只是一家700人的创企里普普通通的一个路人甲。
加入Stripe后,Yung接受了一项不同寻常的挑战。在Stripe公司从200人发展到1500人的将近4年的时间里,Yung组建了产品管理团队、确定了Stripe的职业发展和招聘框架,她还负责核心支付业务,并在新加坡打造了Stripe的全球工程中心。
在两次截然不同的创业之旅中,她都站在前面,这让她明白了一个道理。Yung说:“个人成长与公司成长相辅相成。在Facebook,我努力尽可能多地向那些加入团队的有经验的领导者学习。在Stripe公司,我就是这样的领导者之一,我的任务是解决这个问题,并教导其他人。我必须从新的内部项目中学习,向同事和前任经理征求意见,寻求指导并在培训中不断学习。”
她将这门速成课程转化为文字内容,制作了Stripe的Atlas指南以扩展工程团队,此外还有她自己的工程团队手册(涵盖从一对一谈话到绩效评估的所有内容)。在爆炸式增长的初创公司工作了十年之后,Yung离开了Stripe,继续分享她学到的东西。
她希望将自己的注意力集中在一个特定的领域:工程师的职业发展。她说:“你听到的大多数建议都是关于快速前进的,而不是停下来吸收那些你能够吸收的一切。”在这次独家采访中,Yung与我们分享了一些她从过去的经历中学到的职场经验。她还深入探讨了为什么IC和管理轨道不是平行的阶梯,而是相互交织的步骤。最后,她谈到了在创业者在工程生涯的每个阶段可能出现的那些更加具体的障碍,以及在你可以将其作为内部检查标准的一些指导性问题。
有一些主题可以贯穿你的整个职业生涯,下面的3个经验是Yung在每个阶段的基础:
1. 努力做到最有价值,但最不挑剔
我们中的大多数人看待一个成功项目的经验时,总是会被所谓的“关键点”吸引。但以Yung的经验来看,这种习惯对于一个工程师来说是比较危险的。以她在Facebook工作时的经历为例。Yung巩固了自己作为公司发布许可专家的地位,但她很快就会发现作为关键人物的缺陷。
虽然你可能听过一句常见的工作格言“把自己从工作中解脱出来”,但Yung发现,这种说法过于简单化。对她来说,重要的不是让自己变得至关重要,而是让自己变得不那么挑剔。
当你对一个项目至关重要的时候,你在成功、失败或某件事的决策中起着决定性的作用。作为领导者和工程师,我们都处在这样的位置上。但你不能就傻傻地呆在那里。
Yung说:“最优秀的工程师和领导者善于增加价值,最大限度地利用身边的人,即使你不在他们身边,也能帮助团队看清周围的情况。”
2. 想成为一个成功的管理者?学会建立情绪平衡
到目前为止,对大多数人来说,强迫工程师进入管理层是一个错误。对于大多数工程师来说,他们面临的挑战是决定他们是否要承担这样的责任。Yung说:“尽管有时向管理层的转变很快就会发生,但要深入思考,并尽可能做好准备。太多的工程师一头扎进去,却没有探索出一个成为优秀领导者的好方法。”
“管理不适合胆小的人。虽然成为一名优秀的管理者真的很难,这回报是令人难以置信的。我已经决定要把我醒着的时间花在这上面,试图在这方面做得更好。”
尽管如此,世界上所有的准备工作都不会让你为即将到来的情感挑战做好准备。Yung说:“大多数时候,我就是这样指导新的经理的。作为一名IC,你无法全面了解经理们需要应对的所有起起落落,因此很容易陷入这样的陷阱:你以为自己已经准备好了,但一旦你意识到自己还没有准备好,你就会抓狂。”
Yung说:“作为一名个体贡献者,你的工作通常看起来就像一场爬山运动。对于大多数项目来说,你会稳步地取得进展,直到你没有进展为止。你要么完成了任务,可以继续前进,要么可能出了差错,你的项目被取消了,或者干脆失败了。无论哪种方式,你都可以在下次从零开始。”
但工程经理们却打开了负面区域。Yung说:“作为一个IC,我是一个完美主义者。我用白纸黑字思考,在设计系统时,需要详尽地列出所有的边界情况。作为一名经理,我花了很多时间才意识到,你不能用这种方式解决问题。人不是优化问题,你必须接受有一系列的解决方案,却没有一个真正的好答案。”
另一个观察结果是:进步和感觉不再紧密相关。作为一个个体贡献者,一般来说,当你在一个项目上做得很好的时候,你正在取得明显的进步。作为一名工程经理,你会在一年多的时间里努力工作,但在短期内看不到任何进展,也许在更长的时间内会得到巨大的回报。
所有这些加在一起会以你无法预测或控制的方式破坏你的情绪。你的情绪会剧烈波动。你的团队规模越大,在任何给定的时间,事情偏离正轨的可能性就越大。波峰和波谷会越来越大。你要做的第一步是意识到这是完全正常的。第二步是试图建立更多的平衡,这样你就不会那么容易被打倒。
经验丰富的管理者之所以伟大,部分原因在于他们能够经受住风暴,将自己的情绪正常化到接近于零的水平。
Yung提醒说,工程管理人员也容易患上她所说的分裂脑综合症(split-brain syndrome)。她说:“你会戴上面具。对你的队友或同事来说,你觉得有必要保持一个平稳的状态,但在你的内心深处,你正在经历剧烈的波动。不要试图自己一个人解决这个问题。我在工作上最亲密的朋友和导师中,有些人是我脆弱时的伙伴,他们帮助我成为更好的领导者。”
3. 专注于每一步的成长和学习,而不是尽可能快地往上爬
尽管很多行业都强调晋升和等级,但Yung并不认为这是工程师考虑职业生涯的最佳方式。她表示:“尽管很多公司已经在IC和工程管理轨道之间建立了一个‘平行’的晋升机制,我也帮助Stripe完成了这项任务,但我后来开始认为,这些工程角色更多的是沿着一对相互关联、常常相互交织的步骤前进的,而非平行的。”
“在Stripe和Facebook,我雇佣了几位以前是经理的IC,希望能从让自己暂时地从这个角色中解脱出来。他们都有一个共同点,那就是能够分解大问题并交付技术项目——每个人都看到了这一点,不管他们现在处于什么阶段。只有当你掌握了成为优秀团队和技术领导者的技能,才有可能实现职业灵活性。”
她说:“关键是要提出正确的问题,让你专注于成长和学习,而不是升职。我最好的队友总是不断地督促自己找出自己的弱点,系统地从错误中吸取教训,让自己变得更好。”
在接下来的内容中,Yung将带领我们回顾职业生涯中的每一个步骤,为我们提供量身定制的建议,概述那些容易犯的常见错误,以及工程师们应该提出的更有成效的问题。她以自己的经历为例,引导我们从早期工程师到过渡到管理,再到工程师所能担任的最复杂和高级的角色。
许多刚毕业的学生(或后来进入软件工程的人)都有强烈的渴望、动力、并且时常感到不耐烦。但Yung认为如果这种不耐烦的情绪,没有朝着正确的方向发展,可能会产生不好的后果。
根据她的经验,下面三个行为可能会使早期工程师偏离正轨:
“我看到人们过早地失去了对工程工作的关注,希望成为一名经理或转换到另一个角色,无论你最终想从事什么工作,在职业生涯的早期建立良好的基础都是至关重要的。不要一开始就匆匆忙忙地看完基本知识,没有什么能真正替代你花在键盘上的时间。”
“作为一名招聘经理,我对那些说‘我在X公司已经工作了一年多,我已经学到了所有我能学到的东西,是时候离开了’之类的话表示怀疑。有时候,最有趣的挑战在几年后才会变得容易应对,你可能会忽视在当前职位上获得的大量学习机会。最好的工程师是那些花时间深入了解一个系统或产品,并能将他们的经验应用到新问题上的人。”
“我听到很多早期工程师在问‘我如何才能更多地了解某某新技术?’,技术不断发展,虽然了解最新的框架和最佳实践很重要,但以提升基本技能为代价学习这一点是一个糟糕的权衡。无论是在Facebook还是Stripe,你都可以用你觉得最舒服的语言进行面试,因为你要明白如果你是一名优秀的工程师,你的技能将帮助你在需要的时候作出正确的选择。你也不需要过度索引那些新的技术,因为旧的也可以成为新的。例如,当Android平台刚推出时,没有人真正知道如何成为一名优秀的Android开发人员。产品团队实际上是从基础架构Java开发人员那里招募过来的,事实证明,并行和多线程应用程序的经验比Facebook主要web应用程序中使用的单线程异步请求模式更适用于Android。”
框架来了又走,但核心编程基础——思考边缘情况、调试、学习新语言的能力——才是经得起时间考验的。
与其规划未来的职能重心,一年之后跳槽,或者花太多时间在当前框架上,Yung建议倒不如问问自己以下两个战术指导性问题:
她说:“这可能看起来是超战术性的,但每一次提交都是软件工程中的一个构建块,如果你对每一次代码审查都建立信心,你就会更快地行动起来,迎接更大的挑战。相反,如果每一个拉请求都是一件苦差事,而你又继续犯常见的错误,那么你就很难在团队中建立信誉。我给刚毕业的工程师的一个最常见的实用建议是,在你提交代码给别人之前,一定要检查一下你自己的代码。抓住自己的错误,迅速学会不再犯同样的错误。”
Yung说:“你可以向他们学习的老师们有各种各样的形式,且总是在你身边——你要找出他们最擅长的,并努力吸收他们的超能力。”以她作为一名新毕业工程师的第一年为例:“我有两个队友,他们的经验比我丰富得多。Adam有图形背景,在会议上很安静,但是他写出了令人惊奇的代码和评论,他总是能发现我设计中的缺陷。Mark出身于一个注重产品和业务的企业。他花在设计上的时间更少,但他是一个非常快的程序员,能考虑到每一个边界情况。我想在设计和代码审查方面和Adam一样好,在产品审查方面和Mark一样好,所以我发誓让前者尽可能多地审查代码,让后者审查所有面向用户的更改。”
在掌握了几年的基础知识之后,工程师们已经准备好升职,获得高级工程师或技术主管等头衔。但正如她之前所提到的,以Yung的经验,工程师们往往急于进入下一个级别,或转入管理层。
相反,你应该关注下面三个与增长相关的问题,以确保你的技术有足够的领先优势来支持你未来的发展:
“这不仅仅是了解你所拥有的系统或产品的来龙去脉,假设你正在建设一些新的基础设施,用于在一个国家推出你的产品。你现在不仅需要考虑可维护性,还需要考虑下一步。如果我们需要在十个新的国家发布产品呢?一百个国家?你现在的设计会有什么变化?让自己思考各种各样的情景,不仅有助于加深对当下的理解,而且有助于从战略上把握未来。”
“作为一名技术领导者,不仅仅是要看到周围的角落,用设计良好、可扩展和测试良好的解决方案来解决问题。我认识的一些最好的技术领导者也能告诉你为什么他们正在做的事情很重要,为什么现在做很重要。但这并不意味着你总是能把事情做好,有些很棒的人发现走错了路就会停下来。”
不管你将来是否想成为一名经理,有很多方法可以帮助你建立团队和人际关系技能,这将有助于你的工程生涯。Yung说:“更全面地开始自己的项目,不仅要考虑技术挑战,还要考虑人员方面——了解谁在做什么,为什么做,以及人们如何在一起工作。通过指导实习生和新的团队成员,来帮助经验不足的工程师获得成长。跨职能工作,把你的项目经理和合作伙伴看作你的队友。如果你以后真的想成为一名经理,这将有助于让你更清楚地知道自己是否喜欢这个岗位。”
成为领域专家,仔细思考以确保你没有被困住
一些工程师很享受那些能够成为深度领域专家的机会,尤其是呆在公司或技术系统的某个部分中。但特别是随着时间的流逝,你需要检查一下,确保你仍然在成长和学习。Yung说:“如果你停止学习,你就会变得自满,依赖你深厚的背景来解决问题,用你‘知道’的方式来解决问题,因为你以前见过这种问题。这样一来,你不仅停止了增长,甚至更糟的是,你可能已经停止了继续前进寻求更好的步伐。”
随着你在工程领域的发展,你会成为某个领域的专家,并且觉得自己是“唯一”可以处理这个问题的人。这也许是真的,但是如果你筋疲力尽了,那就真的不值得——你可能低估了你的队友。
对管理人员的建议:如何更好地支持你的团队?
第一次当工程经理的人要面对一个陡峭的学习曲线,还要为团队树立一个好的技术榜样。最糟糕的是,你不能像编写代码那样以一种令人满意的客观方式来衡量你的新员工职责。一个很容易犯的错误就是试图通过坚持你的编码时间来解决这个问题,即使这意味着在你作为经理的“白天工作时间”结束后的晚上也要这样做。
相反,Yung建议要学会与这种转变和平共处。“感觉工作效率不高,技术工作的过度补偿可能会带来难以置信的压力。这可能会让你怀疑,向管理层过渡是否是一个错误。这些情绪可能会持续一段时间,但对它们采取行动是错误的。如果可以的话,至少坚持6个月到1年,然后再回头看看自己的感受。”
作为一名新的工程经理,与其担心自己的贡献,不如试着去问以下这些问题:
作为一名新上任的经理,你很容易被一些特定的挑战拖垮,或者为一些重大的胜利所鼓舞。但千万不要忽视团队的整体产出和健康状况。Yung说:“即使你的绩效评估结果很不错,也要努力保持一对一谈话,参加每一次新经理培训课程,如果你的团队还没有得到成果,你的影响力就会低于应有的水平。但同时也存在着过分强调结果、损害质量和团队健康的风险。你可能在做正确的事情,并推动指标的提高,但你随叫随到的轮换制会让工程师们筋疲力尽,并最终选择更换团队。关键是要对团队的各个方面进行投资,并保持平衡——即使某些变化在短期内可能会适得其反,比如减缓开发人员的效率和团队的幸福感,但随着时间的推移,它们会增加你的影响力。”
Yung说:“一位老经理人曾经告诉我,他可以通过估计自己离开多长时间内团队能正常运作,来大致衡量自己的经验水平。一开始是几天,然后可能是一周。最后,他可以延长到一个月,然后是几个月的陪产假。现在他渴望自己能离开一整年。我怀疑大多数公司实际上不会让你离开那么久,但这是一个对你自己有用的试金石。成长为一名管理者不仅要传授知识,还要建立正确的团队,填补空白。也许你有一个团队,给他们正确的任务,他们能比你预期的更快地完成任务,并要求完成更多的任务。但如果他们仍然依赖你来告诉他们下一个项目是什么,分解下一个项目,那么如果你想去度假,你就需要有人来帮忙。”
对领导层的建议:如何在未知领域进行管理?
Yung说:“与最初从个人贡献者到工程经理的转变很类似,转向管理多个团队或组织可能会让人觉得这是一份全新的工作。你会更容易陷入人员编制陷阱,因为增长的需要与团队中管理人员的数量密切相关。最重要的是,一旦你开始管理经理,你会很容易发现新经理无处不在。有时,你会很想选择那些不情愿的,令人难以置信的技术领导者,他们并不是真的想管理。”
当然,也有“战争时期”,当所有的手都在甲板上和战场过渡可能是必要的。但是要小心,容警告说。“在Stripe的早期,我将三名工程师转为管理层,因为我们需要立即的支持,而且还在加快招聘渠道。他们中的两个逐渐喜欢上了这个角色;第三个意识到他们在编码和提供技术领导时最快乐,于是又重新开始工作。“关键是要密切合作,培养新的管理者——确保他们睁大眼睛投入其中,有机会学习,同时也给他们换回的空间。如果让员工担任不合适的管理职务,你不仅有烧掉一些最有效率的团队成员的风险,而且还会阻止自己找到更好的人。”
当然,在“战争时期”,所有的人手都在“甲板”上,转移很可能是必要的。Yung说:“但要小心行事,在Stripe的早期,我把三名工程师调到了管理层,因为我们需要即时的支持,而且我们还在扩充招聘渠道。他们中的两个逐渐喜欢上了这个角色,但第三个人意识到,当他编写代码并提供技术领导时,他最开心,然后又转回来了。关键是密切合作,培养新的管理者——确保他们保持清醒,并有机会学习,但也要给他们回归的空间。把员工留在不适合的管理岗位上,不仅会让你的一些最有效率的团队成员筋疲力尽,还会让你无法找到更好的人。”
太多的领导者喜欢去说服那些不愿意留在公司的管理者,让他们承担责任。在关键时刻,这可能是必要的,但让不情愿的管理者在岗位上呆太久是一个代价高昂的错误。
团队领导层应通过提出以下问题来提升效率:
在高增长的公司中,重组是持续的,也是预期的。在水平、垂直、特定领域或特定用户/产品的矩阵型团队结构之间有一个长期的切换,这意味着组织领导往往会在他们的翼下形成一组完全不同的团队。如果做得不对,这可能会让人感觉像被鞭打一样,新组织感觉被随意地组织在一起,缺乏更广泛的目标。Yung说:“在Stripe的时候,我曾带领团队使用特定的工程学和产品技能构建应用程序,比如前端开发、ML和理解SaaS业务模型。
起初,它确实感觉像是一个与Stripe核心业务相去甚远的应用程序大杂烩,但在工作和迭代之后,我们将任务与两件事联系在一起:一是通过构建强大的功能来增强核心支付平台,这些功能可能不是每个用户都需要的,但对那些需要的用户来说是至关重要的;二是,作为新业务模式的管理者,随着时间的推移,这些功能可能会变得复杂,成为公司的主要驱动力。这有助于描绘一个更加连贯的愿景,让人们能够向自己和其他团队解释他们在做什么。”
如果你不能自信地回答为什么你的团队要团结在一起,或者你是否正在做正确的事情,那么你就不要害怕采取行动。你需要考虑更大的跨团队改进,也许某一个团队根本不应该存在,也许其他团队没有足够的人员来完成他们最重要的项目。寻求经理、同事和其他跨职能合作伙伴的帮助,以评估你的团队并做出改变。
Yung表示:“我喜欢从以下几个方面进行评估:人员(我在团队中是否拥有正确的技术人员和领导者?团队是否足够投入,员工是否获得了所需的发展和成长机会?),项目和目标(我们现在是不是在做有意义的事情?成员是否理解我们正在做的项目?)以及进展(我们是否在以正确的步伐投入时间和经历?无论是短期还是长期,什么最能加快我们的步伐?)”
了解堆栈和技术工作可以帮助你成为一名优秀的一线经理,了解你的经理和他们的团队如何日常运作可以帮助你成长为一名组织领导者。尽你所能地支持每个团队,不要回避收集第一手知识。学会在团队会议中成为一名观察者,在一对一谈话之外开展透明的交流。
Yung说:“但不要让收集信息把你带到太深的陷阱之中,你很容易陷入这样一个尴尬的境地:你在帮助调试本地团队问题,而不是做出有助于你的组织整体的改进。”你也可能会感到一种冲动,想要介入并指导向你汇报的团队。但现在,“问而不答”的态度比以往任何时候都重要,看看你的团队领导告诉你他们需要什么。通过提供他们没有的外部环境,并在更广、更高的层次上做出贡献,最大化你的价值。
组织领导力是关于支持、倾听和指导的,而不是亲力亲为的参与其中。你下面每一层的同事都比你更了解他们的日常挑战,所以你的干预是低投资回报率的。
推广:猎云银企贷,专注企业债权融资服务。比银行更懂你,比你更懂银行,详情咨询微信: zhangbiner870616 ,目前仅开通京津冀地区服务。