如何留住你最棒的程序员

开发 后端 项目管理
正因为我刚刚换了工作,因此最近谈论了许多关于为什么我决定这样做的事情,这并不令我惊讶。大概当某人离职时,不管是同事、经理、人力资源的人、朋友和家人都很想知道为什么。

变得沉着冷静

[[75092]]

正因为我刚刚换了工作,因此最近谈论了许多关于为什么我决定这样做的事情,这并不令我惊讶。大概当某人离职时,不管是同事、经理、人力资源的人、朋友和家 人都很想知道为什么。从我个人来讲,针对这个问题,我倾向于给出一个不那么令人满意的答案,比如“我需要一个职业发展的更好的机会”,或者“我就是觉得是 该改变的时候了”。这就是企业版的“不是因为你——是因为我。”当我给出这样的答案时,我并不是在耍手腕或者回避。给出这样的答案是因为,我也不知道确切 的答案。

不要误解我。不管你到哪里(或者离开哪里),总是有一大堆抱怨或者愤怒,而总会有一些人站出来说:“你觉得这样怎么样,在家穿着睡衣就能挣到两倍的钱,并 且做你能想象的最酷的工作?”或者你现在的老板会说:“我们会把你的薪水减半,强迫你做一些糟糕的枯燥乏味的工作,并且把你送到南极洲去做这些。”我有一 个确切的离开的理由,但是那相对于常规来讲是个例外,这很有可能。

作为一个平常习惯,我喜欢考察我做事的动机。我认为这是一个很好的检查,以便确保我现在神志清醒,而不是冲动或者幼稚。因此,我把这个习惯用到我对于下一 步的决定,而结果如本文所述。请注意,这是对于是什么让我思考出这些文字的一个引用解释;我把我对于自己处境的观点,概括为一个软件开发这的大池子。然 而,我并不是要说:“我是最棒的,而这就是某人怎么留住我的。”我觉得,我的编程天赋层次,与本文无关;我更愿意把自己想象成一个能干而又高产的开发者, 因为学习的热情而脱颖而出,并为我的工作而自豪。我不把我自己看成“摇滚巨星”,而我总是把这种妄自尊大的自我评价视作非高产的、病态的。

别人怎么想

我在过去几年在我喜欢的博客里读过一些的关于开发人员流动率主题的帖子,我认为这些帖子都为这个主题提供了一个绝妙的背景。我将列出的最早的一个是Bruce Webster写的,叫“大脑神经系统危机:死海效应”,他为我们无论是在意识和潜意识层次模模糊糊地知道的现象创造了一个很好的术语。“死海效应”是对一些组织倾向于太关注保留而无意中保留了平庸的人才的同时却流失了更好的人才的描述:

  • …到底发生了什么使得更有才华和效率的IT工程师是最可能离开的那些人 -如果你愿意也可以说消逝。他们是最不能容忍那些困扰大型组织的频繁做糊涂事和工作环境问题的人;他们也是最有可能有其他机会离开的人。
  • 往往留下的都是“残渣”---没有才华和效率的IT工程师。他们往往是感激于他们拥有的那份工作,对管理没有太多的诉求;即使他们发现工作环境不如意,却 依然是最不可能在其他地方找另一份工作的人。他们倾向于巩固自己,成为关键系统的维护专家,承担那些没有人愿意承担的责任,这样组织就无法让他们离开了。

Bruce描述了一个范式来说明有才华的人离开的原因经常是他们厌倦了那些在权威岗位(默认情况下)上却没有才华的人让他们做荒唐事。在精英管理的社会里里可以发现有一个关于等级秩序的真实反例, 这导致在一个功能失调的情况下有才华的人要么尽量避免要么尽快逃离。

