Kenneth Reitz 是一个知名的程序员,特别是在 Python 圈,他编写了 Requests / Records / Maya 等著名 Python 库,出过书《The Hitchhiker’s Guide to Python》。他在从 2001 年起就职于 Heroku,同时还是 Python 软件基金会董事会成员。对了,他以前还是个大胖子,2016 年后来减肥成功。他喜欢街拍,并且还是一个电子音乐制作人。
很不幸,倦怠在软件开发中是一个非常真实的现象,尤其是创立并维护一个具有大量用户的开源项目。就这个话题,我深有体会。所以我来分析我的个人经验。
即使软件编程是你在这世上最喜欢的活动之一,每个整天写代码的人都会经历这样的事情,突然感觉“我想做别的事情,而不是坐在这写代码”。
你突然意识到,你已把冰激凌当成三餐,持续吃了好几年。你已厌倦了冰淇淋,不想再看到它。但偶尔吃冰淇淋的人不明白这一点,他们会想:你怎么会不想要冰淇淋了呢?—— Gary Bernhardt
我对软件开发的倦怠情况有一些个人经验,还有几个如何正视、防范和简单应对的小窍门。
目标的必然衰败
在 2011 年,我为自己设定了一些开源社区的目标后,我很努力地为此工作,有着好运相伴,我取得了成功(特别是 Requests 项目)。随着项目的人气不断攀升,我对继续创建新项目的动力下降了。同时,为了满足成功项目带来的大量用户群所提出的要求,我的负担越来越重,而维护项目的压力也在不断增加。
这是我想要的,是吗?
倦怠十分狡猾,它悄然而至。它慢慢地折磨你,直到你认为这种感觉已经成为了新常态,这时你再也无法轻易跳出自己挖的坑了。—— Zach Holman
410 GONE 网络失踪
我记得曾经有一次,我躺在沙发上,也就是我现在坐的地方,一边解决新出现的慢性偏头痛 (NDPH),一边回顾我的生活。就像看推文一样,我不断地刷新并思考过当时软件世界中的一些政治问题,我发现自己对这些事情非常紧张,这本身就是一个问题。不仅如此,而且我过于在意我在推特上关注的人提出的公开观点,
一旦我认识到这一点,我立刻意识到这是一个很严重的问题,必须立即停止它。我的第一个想法是提出所谓的“410 错误”情况。当然,我没有这样做,但是我很重视这个问题。
410 GONE 是 Mark Pilgrim 的一个沸沸扬扬的举动,他作为 Python 的开发者以及一个普通人,因为一些未知的原因,选择将自己从开发者社区隔离。我认为这可能是因为他感受到了来自开源“领导者”地位的压力,想要保持自己的身份认同。他突然从互联网上删除了所有的公共代码,这样所有的用户只能重新定向,访问其他非官方镜像。
伯乐在线补注:Mark Pilgrim 是《Dive into Python | 深入 Python》的作者。他不仅删代码,并且他的社交账号 GitHub、Google+、Reddit、Twitter,也全部清空了。
在我看来,这是倦怠周期的缩影以及最坏的情况。我差一点就从 GitHub 上删除所有的项目,从 SpeakerDeck 上删除所有演讲的幻灯片,搞掉我自己的网站,然后在平静的生活中继续前进。
但最后我没有这样做,为什么?因为这些是世界上对我最重要的事情。为什么我要破坏那些我努力创造、引以为傲的东西?
“只发布”模式
所以,我决定找到问题的根源,并解决它们。我意识到,我的世界已经挤入太多人,没有委派足够的人手,并且需要他人的帮助来维持我的项目。我不想失去我在社区中珍视的位置,它能够影响这个我极其重视的世界。
所以,我选择取消关注推特上的所有人。我停止关注科技趋势,也不再阅读 Hacker News。我进入了“只发布”模式。
这是一个重大的举措,就和我见过的很多其他开发者一样(一般比较隐晦,并不明确),这是一个从开源软件开发中,缓解压力的好方法。远离喧嚣,善待自己。
今天,我在社交媒体上关注了一些人,人数不多,但足以让我处于一个相对较忙的状态,而过去很长一段时间我都过于忙碌了。这一切很容易就能实现。
委派
当成千上万的活跃用户使用你的软件,或即使只有你的同事时,你很容易感到懈怠,因为你是项目的唯一联系人。所以,我已经学会以新的方式委托并加强合作。
针对 Requests 项目,我有两个合作维护者,他们帮忙处理收到的问题(issues),并解决诸如安全更新的事情。这大大降低了项目施加在我身上的压力,也帮助他们成为了 Python 社区的活跃分子。
我今天的平衡生活
所有的这些都是许多年前的事了,如今我的生活已经取得了一个良好的平衡。我在个人的兴趣爱好,如音乐制作、摄影上花费了大量的空闲时间(我甚至今年要出一张专辑)。我今年出版了一本书,另一个人花了大量的时间与精力参与其中,这本书的出版离不开他/她的鼎力相助。
有着写代码以外的爱好,实在是太重要了。
我没有和往常那样,将编程作为一项娱乐消遣的工作,但我将再一次重新出发。我不觉得现在缺少了什么,但我的夜生活已经不同往昔,不再 100% 被代码完全占据了。
开源的本质就是合作/协作。如果你发现自己倦怠了,累了,也许你需要找到一种与他人协作的新方式,来帮助你做最好的事情。你会发现,其他人可以通过做他们擅长的事,来帮助你做自己擅长的事。
原文出处:https://www.kennethreitz.org/essays/the-reality-of-developer-burnout