在你的一生中,持续待在软件工程师这个职位是一个好的职涯选择吗?或是你必须转换到管理职位以继续攀登工程生涯的阶梯?这就是最近在 Quora 上工程师想知道的事,并且这是一个重要的且值得解决的问题。特别是那些对于管理群众不会感到兴奋的人。
好消息是持续担任软件工程师的职位并且不用选择管理这个职位是一个很好的职涯选择。然而如果你想穿透所谓透明天花板的话,不要指望单凭多年的技术经验攀登职涯阶梯。以下是一个粗略的模型公式, 你的职涯成就与你所创造的价值成正比 。
在 Google 这样的公司,拥有超过 10 年以上经验的工程师经常会问为什么他们在职涯阶梯仍然只是一名资深软件工程师?在他/她们早些年工作职位晋升上似乎很快是发生什么事?为什么他们有些同侪会获得提拔?
这些工程师特别是那些不选择管理职位的工程师所犯的其中一个最大的错误-认为技术能力加上经验等同增加影响力 。他们守住一个信念,如果他们持续做好工作,他们最后将会得到职位晋升的奖赏。这种心智模式是有缺陷的,原因有二
第一,你写程序和建构软件的技术能力随着时间维持在平稳状态(译注 :也等于是没有陡峭的成长状态)。当你第一次刚开始工作的时候,你经常会犯了技术上的错误。每一个小项目都具有学习机会以砥砺你的编程技能。随着时间进展,你在编程和软件设计上更加熟练并且很少犯错。所以你的早期职涯阶梯晋升是你早期技术学习反映的结果。过了 10 年以后,你还是会学习并且可能还会选择新的编程框架和语言-但是你的能力进展和提升是不会像第一年那样地引人注目。
第二,经验并不会直接转换成影响力。如果从现在开始算,10 或 20 年后,你还是在解决同样的扩展( scale )和规模( scope )的问题如同你今天正在处理的一样,那么你并没有增加你的能力去创造影响力。况且如果你无法创造更多的价值,为什么雇主愿意付给你更高的薪水相较于没有那方面经验的人?这个观察是独立于产业或是职业。
保持你正在做的事是很容易,舒适,甚至是有乐趣的- 而且它可以是一个合理的生活方式决定,如果你宁愿把精力花在别的地方 – 但是你也无法期待你的职涯会自己成长。 重要的不是有多少年的经验,而是你创造创造了多少的价值 。为了让你的职涯保持成长,你必须保持追寻新的方法去增加你的影响力。
转换到管理工作是一种方法 – 但不是唯一的方法- 对于在职涯有一个成功的发展而言。许多任务程师成为管理者,因为管理工作提供了一个明显的和明确的杠杆点来扩展你的影响力。当团队成长的时候是需要管理者的,并且有多年的技术开发经验对于在发展管理技能是一项很有用的资产。作为一名管理者,你对部属有影响力,而且还直接主导他们的工作-进一步说,如果你是一位好的管理者的话,你增加了每位团队成员所创造出来的价值。如果那个增加的价值的总和,超过了你以一位独立贡献者的角色所能创造的,你的职涯在总体上是向前进的。
然而管理并不是职涯成长的唯一途径,也不是每一位强大的工程师适合成为一位经理人。只要你能找到其他的优势来扩大你的影响,你的职涯将持续成长。在大多数大型公司里,技术还是扮演一个重要的角色,例如,Google、Facebook、Amazon、MicroSoft 等公司,除了管理职位,它们都有一个明确定义的技术职涯轨迹以认知其它存在的杠杆点。仍然有许多任务程师以攀爬这个阶梯成为一位最重要的工程师而奋斗。管理工作外的非传统路径需要更多的创造力,在管理工作外成功的工程师较少有可叙事的案例可以让我们可以在后面追随仿效。
关键的发现是,当你的技术编程能力可以在稳定状态( 译注:也等于是没有陡峭的成长状态),你的技术贡献影响力则不需要。用你的才能决定要将力气花在什么地方以将你的影响力最大化- 例如决定要写什么代码,建构什么软件,并解决其业务问题 – 这是没有界限的。这个才能从其他人区隔出了最有价值和性能的工程师。
所以当一位软件工程师要如何增长你的影响力而不用成为一位经理人?你可以识别并且解决商业的核心问题,或是你能够让你周围的人更有效率地解决这些商业核心问题。你的技术努力与商业价值并行让你的职涯得以成长。当你投入的时间可以直接转换成有意义且可度量的结果,当你的努力直接移动公司成长和营收指针,你的雇主有了诱因给予你更多的资源和弹性,所以你可以更快速完成更大的成果
这里有一些基于我所知道的软件工程师范例,如何让你可以放大你的影响力且不用去担任管理职位(并且在一家新创公司不用担任共同创办人,这个职位通常是做管理工作):
这些都是如何增加你的影响力中的几个少数范例,但是可能达到的路径是没有极限的。要注意的是这些路径所没有提到的-建置软件为最后的目标- 更进一步说,它是帮助团队和商业成功的方式。
专注在你所创建最大的价值。你的职涯成功了并且成长也会随之而来。