解雇了天才员工,这是我们做过最正确的决定

2024-01-31 00:30

本文主要是介绍解雇了天才员工,这是我们做过最正确的决定,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

(点击上方蓝字,快速关注我们)


编译:伯乐在线/孙腾浩,英文:Jonathan

如有好文章投稿,请点击 → 这里了解详情


“你们不会理解我创造的一切。我 TMD 就是爱因斯坦,你们都是玩泥巴的小屁孩。”


我们的天才 Jekyll 医生愤怒地变身为 Hyde。(译注:《Jekyll and Hyde》是英国作家 Stevenson 的作品经典小说,善良的医生 Jekyll,他将自己当作实验对象,结果却导致人格分裂,变成夜晚会转为邪恶的 Hyde。)

他是在产品设计小组、开发人员、管理人员和试用用户面前说出的这句话。有个我们的项目赞助商询问产品何时可以修复严重缺陷。

天才都是反复无常的野兽。运气好时,和你共事的是个疯狂的天才,其他时候只是纯粹的疯子。大多时候,你很难区分。

这个故事关于我们一名天才团队成员的陨落,他对我们的产品架构有深入理解,有预测未来需求的不可思议的能力,有大量专业领域知识积累。

他是贡献最多的成员。他曾驾驭我们的旗舰项目。我们叫他 Rick 好了。

(译注:该名字取自一部美国著名的成人动画科幻情景喜剧《Rick and Morty》)

(你不会想让这个家伙在你的团队里的。图© Warner Bros)

Rick 是团队里公认的天才。他是首席开发工程师及项目架构师。

任何时候任何人有关于代码的问题或任务需要帮忙,他们都会找 Rick。Rick 在办公室装了一块白板专门处理这种事情。白板上总留有无法擦去的凌乱痕迹,记录着过去的讨论。

无论什么时候出现特别有挑战性的问题,Rick 会处理它。Rick 电脑上安装了与生产环境服务器参数相同的服务器。他可以用这个服务器独立运行整个应用程序栈,同时在应用各个层面排查问题。

Rick 不依赖任何人。他喜欢孤军奋战在他的私人工作间。

Rick 从不需要别人造好的轮子。他什么都自己造,从无到有,因为自己造的轮子比其他凡人做的平庸之物要好太多。

很快,Rick 不再参加会议。因为太多代码需要编写,他没有时间参加会议。

Rick 关上工作间的门,白板也闲置了。他没有时间指导别人,因为他自己有很多事情需要解决。

Rick 身后开始积压工作。他造的轮子也开始出现 bug。这些压榨了他投入在新产品开发上的精力。

当然,这些 bug 出现是由于使用者操作不当,Rick 的工作没有任何问题。

在我们的项目仪表盘上,标志由绿色变成了黄色,黄色又变成了红色,红色的灯疯狂闪烁。任务一个又一个陷入不可用状态。所有人都在等待 Rick 处理。

(不必担心,Rick 会把这些全都解决掉。)

项目经理从赞助商那里获得了六个月的延期。六个月到了,生产准备预计还要七个月。等到一年过去了,生产准备两年了。

Rick 比之前更加高效地产出代码。他每周工作 7 天,每天工作 12 个小时。

每个人都知道只有 Rick 能拯救团队。大家屏住呼吸等待 Rick 创造特效良药,将项目起死回生。

每天,Rick 的孤立感和好战心都在增加。面具逐渐脱离,Jekyll 变成了 Hyde,

在项目最初商定的发布日期 2 年后,我参加了与项目团队的第一次会议。我注意到该项目有一段时间了,因为它在公司里声名狼藉,不过之前并没有参与进来。

我被指派进来,看看我们能不能拯救该项目。

我的第一场会议主题,便是前文提到的“爱因斯坦”。

嗯······

我看了源码。Rick 说得对,除了他自己,没人理解他创造的东西。这些全都是他自己思维的工作产物。其中一些很巧妙,大部分还是复制粘贴的。它们都很独特,并不是所有东西都有文档。

我给了我们的 CIO(首席信息官)一份报告。只有 Rick 能够维护这个产品。另外,Rick 每工作一天都会让项目交付延期一周。他对项目的破坏速度比创造速度要快。

我们和 Rick 坐下来讨论他在项目中的角色。我们评估了关注点。我们回避了他和爱因斯坦的比较。我们解释了新的战略。团队需要合作,从零开始构建一个新产品。

我们的努力必须限制在一定范围内,并且仅仅完成产品基础功能。整个团队贡献代码并可以提供技术支持。不再会有瓶颈。

Rick 对此作何反应?

Rick 还是一如既往风格,瞬间爆炸。

