首页 > 编程语言 >【译】掌握这些策略,公司轻松留住顶级程序员!

【译】掌握这些策略,公司轻松留住顶级程序员!

时间:2023-08-23 18:35:57浏览次数:49  
标签:留住 开发人员 优秀 顶级 他们 程序员 团队 我们

我们是家专注于提供高品质软件开发服务的小公司,最近和一家在全球有业务的大公司签了合同,负责一个大型项目。工程日期只给了八个月,实在是太紧了。所以,我们打算扩大团队来应对这个挑战。

我们新招了一位工程师。刚开始,我们分配给他一些基础性的工作,如文档更新、错误修复以及回归测试等。很快,他在短时间内以极高的效率完成了所有任务。因我对他的工作效率非常满意,逐渐将更多客户项目的任务交给了他。

我知道他是个很优秀的工程师,前途无量的那种。而且在招聘过程中,他成功通过了所有测试,也和团队成员相处融洽。

然而,在不久后,我还是在他身上发现了一些我曾忽视的特性,比如他无法接受他人的批评,不喜欢别人指出他的错误,总是试图证明自己的能力。

我们一直强调我们的软件工作室结构扁平,每个人都有机会为改进我们的系统和工作流程做出贡献。只是没想到他的贡献居然让事情变得如此棘手

他提出想将自己开发的JavaScript框架融入我们现行的项目中。最开始,我并不认为他这个提议是认真的,因为这个提议他是站在饮水机旁边随口一提的。

我告诉他,我们现在的框架已经确定下来了,这个时候再去改动,哪怕不是完全停止,最少也会拖慢我们的进度。他耸了耸肩,轻描淡写地说:“当然,别担心。我懂的。”

然而,在几天后的站立会议中,他以更坚定的态度阐述了自己的观点,其强硬甚至透出些许傲慢。我再次强调,我们不能接受他的建议。

接着,他的叛逆行为愈发严重,甚至试图对代码的各个部分进行独立的系统化操作。代码审查员去哪了?是不是疏忽了才让这种问题发生?当然,这又是我必须解决的问题。这大概就是工程经理的宿命吧。

然后,当我们开始进行第三个模块的工作时,他又一次在站会上提出要换一种方式来编写代码,因为他做的所有工作(其中大部分是在我们背后进行的)阻碍了生产进度,导致生产效率大幅下降。

那一刻,我简直气炸了。但在我采取任何行动之前,我必须先做足功课。我需要先理解一个优秀程序员的思维方式。

理解顶尖程序员的思维方式

要有效地管理那些有颠覆性思维、自我驱动、成绩出色的程序员,你必须要了解他们的思维的运作模式。只有你深入理解这类程序员的性格类型及其行为动机,才能实现有效管理,避免公司资源的浪费

以下是我对这类顶尖程序员的一些见解

  • 他们对于能够完成超出预期的任务会感到兴奋。但是,随着他们挑战的任务越来越大,他们就越难体验到多巴胺的快感。
  • 他们容易产生厌倦感,一旦出现这样的情况,他们常常会选择离职。
  • 他们在处理任务时总是全神贯注,因此经常会忽视一些重要的细节或者其他有利于自我提升的机会。
  • 他们可能表现出心不在焉的样子,但实际上,他们是在全神贯注。
  • 他们的情绪敏感,对批评的接受度较低
  • 他们过于关注未来,一心致力于实现自己职业生涯的目标。
  • 他们并非金钱驱动,而是对项目和实验充满激情。
  • 你是否曾向一位表现优秀的开发人员指出他的错误?是
  • 你是否曾过度管理过一位表现优秀的开发人员?是
  • 他们认为自己并不需要别人的帮助或者指导,反而他们觉得自己有能力去指导别人。

如何管理一个优异的程序员?

设定明确的界限

如果你手下有一个才华横溢但行为出格,自我驱动且成绩斐然的程序员,那你需要立刻约他单独谈话,将问题行为消灭在萌芽状态。

通常,我们应对问题的策略应是在其出现之初就予以解决。假若选择漠视,哪怕问题微小,也会因此逐渐恶化;待到不得不解决的时刻,极可能会激起对方强烈的情绪反馈。请牢记,天才不太可能会接受他人的批判。

对我而言,我已经向那些表现优秀的开发人员明确了他们的角色和期望。我告诉他们,我既负责软件开发的业务部分,也负责人员管理。我认为,他们需要了解软件开发团队的运作,要明白软件的开发是人对人的合作结果