Bruce的文章主要是从组织机构的角度阐述的;他提到为什么许多机构最后充斥着一群平庸的“高级开发人员”、负责人和经理人员,他们对有才能者因为上面 种种而离开表现得无动于衷。来自Daily WTF的Alex Papadimoulis更详细地阐述了有才能者离开的原因:

  • 几乎任何一个工种都有一个员工带给公司的综合价值峰值(生产力与成本的百分比)。我把这个峰值称作Value Apex(价值顶点)。 在最初,员工的有效价值为0。但是随着他对新环境的逐渐熟悉,他开始将他的技能和以往的经验应用到工作中,由此他的价值迅速攀升。在该员工逐渐掌握业务领 域知识和与同事分享自己观点的同时,价值将持续以指数形式增长。
  • 然而,一旦这个员工分享完了他的所有外部知识,学会了业务有关的所有东西,并且应用了他的所有经验,这种增长也就停止了。在那职位上的这个员工已经达到了他的极限。他到达了价值顶点。
  • 如果这个员工继续在那个职位上工作,他的价值将开始减少。曾经的“我们现在无法实现的新想法”变成了“一成不变的让人厌倦的陈旧建议,并且我们决不会那么做”。要么是以前的解决方案被草率地接受:“是的,我们以前做过这种项目”,又或者是 某个想法被粗暴地拒绝,理由是“那是五年前的事了,我们都听过那个故事”。这将导致自我实现的缺失,最终会逐步瓦解工作的动力(或激情)。
  • 有经验的开发者明白这点。越过价值顶点常常引发一种“是时候离开”的内在感觉,并且在此之后不久将不可避免导致对当前工作的愤恨和厌恶。没有任何东西(即使是一整支女按摩师团队)能够缓解这种失落情绪。
  • 另一方面,平庸者却有着稍微不同的价值变化曲线:价值收敛(Value Convergence,可以理解为价值趋于平衡)。他们最终适应了平庸的职位并且一直呆在那里。他们的价值没有下降的唯一原因归功于他们积累和创造的巨大数目的机构知识。

这与单纯的精英本末倒置而导致有本事的开发者离开不大一样,而且更有趣。Alex的解释是,顶级的程序员,只有在提供给他们价值、或者他们能够提供使其价 值持续增长的工作中,才会快乐。最优秀、最明智的人,不仅想要成长,同时还想感到他们正在变得越来越有价值并成为有价值的代名词,我的理解,这就是一个人 工作中的自豪感。

在几年后写的一篇标题为“厌倦的人退出”的文章中,Michael Lopp强调厌倦是开发者离开的先兆:

  • 根据我管理的人最终令人遗憾的离开上所反应的情况,后见之明使我能够指出人们开始转变的时刻。不管是一个被发现的微妙变化,还是一个他们表示厌倦的声明, 都明确的表示他们面前的工作不再有趣。而我却将我的观察力抛在脑后。我曾以为这是微不足道的。而他正在过着糟糕的一天。我以为事情会好转。而实际上,厌倦 只是一颗种子,它是“我厌倦了”的发展根基,之后变成“我厌倦了,为什么没人关心?”,之后发展成“我厌倦了,我对我的老板说了,而他……什么也没做”, 最后爆发为“我不想在一个不关心我是否厌倦的地方工作”。
  • 我把厌倦看成一个时钟。“我团队中有人厌倦了”的每一秒,都是这个时钟上流逝的一秒。把每个人的秒数加总之后,他们看了看时间,扔掉装备,然后退出了。

这其中的主要动机更集中在Alex的“提供给员工的价值”上,而不是“员工提供的价值”上,但是值得讨论的是,它两个都包括。厌倦暗示着开发者从事务中分 神了,因此他或者她感觉自己提供的价值降低了。但是,除了考虑“价值峰值”,厌倦的开发者有更多普遍的问题,比如还没结婚或者沉浸于他们一天天的工作当 中。

#p#

大体脉络是什么?

我将要抛开显而易见的离开原因,一些傻瓜都知道的问题,例如敌对的工作环境、低于市价的酬劳、利益/薪水的减少等等,而着眼于那些把天才开发者赶走的事情上。至此,我们已经从给出了三个离开动机的少数人那里,看到了一些非常引人关注的话:

  • 反派精英带来的挫折(“组织的愚蠢”)
  • 程序员与团队间工作的共同价值收益递减
  • 单纯的厌倦