Rick 并不想理会这场闹剧。认为如果我们不能欣赏他的天赋,那就是我们的问题,而不是他的问题。Rick 预计不出一个月,我们会狼狈而归乞求他拯救我们。

Rick 向我们咆哮说我们庙太小,容不下他这尊佛。

很遗憾,这之后,Rick 拒绝了领导关于未来几个月的安排。他拒绝休息,也不同意工作移交他人。他屡次拒绝引入免费开源的框架来替代他自己的难以维护的定制工具。

他回退了其他开发者测试修复 bug 的代码变更。他宣称自己没有责任支持其他同事的工作。他不断公开藐视同事。

我们解雇了 Rick。

整整一周时间才尘埃落定。失去大将的军队需要一定时间来稳定军心。

然后我看到他们在白板前挤作一团。

(合作?Rick 从不懂这个词。)

他们开始合作,一起设计更简单的替代产品。

新产品没有华而不实东西,也没有根据五年后的产品路线来预计需求。

Rick 的产品动态工作流支持超过一万五千种排列。事实上,我们 99% 的用例只遵循其中三分之一的路径。团队对工作流硬编码。这移除了超过 30% Rick 的工作。

每个任务并不能使用定制的硬编码组件。他们把能购买到的组件替换掉定制的组件。

这移除了 Rick 上百小时的贡献。当然这也移除了上千小时的技术债务(technical debt)。

我们和项目赞助商协商达成一致,砍掉一些边缘功能。

这些边缘功能只服务于 5% 的试用用户组,但给在产品中占有四分之一的复杂度。

我们向试用用户组重新发布产品。产品包含 Rick 写的可稳定运行的 10% 的源代码,另外用几千行新代码替换掉了十五万行难以理解的代码。

整个团队六个月完成了五年的工作量。接下来几个月时间我们把试用版扩展为完整的客户版本。

我们不仅替换掉 Rick 造的轮子,而且超越他并全面推出了产品,所有这一切只用了不到一年时间。产品的大小和复杂度只有 Rick 所做的五分之一。

尽管产品组装时间很短,使用的客户翻了十倍,但产品的效率仍提升上百倍,而且几乎没有 bug。

团队回到 Rick 其他产品中,他们剔除了 Rick 的旧代码。

团队协作三个月就重新发布了 Rick 三年时间开发的产品。

团队中不再有 Rick 这种人。我们也不再看到这种从无到有造轮子疯狂的天才。但我们的生产力居高不下。

Rick 是非常有天赋的开发者。他能够解决复杂的商业逻辑问题,可以创造复杂精妙的结构来支持他的高级设计。但 Rick 不能解决的问题,是如何使团队高效工作。

(建筑工程队长是很酷,但摩天大楼是团队盖起来的。图© Warner Bros)

Rick 的存在,在某些方面是有破坏性的。

首先,他创造了个人崇拜的依赖。所有问题都变成 Rick 的问题,他变成一个神话。开发者习惯放弃尝试,只等着 Rick 解决。

其次,他写的代码不易维护。他从不写文档或测试代码,他的聪明才智也无法阻止失败。他对自己可靠性的信仰让他忽略了常识。

然后,他个人有破坏性。团队成员不想和他交流想法,因为他总是批判他们。Rick 只尊重它自己,以他自己的方式工作,让其他人感觉渺小。

最后,他缺少个人责任感。所有失败都不是他的错。他坚信这一点,这也阻止了他从错误中学习和进步。

我并不认为 Rick 从开始就这个样子。我看到的是,他最糟糕的样子。他经历了数年愈演愈烈的加班,面对了同事和客户逐渐增加的苛刻要求。

很遗憾,Rick 走远了。他的经理也有责任。事实上,原来的管理团队承担了责任,他们首先离开了。

不幸的是 Rick 走的太远了,以至于他不能回到正轨。即使再多的辅导、反馈、休假或指派其他项目都无法改变他的不良行为习惯。

在这一点上,整个团队知道他不好的地方。但个人崇拜的依赖如此强烈,每个人相信 Rick 是唯一的救命稻草。

其实一直都有其他选择的。

团队力量和每个单独成员的天赋无关,而是有关于他们的合作、斗志和相互尊重。

组建团队要注重发挥每个人的价值,让每个人都发挥自己的最好水平。

团结一心,他们就可以应对 Rick 都无法触及的更大的挑战。

注:一些细节(比如人名)已经处理。我的同事中没有叫 Rick 的。

--- 完 ---


本文为英文作者 Jonathan 一家之言。

你们身边有类似案例么?欢迎留言讨论咯~



觉得本文有帮助?请分享给更多人

关注「程序员的那些事」,提高编程能力

这篇关于解雇了天才员工,这是我们做过最正确的决定的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/662030

相关文章

Spring Boot 中正确地在异步线程中使用 HttpServletRequest的方法