另外,我也明确告诉了他,他不能自作主张去做那些他认为有必要的事情,除非得到我和团队的同意。我们公司更倾向于以团队为主导解决问题,而非依赖单一的技术或开发人员。如果他想在公司有所发展,就必须理解这一点。

而且说实话,我必须得坚守自己的立场。如果我任由他用客户的资金去进行实验,结果却以惨痛的方式失败,那我的处境就会十分尴尬。你知道接下来会怎样吗?士气和效率都会下降。我的下属会对我失去信任,上头的人也会找我要个说法。

1.png

过程为主,结果为辅

问题得到解决后,我开始探索如何让他的个性与我们的目标相辅相成。优秀的人往往会被驱使去挖掘自己的最大潜力,但他们常常过分关注最终目标,而忽视了有时候,最终的目标结果是无法掌控的。

所以,我在想的是如何帮他们更专注于他们能控制的过程,而不是只看结果

我可以让那些顶尖程序员们制定一份切实可行的计划,详细列出每个步骤,并在完成后进行标记。这将有助于他们集中精力于现阶段需要实现的目标,而非过于关注遥不可及的未来目标。

每达成一个里程碑,他们便能获得更多的多巴胺的释放,这可以满足他们对于成就感的追求。

2.png

协助他们寻找平衡,避免精疲力尽

我在与多位执着于追求卓越的合作伙伴共事的经历中发现,他们的付出的努力往往超越常人。比如在一个项目中,我下班后,他们还在办公室里埋头苦干;而在第二天清晨,我回到办公室时,他们还在那儿忙碌着。

虽然优秀的人深知健康和幸福的重要性,但他们总是保持警惕,始终不停前进。他们常将自我推至极致,长时间投入工作,忽视饮食,牺牲睡眠。甚至在疾病中,他们也坚持工作,这使他们面临患上抑郁症和疲劳综合症的风险。

因此,作为一名工程经理,你必须严格执行强制休息和休假的规定。不仅要让奋斗过头的开发者休息,也要让这成为所有开发者的规定。如果有人违反,可以在与上级的面谈中解决这个问题。

对于那些表现卓越且抱负远大的个体,建议他们将“保持平衡”纳入其目标清单,并保证这一目标的可追踪性和可衡量性

例如,工程经理可以将参加静心训练、寻求专业心理咨询、适当休息调整或投入时间进行放松与学习等行为,作为他们的主要绩效考核指标(KPI)。这样既能确保他们的工作效能,也能维护其身心健康。

3.png

平等对待且因材施教

就像我之前提到的,我们实行的是平等的等级制度,确保每个人都享有同等的机会。然而,有些人,比如成绩优异的人,我们会给予不同类型的关注。当然,我这里说的并不是要给他们像摇滚明星那样的特殊待遇。

由于他们的工作效率极高,因此,必须为他们提供能够快速跟进的工具。同时,安排一对一的指导,协助他们进行职业规划。除此之外,提供培训和教育的机会也是十分必要的。但最重要的可能是给他们足够的自由度和灵活性,让他们能接受挑战。要记住,这些人总是全力以赴,投入 110% 的工作热情。

通过实施灵活的工作时间制度、家庭办公等福利政策,能有效提升优秀开发人员对组织的忠诚度与工作满意度。总的来说,我们不应该让“我们一直都是这么做事的”这种观念限制程序员们的思维。

作为工程经理,你的职责不仅仅是保证在预算内按期完成产品交付,同时还需要展现出卓越的领导才能,推动建设良好的企业文化,并协助开发团队在专业技能和个人素质两方面实现提升。

难道你愿意看到自己辛苦培养的开发人员离开,特别是在你帮助他们在职业生涯上达到一个新的高度之后吗?

我的意思是,开发人员离职,不是因为公司,而是因为他们的经理。所以,千万不要成为那种让人离职的经理!

4.png

通过配对编程,推动团队合作

高效的开发团队之所以能在软件构建方面取得成功,关键在于他们懂得如何有效地协同工作。对于表现卓越的开发人员而言,理解并掌握这一策略的重要性不言而喻。而让他们以两人一组的形式进行工作,是最佳的理解和掌握协作策略的方式。