对于这个列表,我将要加上更多的东西,这些东西在前文中提到了,或者我是从同事那里亲身听到或见到的:

  • 观察到当前的项目无效/注定伴随着组织的无能而失败,并阻止它发生
  • 缺少一位良师,或者能够从他那里学到东西的人
  • 推行关注时效,而不是利益
  • 提高没有明确的途径
  • 害怕被归类到没有市场价值的技术当中
  • 组织中繁文缛节的官僚作风,使得原本每个人都有的积极性销声匿迹
  • 缺少创新的自由,和创新的控制 (又名“微管理”)
  • 员工主体之间基本观念的差异

看着这个列表,这其中许多都是Bruce、Alex和Micheal给出的观点的具体实例,因此他们相对于主题并没有提高,尽管你也许点头认同它们并且想 要把你自己的一些观点添加到列表中去(而如果你有想要添加的,请自由评论)。但是,更有趣的是,他们几乎都因为对于自主性、控制和目标的愿望而衰败,包括 从相关文章中借鉴的。由于一些原因,请看这个来自RSA Animate的视频。这个视频看上去很伟大,但是如果你没有时间,它的主旨是人类不是被经济上的自我实现而驱动的(正如广为信任的那样),而是由这三个驱动因子所驱使的:掌控自己工作的愿望,在物质上有所改善的愿望,和在每周40个小时的工作之外为了一些目标而工作并得到薪水的愿望。

受到组织愚蠢的重击,通常都是缺乏自主性和看法缺少目的性的结果。Alex的价值,在控制和目标随着动机的衰败而衰败时达到峰值;而对于一项工作的厌倦, 是当缺乏RSA的三个需要的情况出现时的一个相当确定的结果。但是相对于把征兆概括为三个驱动因子,我想把所有的合并为一体。你能够通过确保让你的优秀开 发者,作为员工,拥有令人信服的看法,而留住他们。

确保提出看法

不好或者中下等的开发者,他们通常被辞退或者签出。他们通常不期望主宰什么,对于最终的目标没有存在的意义,并且对于自主性没有兴趣,而这都是因为他们已 经放弃了一些真正有可能性的东西,与团队形成了一种糟糕的经济交易,尽管支付他们工资。也就是说,他们放弃了自我实现,用来换取公司支付一些抵押贷款、一 些购车贷款和其他一堆与公共事业相关的事务。我听说我的一个朋友把这个称作“金手铐”。他们对于工作有一个预先的看法:“我为这个公司工作,是因为如果我 不去,债主终究会出现”。这些人到不一定是不好的或者非高产的雇员,但是他们不大可能是你最好的或者最明智的员工,并且你能够肯定他们会提出最低必要工作 量,来确保这笔糟糕交易的底线。

这些员工是很容易留住的,因为这就是他们通常对待事务的状态。走出去并找到另一份工作,这不包含在付账单所需要的最少努力当中,因此他们不会这样做。他们 就是Bruce所说的“废物”,并且在一般的情况下他们会倾向于坚持并获得升职和加薪,然后,签出。他们最终会破坏其他人、团队中的开发新手对于RSA的 需要,而这些受影响的人要么变成他们的一员,要么把他们赶走。你对于他们的评价是:“坚持,并且每五年他们会提拔你并给一块镀金手表”。他们把升职和那块 手表看作意外之财。

但是如果你这样对待有雄心壮志的,有热情的,有才华的开发者,他们会辞职。他们觉得越来越无聊,无聊的人就会辞职。他们拒绝容忍组织性愚笨,他们的热情渐渐消失。他们寻求升职或者辞职,而且意识到辞职更快更有前景。他们把自己的态度改变成“再见了,笨蛋们!”

如果你想留住有才能的开发者,你需要提供一个更理想的许诺。你必须拉拢他们到同一阵线,并向他们一再重申那个许诺。也要确保那个许诺对他们实现自己的目标起决定性的作用。以下是一些有助于留住开发者的许诺:

  • “如果你提前实现了那个特性,我们将提拔你”
  • “如果完成了接下来几个月的工作,你将成为我们之中最尖端的 NoSQL专家”
  • “我们注意到你很仰慕 Bob’s 在 Ruby 方面的工作,我们将把你和他安排到同一个项目。他将担当你的指导人,这样你就可以向他学习,努力达到他的水平。”
  • “我们正在创建一个审计系统。这个系统对我们的业务起着关键的作用。这个系统的安全和日志模块将由你一个人负责”
  • “如果你在X项目中的代码运行良好,我们将允许你根据自己感兴趣(或者正在学习)的语言来选择你下一步的任务。”

