编者按:Raylene Yung曾先后在Facebook和Stripe任职工程技术及管理岗位,并且都经历了这两家企业快速扩张、发展的阶段,这些经历让她收获良多。在本次采访中,Yung同我们分享了诸多看上去可能有些反常规的职业发展建议,并就工程职业生涯中每个阶段可能出现的具体问题展开了详细的介绍。这其中既有广泛适用的信息,也有针对不同职业阶段的针对性建议,无论是想要了解未来的职业道路发展情况的年轻工程师,还是面对日益棘手的技术和管理障碍而苦恼的管理者,都能从本文中找到答案。本文分上、下两篇,上篇主要探讨了一些普遍适用的信息并针对工程技术岗位个体贡献者给出了建议,下篇则是专门面向走工程管理路线的人群。原文发表自First Round Review,原文标题“The Engineer’s Guide to Career Growth — Advice from My Time at Stripe and Facebook”。
对于自己走的工程管理这条职业发展道路,Raylene Yung总是喜欢说从某些角度来看自己走的算是平稳,但从另外一些角度来看,这又是一条处处充满挑战的曲折之路。她最初担任工程经理这一职位是2011年,在Facebook,用她的话说当时负责的是一个很小的团队,“包括我在内,一共只有三个人。日常工作其实跟以往没有什么不同,我还是整日研究代码,只是另外要学习如何招聘人才,如何与团队成员进行1对1谈话。”
然后疯狂的旅程便开始了。Yung的团队从三人扩大到三十人,甚至更大的规模,她也不得不全身心投入管理工作,她的关注重点也从审查代码转移到如何达成公司下发指标以及创建多个办公团队。到2015年离开Facebook时,Yung已经是一家拥有一万多名员工的上市公司中最年轻的一位工程总监了,而回望最初的职业起点,她只不过是一位进入七百人规模初创企业的普通毕业生。
之后,Yung选择加入Stripe,开始了另外一种全新的挑战,“我想看看自己是否具备在一个完全不同的环境中同样能成为优秀领导者的资质。”她在Stripe近四年的时间里,也见证了公司规模从200人扩大到1500多人的转变,她创建了产品管理团队、确定了公司职业发展和招聘框架、运营了核心支付业务,并在新加坡创建了Stripe的全球工程服务中心。
在两次完全不同的初创企业发展旅途之中,她都曾担任要职,这也让Yung收获良多。在快速发展的初创企业领域任职十年之后,她离开了Stripe,开始分享自己这些年的经历以及所学到的知识,其中重点关注工程师职业发展这一主题。在本次采访中,Yung同我们分享了一系列可能看上去有些反常规的职业发展建议,这些都是她自己亲身经历所收获的教训及经验。她还深入探讨了为什么个体贡献者(IC)和管理不是两条平行的路径,而是互相交错穿插的存在。最后,她就工程职业生涯中每个阶段可能出现的具体问题展开了详细的介绍。
这其中既有广泛适用的信息内容,也有针对不同职业阶段的针对性建议,无论是想要了解未来的职业道路发展情况的年轻工程师,还是面对日益棘手的技术和管理障碍而苦恼的管理者,都能从本文中找到答案。
有一些基本的建议可以贯穿你的整个职业生涯,以下我们将要探讨的三个关键点可以说是工程职业发展各个不同阶段的基础性指导建议:
1、努力成为最有价值的,但不是“缺你不可”的。
我想很多人都很愿意被形容为是一个项目成功“不可或缺”的人物。但根据Yung自身的经验,她指出这对于工程师来说是很危险的一个说法。以她在Facebook的经历为例,她当时努力成为了发布权限方面的专家,但很快她便发现了成为关键人物的弊端所在。“当时我正在为自己第一次参加马拉松做准备,当时刚刚跑完了20英里训练,然后发现公司需要我去处理一个突发事件。我记得自己当时瘫坐在浴缸里,两只手都各拿着一大瓶佳得乐,面前是笔记本电脑。极度疲惫之后我正处于精神涣散状态,但却要努力打起精神应对这突发的工作状况。这种感觉很微妙,你能感觉到自己很重要,感觉到被需要,但当时我真的什么都不想做,只想休息。当时我便下定决心要尽快将我所掌握的技能传授给我的队友,这样即便没有我,他们也能解决突发问题。”
当你成为项目中不可或缺的人物时,你就需要在项目中发挥决定性作用,你就会成为决定项目成功或失败的那个人。对于领导层来说,我们在许多时候都会处于这样一个位置,但你没必要将自己架到这样一个位置上。
Yung指出:“当你不断提升自己的价值之后,你的角色对于团队对于整个项目都非常重要,但不要让自己成为应对紧急故障的唯一人选。优秀的工程师和管理人员善于最大程度发挥周围人的价值,即便他们不在也能帮助团队找到解决问题的答案。”
2、想成为一名成功的管理人员?先实现情绪平衡
我想大多数人都知道,强迫工程师进入管理领域完全就是一个错误。在这一点上,大多数工程师面临的挑战是他们并不确定这是否是他们想要承担的重任。尽管有时候你可能很快就可以晋升到管理岗位,但你一定要确保自己考虑清楚,并尽可能做好准备。
尽管这样说,但所有的准备工作也无法让你完全游刃有余地处理即将面对的情绪挑战。Yung说道:“作为个体贡献者,你看不到管理人员必须要去应对的整个大环境的起起落落,所以你很容易就会认为自己已经做好了准备,但其实这只是一个陷阱,而一旦你意识到自己其实并未做好准备就会陷入慌乱。”
为了帮助潜在的管理人员更好地了解他们进入管理岗位可能要面对的问题,Yung给出了下列这样一个图表,效果更为直观:
她解释道:“作为个体贡献者,你的工作通常相当于局部的登山运动。对于大多数的项目来说,你都可以保持稳步攀登前进的状态,直到无需再继续推进为止。也就是说你所处理的项目要么是可继续前进状态,要么是完成状态,或者也可能是出了点问题,项目取消或者是失败。但无论是哪一种结果,下一次你都是从零开始。”
但是工程管理人员会体验到上述图表中的负区域。Yung解释道:“作为个体贡献者,我有点完美主义倾向。但是成为管理人员之后,我花了很长时间才意识到不能再以完美主义的标准去解决问题。你必须接受各种各样的解决方案,而并不是只有一个完美的方案。”此外,成为管理人员之后,你可能就体会不到每一次进步所带来的成就感。“作为个体贡献者,只要你在一个项目上表现的不错,你就可以看到自己的进步,会获得一种成就感。但作为管理人员,你可能努力工作了一年多,但却看不到什么进展,许多时候这种成就感的获得时间段会拉长。”
以上这多种因素结合到一起很可能会让你陷入自己都无法预料、无法控制的低落情绪状态之中。Yung 说道:“你的情绪会出现大幅的波动,并且团队规模越大,在任何时间出现问题的可能性就越大,你的情绪峰值和低谷波动幅度也会越来越大。首先你要知道这是完全正常的现象,要接纳这样的情绪状态,然后尝试去平衡自己的情绪,这样你就不会轻易被击垮。”
经验丰富的管理人员之所以表现出色,部分原因就在于他们具有抵御风暴以及保持情绪稳定的能力。
Yung提醒道:“作为管理人员,你需要有意识培养自己进行情绪分区。面对队友或同事,你需要保持情绪稳定,波澜不惊,但是在你的内心,你可能正在经历狂波巨澜。这种时候,不要总是想着一个人去搞定这些情绪,我的一些好朋友和导师都是我脆弱时候寻求帮助的对象,是他们让我成为了更好的领导者。”
3、不要想着尽快往上爬,而是专注于每一阶段的成长和学习
尽管许多职业领域都非常看重晋升和职业发展等级,但Yung认为对于工程职业领域来说,这并不是最佳的发展方式。“因为工程技术领域与其他许多行业不同,管理并不是唯一的职业发展路径方向。在我看来,个体贡献者与工程管理并不是两条平行的阶梯,而是互相交错、穿插进行。我曾亲眼见过很多人在他们整个职业生涯中甚至在同一家公司里就在这些不同角色之间不断切换。”
许多工程师会太过于看重升职,甚至有些心急,总是会问“我怎样才能成为团队管理人员?”或者“我来公司已经一年了,下一步的发展方向是什么?”之类的问题。这些问题核心都是想更快地攀升职业阶梯,但这实际也是一条僵硬的发展道路,很可能会限制你未来的选择和灵活性。Yung建议工程师们在进入管理领域之前能认真地想清楚一些问题,深入了解自己想要的是什么,自己的动力到底来自于哪里。
我想对于年轻的工程师而言,最佳的职业建议就是:专注于学习,不必去担心职业路径或者是职位晋升。这样一来,无论你是个体贡献者、领域专家还是管理人员,随着时间的推移,你只会变得越来越优秀。
在接下来的部分,Yung指出了各个职业发展阶段最容易犯的一些错误并提供了针对性的建议。
从许多新毕业的学生还有一些后来才选择进入软件工程领域的求职者身上,我们能看到他们对于有所作为的强烈的渴望,能看到他们干劲十足、不甘于人后。但是,如果不正确地引导这些情绪,很有可能会造成意想不到的负面后果。以Yung在软件工程领域这么多年的实战经验来看,以下三个行为可能会导致早期软件工程从业人员偏离职业发展的正轨:
跳过基础工作或职位,过早扮演其他角色:“我发现有些人过早地就对工程领域基础工作失去了兴趣,一心想成为团队负责人或产品经理等角色。在职业生涯早期阶段夯实基础至关重要,无论你将来是想走什么发展路径,想从事什么职位,最开始都不要忽略基础工作的重要性。你的双手敲打键盘的那些努力,你所付出的那些时间,没有其他任何东西可以替代。”
过快地离开一个团队或公司:“作为一名招聘经理,我对以下说法的求职者持怀疑态度,‘我在X公司工作一年多了,已经学到了能学到的一切,因此是时候换一个工作环境了。’实际上,许多时候往往是你在一个地方工作几年之后才能找到解决自己所面临挑战的最有效解决方案。也就是说,许多时候你都忽略了继续当前工作所能带来的大量学习机会。”
追逐最新趋势:“我经常会听到一些新手工程师问这样的问题,‘我怎样才能在这里学到更多的酷炫新技术?’技术确实在不断发展,了解最新的框架和技术很重要,但以夯实基础技能为代价去追逐这些最新趋势弊大于利。”
编程框架来来去去,更迭变化,但是核心的编程基础技能却能经受住时间的考验。
Yung提出与其着急晋升、跳槽或者是追逐最新技术趋势,不如沉下心来思考以下两个战术性指导问题:
1、我该怎样才能保证每一个代码质量呢?
这看上去好像太过战术性,但对于软件工程来说,你提交的每一次作品都是基石般的存在。如果你能够通过每次代码审查来提升信心,那么你就可以进步地更快,也很快就能解决更大的挑战。相反,如果每一次的pull request都让你感觉痛苦,你也照样会犯一些常见的错误,那就很难在团队中树立起声誉。因此我给新来的应届毕业生最常说的一条建议就是,一定要在将你的代码提交给别人之前自己做好检查,争取发现自己的错误,并做好反思,不要再犯同样的错误。
2、我怎样才能做到和团队中的[这个人]一样擅长[X]?
Yung指出:“导师的形式有很多,我们身边其实一直都有导师价值的人存在,你所要做的就是发现他们最擅长的技能,然后尝试去向他们学习。就像我在研究生毕业进入软件工程领域之初,我遇到了两个经验比我丰富的队友。Adm有图形编码背景,他开会时总是一言不发,但写代码以及审查代码都很厉害。另一位队友Mark之前主攻产品和业务相关领域,他用在设计上的时间很少,但编码很快,并且能想到每一个边缘测试用例。我当时就想,我要像Adam一样擅长设计和代码审查,像Mark一样擅长产品,于是我尽可能多的找Adam帮我检查代码,而所有面向用户的设计审查我都会寻求Mark的意见。”
花上几年的时间掌握好了基础技能之后,工程师们就做好了继续前进的准备,可以进一步谋求高级工程师或技术主管一类的职位。但是这个时候,许多工程师往往急于实现自己的职位晋升,或者是想要转到管理方向。Yung建议在这种时候,不妨先让自己回答以下三个问题,看一下自己是否具备了足以支撑未来发展的技术能力:
我是否透彻掌握了我所打造的系统以及怎样去改善它们?Yung表示:“这不仅仅是要求你要掌握你所打造的系统或者是产品前前后后的详细内容,而且是说,比如你正在创建一些新的基础架构用于在一个国家推出你们的产品。那你现在不仅要考虑它的可维护性,还需要考虑好下一步。如果我们要在十个不同的国家推出这一产品该怎么办?如果是一百个国家呢?哪里会出现问题?当前的设计又该如何做出改变?让自己能够想到未来可能的各种场景,不仅可以强化你对当下、对此刻的了解,对于未来也具有战略性指导意义。”
我怎么知道我们正在做的是正确的事情?Yung表示:“要想做一名技术型主管,你不仅是要有未来视角,看到别人看不到的东西,能够通过精心设计、可扩展并且经过测试的解决方案来解决问题。除此之外,我认识的一些最优秀的技术主管还可以告诉你为什么他们现在所做的事情很重要,以及为什么要现在去做这些事情。当然,这并不是说你不能犯错,只是优秀的人知道在走错路的时候及时停下来。”
我怎样才能培养更好的领导能力?无论你将来是否想走管理路线,你都可以有意识地去培养自己的团队协调和人际交往能力,这将为你的职业生涯提供助益。Yung建议:“我们可以尝试从整体层面去看待项目,不仅仅是考虑到其中存在的技术挑战,也要考虑人员方面的问题,去思考谁在做什么工作,为什么让他去做,以及团队成员是如何协调一致进行合作等问题。为实习生和新团队成员提供指导,帮助经验不足的工程师成长。学会跨职能工作思维,将产品经理和合作伙伴看作是与你并肩作战的队友。如果你以后想走管理路线,这些尝试会帮助你提前了解自己是否会喜欢这样的职业路线转换。”
随着你在工程职业领域的不断进步,你很有可能会成为某个特定领域的专家。一些工程师也非常珍惜那些能够让自己成为深度领域专家的机会,尤其是让你长久的待在公司的某一个部门或者是某一个技术系统之中。但是,随着时间的推移,要确保自己是在不停地学习和成长。因为成为专家之后,你很有可能会觉得自己是“唯一能够胜任这一工作的人,你会变得自满,会倾向于依赖自己深厚的经验背景通过你已知正确的方式去解决问题。这种情况下,你就失去了成长的机会,更糟糕的是,你也放弃了去构建最佳解决方案的尝试。”
如果你在工程职业生涯中已经到达了这一阶段,那可以通过探索以下几个问题的答案来自省,以此确保自己的专业知识不会成为自己进一步提升的阻碍,也不会成为团队成员的阻碍:
如何让自己一直保持学习的态势,不断接受新的挑战?看看自己身上是否存在止步不前的迹象,然后尝试从其他人、其他团队或系统中寻找新的刺激因素来激励自己前进。Yung回想起自己以前的经历:“在Facebook从事隐私相关工作多年之后,我已经非常了解该如何去修复当下的基础架构,但是在如何才能做出更大的改善这一个问题上,我并没有什么好的想法。现在想起来,这是一个危险信号。但当时,由于自己的专业知识被需要甚至可以说必不可少,让我没能意识到自己的缺陷。直到后来我们与另一只采用完全不同方法的团队合并到一起,我才又找到了学习的感觉,这也促成了我们整个系统的彻底改造。”
如果我进入一个新的领域从头开始,我该如何继续证明自己的价值?有些时候,我们之所以没能继续前进是因为我们害怕如果做不同的事情就无法再达到当前的水平或者说地位。Yung分享道:“过渡的确需要一定的适应时间,但如果你本来就在一个领域内就是专家,那即便换一个领域,你也很可能会再次达到这一水平,并且由于你当前所具备的技能你往往能更快地掌握新技能,并且达到更为深入的研究程度。”
我该如何才能将我所掌握的知识传授给周围的人,如何才能制定一个未来可用的战略框架?成为领域专家之后,你需要思考怎样才能将自己所掌握的知识以更高的效率、更好的效果传递给更多的人。Yung进一步解释道:“如果你发现自己总是一次向一个人去解释某个问题,那你需要去找到一种更好的方法,例如开发解释文档、培训计划或者是可多次使用的组件和基础架构,以便于大规模共享知识。”
译者:aiko