如何让你的程序员不要厌倦工作
文章来源:Medium,由 TECH2IPO / 创见 陈铮 翻译,首发于创见科技,转载请注明出处。
作为一个程序员,我从来没有在同一家公司工作超过两年。每换一份新工作都是一次很好的职业变动,在这个行业里跳槽如同家常便饭。但是我的前东家们对我的离去并不开心,他们其中一些人花了很大力气想要挽留我,但是我已经对一成不变的工作感到厌倦了,真的不想在同一家公司再待下去。
免责声明:我很幸运地生活在一个程序员工作岗位供大于求的地方,所以对我来说在换工作永远不止一个选择。
如今我成为了 Enki 公司的合伙人与 CTO,同时我还要负责在公司里面打造工程师文化。我工作内容的一部分就是确保我们的程序员不要对工作感到厌倦,就像我过去那样。
在团队的帮助下,我们设计了一整套策略去帮助程序员们对抗工作中产生的厌烦情绪,并将这些策略运用到了公司的实践当中。至今为止这套方法还是挺管用的,因此我想要和大家分享一下。
在 Enki 我们的程序员很幸运地一直从事着具有挑战性的工作。我们有很多有趣的事情需要去编码,还有大量有意思的问题亟待解决。因此如何解决「无聊」这件事情对我们来说并不很紧急。但是所有的工作都不会一开始就让你感觉厌烦,无聊这种情绪是随着时间推移蔓延开来的,并且会在最糟糕的时刻爆发出来。
这就是为什么我们从公司成立之初就开始着手预防这类问题,并依靠建立起一种企业文化去帮助我们的程序员克服工作中产生的无聊情绪(真心祈祷这套东西 管用吧)。
下面就让我们总结一下为什么程序员会感觉工作无聊,以及如何避免发生这些状况吧。
项目时间延续太长,学不到新东西 ⭐
引发程序员无聊情绪最常见也最明显的原因就是一个开发项目拖得时间太长。
我在自己的第一份工作中就充分体验到了项目时间过长带来的无聊感。我的团队要做的是通过一个通用 API 去处理金融数据。一开始这项工作确实令人兴奋,因为这些数据十分复杂且规模庞大,很有挑战性。我从这项工作学习到了如何高效分析数据以及 API 接口设计。但是在一年之后,我们依然在针对相同的数据库工作,使用的也是同样的技术。我在这一针对性很强的领域已经成为一个专家了,在这项工作中再也没有什么新东西可以让我学习。
我不可能再去别的团队或者项目,因为公司感觉把我留在这个项目里才是最合适的。我明白在这个项目中现有的数据与技术已经用的太顺手,所以不可能被替换。我无法说服公司仅仅为了让项目组成员学习新知而改变原本使用的技术。我向公司表达了自己的这种厌倦情绪与沮丧心情,但是无济于事,那么我只好换一份有奔头的新工作了。
如何阻止无聊情绪的产生?
在我们的团队里会试着避免让任何一个程序员接触相同的代码、产品或者数据库超过三个月的时间。将时间设定为三个月也许比较武断,对于大公司来说这段时间可能也太短了。但是我们相信让程序员在不同项目中快速轮转 是正确的。
为了实现这一设计,我们在公司里提倡一种全栈文化,团队里的每一个程序员都能够承担任一部分的编码工作(或者是能够快速学会操作)。
预防无聊情绪滋生的另一个方法就是开诚布公地讨论这个话题。我们每周都会进行一次直接、开放的一对一谈话。如果一个程序员在工作中已经感到太过舒服没有挑战,或者是已经在这一方面过于专精,那么就是时候让他轮转到另一个项目当中去了。
维护代码这种遗留问题让人感觉太无聊 ⭐
你能够很清楚地分辨出何时项目就开始进入了维护模式,不论是从正式的渠道还是别的途径,只要当你的程序员花上了 90% 的时间去修补 BUG 而不是开发新功能,那就代表着他们已经进入了代码维护期。有人会说维护代码是一项不可避免的工作,老旧的代码需要不断得到支持。开发软件就像造房子,你总是需要维护和翻新房子的,不是吗?
既是,也不是。这项工作确实需要有人去做,但是问题通常会出在工作态度上。
我曾经的一位职场前辈对于维护代码具有强烈的抵触情绪,他理所当然地认为维护代码这种事情根本没有什么好做的,软件开发完毕之后就让它们自己去运行好了。生活简直糟透了,你还不得不适应它。
如何缓解这种抵触情绪呢?
项目开发工作进入无聊的维护模式有时候是由于糟糕的技术决策与缺乏勇气的双重作用。