注意:这些许诺给予了开发者自主决定权 / 掌控权 / 奋斗目标。与其用薪酬和权力去诱惑开发者,不如给他们更贴切自身的激励:职业生涯的进步 / 深入认识,进一步的自主决定权,学习和使用新知识的机会,知道自己的工作很重要而带来的满足感,等等

当你给了他们许诺之后,你要问问他们自己想要什么。也就是说,“如果你工作出色,我们将给予你更多的责任”,这是一个很好的许诺,但也许并不是开发者想要 的。我们不一定每次都能给予开发者他们想要的东西,但是至少要知道哪些东西会使他们萌生退意,有别的想法。一个新员工说:“我想成为部门里面的首席架构 师”。他可能夸下海口了。但你也许可以找到一个小型的,一个人的项目,告诉他:“先从这个项目开始,慢慢来。”

不管什么时候,你和团队里面的开发者都应该知道彼此的许诺。这能保证这些许诺不是一时的安慰措施,而是工作满足感和工作目标的常用评价点。开发者的雇佣期 是一段有意义有收获的旅程,而不是像推石头的Sisyphus一样重复无意义的劳动,直到退休。抱着这样的观点,你甚至可以重新点燃“老油条”员工的兴 趣,提高工作效率。又或者提出一个观点,使得你们都意识到之所以变成“老油条”,是因为他们一开始就被定义错了角色,还有比编程更适合他们做的事情。

结论

你给出的评论未必完美,但是它们至少是个开始。不要忽略它们,不要让它们枯萎,并且不管你做什么,不要让反派的精英——那些“废物”——妨碍了一个新星或 者表现最佳者的评论。这会让你的团队陷入恶性循环。与开发者们一起讨论这些评论,并在项目之外的时间优化它们。让评论生效,根据需要改进它们,并从中得到 回报。

Alex认为离开组织是不可避免的,这也许是事实,但我认为我不完全赞同。我认为随着天才员工产生一些评论和强烈的愿望,他们的价值会参差不齐。特别是在 一些,比如说,新兴领域和自由组织模型中、而不是在其他领域的咨询公司当中。但是我赞同Alex文章的地方是那个可能有些激进的想法:如果天才开发者的评 论并不需要在未来的5年或者10年牵扯到公司,就没什么问题。这样也好。它允许替代计划存在并整体的共同成长。不管评论是什么,把它列入日程,改善它,并 确保你的开发者正在为之努力,并向着自治、融合和目标进发。

原文链接:http://www.daedtech.com/how-to-keep-your-best-programmers

译文链接:http://www.oschina.net/translate/how-to-keep-your-best-programmers

责任编辑:陈四芳 来源: daedtech.com
相关推荐

2014-09-22 09:42:54

程序员

2015-07-28 09:54:43

2016-03-25 11:57:23

Java程序员C++

2009-05-21 15:58:12

程序员工作经验职场

2013-11-01 17:24:39

程序员命名

2015-12-07 11:44:31

程序员厌倦工作

2015-12-09 09:17:11

情绪厌倦程序员

2020-11-19 15:12:56

程序员技能开发者

2015-04-10 19:37:34

程序员

2011-09-15 09:12:00

程序员苹果

2015-12-04 08:49:00

程序员梦魇

2015-12-07 10:09:40

程序员噩梦

2014-11-26 09:45:48

程序员

2015-12-14 17:26:42

程序员生活

2017-12-04 23:25:24

2014-11-28 09:42:23

程序员

2012-04-26 17:12:36

程序员梦想

2020-09-15 09:04:50

程序员参数检查

2014-12-22 10:07:10

程序员

2012-11-14 14:18:57

程序员
点赞
收藏

51CTO技术栈公众号