《SpringBoot中正确地在异步线程中使用HttpServletRequest的方法》文章讨论了在SpringBoot中如何在异步线程中正确使用HttpServletRequest的问题,... 目录前言一、问题的来源:为什么异步线程中无法访问 HttpServletRequest?1. 请求上下文与线

golang1.23版本之前 Timer Reset方法无法正确使用

《golang1.23版本之前TimerReset方法无法正确使用》在Go1.23之前,使用`time.Reset`函数时需要先调用`Stop`并明确从timer的channel中抽取出东西,以避... 目录golang1.23 之前 Reset ​到底有什么问题golang1.23 之前到底应该如何正确的

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

一个图形引擎的画面风格是由那些因素(技术)决定的?

可能很多人第一直覺會認為shader決定了視覺風格,但我認為可以從多個方面去考慮。 1. 幾何模型 一個畫面由多個成分組成,最基本的應該是其結構,在圖形學中通常稱為幾何模型。 一些引擎,如Quake/UE,有比較強的Brush建模功能(或應稱作CSG),製作建築比較方便。而CE則有較強的大型地表、植被、水體等功能,做室外自然環境十分出色。而另一些遊戲類型專用的引擎,例

java计算机毕设课设—企业员工信息管理系统(附源码、文章、相关截图、部署视频)

这是什么系统? 获取资料方式在最下方 java计算机毕设课设—企业员工信息管理系统(附源码、文章、相关截图、部署视频) 企业员工信息管理系统旨在为公司提供高效的员工信息管理解决方案。该系统的核心功能涵盖密码修改、员工管理、部门管理、出勤管理、工资管理、请假审核等方面,帮助企业优化人力资源管理流程。系统结构如下: (1)前端(员工端): 1.密码修改:员工可以修改自己的密码,提升账户的安全

如何限制与管控员工上网行为?四个方法让员工效率倍增!【企业员工上网行为管理】

在信息化时代,员工的上网行为直接影响着工作效率和企业的安全性。不当的网络使用,如浏览与工作无关的网站、下载不安全的文件,可能导致工作效率低下,甚至引发安全风险。因此,许多企业正在积极寻找有效的措施来管控员工的上网行为,以确保工作效率的提升。 以下是四个常见且有效的员工上网行为管理方法,帮助企业实现更高效的网络管理。 方法一:配置网络防火墙进行访问限制 最基础的员工上网行为管理方法是通过配置防

Circuit Design 三极管驱动蜂鸣器电路 及 蜂鸣器两端电压正确但是不响的解决方案

利用三极管进行电流放大的蜂鸣器驱动电路图: (百度图片找的) 我用有源蜂鸣器实现的这个电路,但是蜂鸣器不响。 details: 1. VCC =5V 蜂鸣器两端的直接电压约为4.5V, 但是蜂鸣器不响。 2. 将蜂鸣器直接接在4.5V的电源两端,蜂鸣器响。(说明蜂鸣器是好的) 3. 测了三极管各个管脚的电压, 和理论上的是一致的。 情况很奇怪,换了好几个三极管结果都是一样的,

一个瑞典游戏工作室决定离开索尼,之前和之后都发生了什么?

我们在前两篇中探究了国家政策、硬件基础与黑客文化如何让瑞典成为了游戏热土,而它充满地域特色的开发者社区与教育体系的构建,又是如何聚拢了游戏人才,让体系持续生长扩张。 除了大学、科技园和开发者之家外,我们此行从斯德哥尔摩到舍夫德到马尔默,还采访了三家知名工作室的创始人。它们一家产出如今罕见的双人合作游戏,还有一位特立独行的作者型开发者屡屡占据头条;一家贡献了现象级网红作品,当前在朝“正经向”大

ubuntu 20.04 一直卡在登录界面,即使密码正确也无法登录(失败记录)

ubuntu 20.04 一直卡在登录界面,即使密码正确也无法登录 这次是装实体机,一次失败的尝试。。。 名称型号CPUIntel Xeon E5-2673 V3GPURTX 3060 mobile 安装的时候不要选install third-party software for graphics and Wi-fi hardware and additional media

今麦郎「日记薪·1号发」 即时反馈,激活10000+名基层员工

本文内容整理自红海云CEO孙伟对今麦郎集团人力资源总经理王高峰、IT管理中心副总经理邹大勇的访谈。 坚持创新求变的品牌基因 过去30年,中国食品工业蓬勃发展,孕育出一批批在国际舞台上熠熠生辉的民族品牌。今麦郎作为民族品牌代表,自1994年创立以来,始终紧跟消费者需求变迁,从满足基础温饱的初心出发,逐步迈向品牌塑造、健康倡导及高端化探索的新征程,从家喻户晓的“今麦