[译] 如果你不想走管理路线,程序员职涯要如何成长?

996 阅读8分钟


原文 : The Secret to Growing Your Engineering Career If You Don't Want to Manage

作者: Edmond Lau ,The Effective Engineer 作者。 Soft & Share 获作者授权翻译。

在你的一生中,持续待在软件工程师这个职位是一个好的职涯选择吗?或是你必须转换到管理职位以继续攀登工程生涯的阶梯?这就是最近在 Quora 上工程师想知道的事,并且这是一个重要的且值得解决的问题。特别是那些对于管理群众不会感到兴奋的人。

好消息是持续担任软件工程师的职位并且不用选择管理这个职位是一个很好的职涯选择。然而如果你想穿透所谓透明天花板的话,不要指望单凭多年的技术经验攀登职涯阶梯。以下是一个粗略的模型公式,你的职涯成就与你所创造的价值成正比

技术能力 + 经验 ≠ 影响力

在 Google 这样的公司,拥有超过 10 年以上经验的工程师经常会问为什么他们在职涯阶梯仍然只是一名资深软件工程师?在他/她们早些年工作职位晋升上似乎很快是发生什么事?为什么他们有些同侪会获得提拔?

这些工程师特别是那些不选择管理职位的工程师所犯的其中一个最大的错误-认为技术能力加上经验等同增加影响力。他们守住一个信念,如果他们持续做好工作,他们最后将会得到职位晋升的奖赏。这种心智模式是有缺陷的,原因有二

第一,你写程序和建构软件的技术能力随着时间维持在平稳状态(译注 :也等于是没有陡峭的成长状态)。当你第一次刚开始工作的时候,你经常会犯了技术上的错误。每一个小项目都具有学习机会以砥砺你的编程技能。随着时间进展,你在编程和软件设计上更加熟练并且很少犯错。所以你的早期职涯阶梯晋升是你早期技术学习反映的结果。过了 10 年以后,你还是会学习并且可能还会选择新的编程框架和语言-但是你的能力进展和提升是不会像第一年那样地引人注目。

第二,经验并不会直接转换成影响力。如果从现在开始算,10 或 20 年后,你还是在解决同样的扩展( scale )和规模( scope )的问题如同你今天正在处理的一样,那么你并没有增加你的能力去创造影响力。况且如果你无法创造更多的价值,为什么雇主愿意付给你更高的薪水相较于没有那方面经验的人?这个观察是独立于产业或是职业。

保持你正在做的事是很容易,舒适,甚至是有乐趣的- 而且它可以是一个合理的生活方式决定,如果你宁愿把精力花在别的地方 – 但是你也无法期待你的职涯会自己成长。重要的不是有多少年的经验,而是你创造创造了多少的价值。为了让你的职涯保持成长,你必须保持追寻新的方法去增加你的影响力。

管理只是一个杠杆点来增加你的影响力

转换到管理工作是一种方法 – 但不是唯一的方法- 对于在职涯有一个成功的发展而言。许多任务程师成为管理者,因为管理工作提供了一个明显的和明确的杠杆点来扩展你的影响力。当团队成长的时候是需要管理者的,并且有多年的技术开发经验对于在发展管理技能是一项很有用的资产。作为一名管理者,你对部属有影响力,而且还直接主导他们的工作-进一步说,如果你是一位好的管理者的话,你增加了每位团队成员所创造出来的价值。如果那个增加的价值的总和,超过了你以一位独立贡献者的角色所能创造的,你的职涯在总体上是向前进的。

然而管理并不是职涯成长的唯一途径,也不是每一位强大的工程师适合成为一位经理人。只要你能找到其他的优势来扩大你的影响,你的职涯将持续成长。在大多数大型公司里,技术还是扮演一个重要的角色,例如,Google、Facebook、Amazon、MicroSoft 等公司,除了管理职位,它们都有一个明确定义的技术职涯轨迹以认知其它存在的杠杆点。仍然有许多任务程师以攀爬这个阶梯成为一位最重要的工程师而奋斗。管理工作外的非传统路径需要更多的创造力,在管理工作外成功的工程师较少有可叙事的案例可以让我们可以在后面追随仿效。