结对编程是一种软件开发策略,它依赖两名程序员共享一台计算机,共同解决特定的任务或问题。在此策略中,一名程序员担任"驱动者"的角色,主动编写代码,而另一名程序员担任“导航员”的角色,负责审查代码、提供反馈并进行战略性的思考。

两人在整个编程过程中不断交换角色,驾驶员和领航员的角色要经常交换

该方法实现了实时协作、知识共享以及即时反馈,对提升代码质量、促进创新思维以及增强问题解决能力具有积极影响。成绩优异的开发人员还将了解到其他人有很棒的想法(有时甚至是更好的想法!)。

如果你能引导他们把更多的精力投入到成为一名出色的团队成员,那么他们就能回归自我,化解混乱。他们可以先获取个人荣誉,然后再恢复与他人的和谐相处。

5.png

投资时间与实验

大型企业普遍拥有一套复杂的体系,其中包含诸多繁杂的组成部分,因此想要改变现状几乎是不可能的。此外,这些企业都建立了强大的技术防护和流程保障,以维护其宝贵且高价的基础设施。

在这样的环境下,杰出的开发人员如果意识到自己的想法无法突破现有模式,其积极性将会被严重打击,甚至可能选择离职

作为工程经理,你真的需要考虑这个问题。如果你只希望团队里的开发人员盲从领导,按部就班地工作,那你不如雇个机器人来做这些事。如果无法给予优秀的开发人员足够的自由发挥空间,那么你应做好他们离职的准备。

但是,假如你愿意去了解他们,你的开发团队能提供的东西远超你的想象。如果他们有一些概念性的证明,你应该让他们有自由去探索如何把这些微妙的想法变成现实。当然,前提是这不能浪费你的客户的时间,也不能用他们的钱来做这些事,对吧?

如果你的优秀员工在你的管理和客户的影响下出现了失误,他们无疑将面临相应的处罚。然而,这可能引发他们的不满,甚至导致他们选择离职。届时,你将需要亲自承担处理后续问题的责任。

我对那位顶尖程序员的实践:

因为无法改变现有的框架,我们允许他开设一个新的分支,类似于一个沙盒。在这个环境中,他可以尝试自己的新想法,以检验其是否具有可行性和优越性。

结果呢?该代码虽然通过了代码审查和测试,但性能提升并不显著,因此我们并未将这些修改合并到下一个版本中。接着,我们进行了无责任归属的事后分析,并对他进行了反馈,以便他能从中学习和提升。

6.png

导师指导

一个杰出的软件开发专员,犹如团队的倍增器,其存在对团队无疑是一份巨大的资产。他们对挑战充满热情,始终渴望掌握更多知识。因此,我们为他们配置了专门的导师,以便在现有基础上助其实现更高层次的发展。

这位导师是一位杰出的首席工程师,他运用 360 度反馈和能力矩阵对该开发者进行了全方位的评估,并深入了解了他的个人能力和需求。

我们的导师向他展示了所有他能想到的资源,向他推荐了一些值得一读的好书,并鼓励他在博客上分享他的想法,与开发社区进行交流。这个优秀的开发者开始讨论他的架构构想,询问社区成员这个构想是否能处理某些功能,是否有扩展的可能性。但他得到的回答并不总是能证实他的想法,这让他的自尊心受到了一些打击。

总的来说,这次辅导帮助了他:

  • 尝试以不会对团队士气和代码库产生影响的方式进行实验。
  • 理解在团队中达成共识和提出解决方案的难度。
  • 让他明白,你是来帮助他,提升他的技能的。

最后,我还要说的是

换个思维角度,去深度理解那些始终追求卓越的开发者们的需求和期待。

作为一个工程经理,你需要开始区别对待不同的开发人员。归根结底,想做一些不同的事情并不是一件坏事。关键在于我们需要具备敏锐的环境感知能力,了解所处的业务环境以及利益相关者的身份。

毕竟,你是希望你的团队里的初级工程师能够突破自我,成为能力超群的工程师,还是说更喜欢那些执行力一般、需要花费大量时间完成基本任务的工程师呢?

原文链接:https://blog.howareyou.work/how-to-handle-overachieving-software-developers/ 作者:howareyou 社区 译者:阮煜茜 出品:Masutaa大师

关于Masutaa

Masutaa是个互联网从业者自由协作交流平台,链接行业内TOP10%人才!目前平台上已经有将近400名互联网尖端人才,其中近70%的从业者从业年限超3年。