所以不用成为一名经理人而且你的职涯还可以持续成长的秘密是什么?

关键的发现是,当你的技术编程能力可以在稳定状态( 译注:也等于是没有陡峭的成长状态),你的技术贡献影响力则不需要。用你的才能决定要将力气花在什么地方以将你的影响力最大化- 例如决定要写什么代码,建构什么软件,并解决其业务问题 – 这是没有界限的。这个才能从其他人区隔出了最有价值和性能的工程师。

所以当一位软件工程师要如何增长你的影响力而不用成为一位经理人?你可以识别并且解决商业的核心问题,或是你能够让你周围的人更有效率地解决这些商业核心问题。你的技术努力与商业价值并行让你的职涯得以成长。当你投入的时间可以直接转换成有意义且可度量的结果,当你的努力直接移动公司成长和营收指针,你的雇主有了诱因给予你更多的资源和弹性,所以你可以更快速完成更大的成果 (注一)

这里有一些基于我所知道的软件工程师范例,如何让你可以放大你的影响力且不用去担任管理职位(并且在一家新创公司不用担任共同创办人,这个职位通常是做管理工作):

  • 建构可以让你周围的工程团队产能倍增的工具和抽象层。例如,Jeff Dean,经由他对 Protocol Buffers,MapReduce,BigTable,Spanner和其它系统架构的贡献,已经让其他 Google 工程师超过一个重量等级的产出。这也是为什么 Google 设置了 Google 高级研究员的技术标准,基本上是为了 Jeff Dean,不用感到太意外。
  • 在软件或是其它工程团队的实验设计,开发具备足够的专业能力可供咨询,因为你的回馈意见有足够的价值而少花了几天或几周的工作,或是将关键的项目从失败转向成功。
  • 你在一个深入的技术领域成为专家,而这些是一个成长中的公司所需要的资源。例如,你成为一位机械学习专家然后在 Facebook 的新闻投放排行( news feed ranking ),在 Google 的广告排行,或是在 Airbnb 的搜索排行等公司的相关部门上班。你投入的项目直接转换成一家公司的成长与营收。
  • 你识别了一个关键的商业机会,也许是借由与业务和商业团队一起工作后看到这个机会,然后你成为公司内新创团队中的一份子去协助他们的需求并将产品做出来。
  • 你创建了到职和辅导新进人员的流程,并教导和训练其他的工程师,而且你让他们在团队中显著地增加更多的价值。
  • 你在一个紧密的招聘流程中扮演一个关键的角色,并且你帮助招募工程师且将雇用工程师项目结案。
  • 你为你的公司建设工程品牌的付出有很显著的贡献。例如,如果「多样性」是公司工程品牌强大的部分,在业界招聘人才时,你可以往「多样性」的状态前进。

这些都是如何增加你的影响力中的几个少数范例,但是可能达到的路径是没有极限的。要注意的是这些路径所没有提到的-建置软件为最后的目标- 更进一步说,它是帮助团队和商业成功的方式。

专注在你所创建最大的价值。你的职涯成功了并且成长也会随之而来。

文中注释

  1. One corollary is that if you work on a team or a company that isn’t growing, it will be more difficult for you to grow your own career because the value that you can create is limited. If you’re working on a dying product that loses the company money, how much value could you possibly be adding? This is why Sheryl Sandberg argues in Lean In why it’s so important to hop onto rocket ships when evaluating job offers

关于这篇文章作者

edmondlau-headshot-1-w400-54af35b37dcef5c8646f247dcd0e9ed570e6ea506a7a00d19c3e1880d3b1485f

Edmond 目前教导软件工程师和技术经理如何有效率的创建有意义的影响力。

他是 Quip 早期的软件工程师,曾经在 Quora、Google和 Ooyala 带领软件开发团队。

著作:The Effective Engineer

更多 Soft & Share 分享內容