在这个平台上,你有机会获得远程项目,也可实现地理套利,成为数字游民!

标签:留住,开发人员,优秀,顶级,他们,程序员,团队,我们
From: https://blog.51cto.com/u_16190587/7205497

相关文章

  • 6款程序员必备的 Chrome 扩展插件!逼格秒提升
    美化JustBlack午夜黑主题简介:Chrome官方团队出品的黑色主题皮肤,值得拥有!推荐指数:⭐⭐⭐⭐⭐下载链接:https://www.chajianxw.com/themes/18893.htmlDarkReader暗黑主题简介:能在任何网站上开启夜间模式,同时,它还支持自定义调整亮度、对比度,应用棕褐色滤镜、黑暗模式,设置字体和忽......
  • 11 款程序员必备的 Chrome 扩展插件! 提升开发效率!
    Octotree树形菜单简介:Octotree是一款增强GitHub代码审查和探索的浏览器扩展,可以非常方便帮助您查阅代码。推荐指数:⭐⭐⭐⭐⭐下载链接:https://www.chajianxw.com/developer/11032.html划词翻译简介:一站式划词/截图/网页全文/音视频翻译扩展,支持谷歌、DeepL、百度、搜狗等......
  • 20+完整的商业实战项目,手把手教你成为将军式程序员
    常常有朋友问我:“如何提高自己的开发能力?”、“如何拿到大厂offer”、“我想成为行业大牛,编程专家,但总感觉自己在原地踏步,该怎么办?”......在寻找答案的过程中,有些人把原因归咎到企业对前端的重视程度不够,有些外在因素固然重要,它们可能会导致你在当时企业的怀才不遇。但是你确定自......
  • 一代程序员集体有始有终
         疾风知劲草,老马识归途。在今这个翻过篇章的夏天,缤纷真小米的收获季,小米集团的跨长河之作,十三香巨人觉醒,风芒皆俱。运营、移动up、互联网又来到了台风口,一夜的守着屏,心中不免提着点滴。    洪流下的世界是个辩证体,野心家鼓吹恐怖的美苏世界争霸,横行无忌,而作......
  • 中年失业程序员,居家做亚马逊。
    中年失业程序员,居家做亚马逊。同学中年失业了,之前做程序员。应该说是本本份份的人。代码能力还是有的。无奈,现实残酷。现在开始居家做亚马逊。一头雾水,完全不同的两个事情,两种思维方式。很难适应。另外,虽然是写代码,但是英语并不好。阻力很大。但是没有退路。我看他经常做的事,然后......
  • 做十倍速全栈程序员
    什么是全栈程序员?-是指一个程序员,什么编程语言都会,什么工种都会。前端、后端、算法,iOS、App、网站,它一个人能够全部搞定。什么是十倍速程序员?-是指一个程序员的效率比别人高10倍以上。同一个工作,可能别人需要10天,他只需要1天。君子生非异也,善假于物也。一、工具GithubC......
  • 程序员的这10个坏习惯,你中了几个?超过一半要小心了
    前言一些持续关注过我的朋友大部分都来源于我的一些资源分享和一篇万字泣血斩副业的劝诫文,但今年年后开始我有将近4个月没有再更新过。有加过我好友的朋友私聊我问过,有些回复了有些没回复。想通过这篇文章顺便说明一下个人的情况,主要是给大家的一些中肯的建议。我的身体......
  • Python程序员Visual Studio Code指南3 编辑代码
    3编辑代码VisualStudioCode提供了许多适用于所有编程语言的标准编辑功能。快速修复代码补全定义声明格式化语法重构代码片段这些内置的编辑功能减少了编辑代码所需的手动任务和键入次数,从而节省了时间。Python扩展扩展了代码编辑功能。有了Python扩展,导入库只需极......
  • #yyds干货盘点# LeetCode程序员面试金典:完全二叉树的节点个数
    题目:给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。 示例1:输入:r......
  • 探索编程世界的宝藏:程序员必掌握的20大算法
    #程序员必须掌握哪些算法?#1引言在当今数字化时代,程序员们仍然需要拥有一把解决问题和优化代码的金钥匙。这些钥匙是算法,它们隐藏在计算机科学的宝藏中,等待着我们去发现和掌握。本篇博文将带你踏上一段引人入胜的探险之旅,揭开程序员必须掌握的20大算法的神秘面纱。从冒泡排序到......