查看原文
其他

从满腔热血到想删库跑路,神级程序员分享开源苦与乐

2017-06-21 开源中国


The Reality of Developer Burnout


著名的 Python 开源网络库 Requests 的开发者 Kenneth Reitz 发文分享了他的心路历程:满腔热血做开源项目,却被来自项目用户的无止境的请求让自己疲惫不堪,甚至一度想把代码都删了。最终,重新寻找编程以外的生活乐趣,平衡工作与生活。


大家应该都曾有过写一整天代码的经历,那你们会不会突然有一种感觉,觉得即使编程是你最喜欢的事情,但这一刻却宁愿去随便干点别的也不想碰代码了。


倦怠,是软件开发过程中的一个非常现实的现象。特别是在创建和维护有大量用户的开源项目时,更是容易出现。我也经历过,在此想分享一些个人的经验。 


前进路上不可避免之痛

2011 年,我为自己制定了开源目标,并为此努力。幸运的是,我非常成功。随着人气升高,我也有了继续构建新项目的动力。同时,原有项目的大量支持用户群的需求和维护的负担压力也在增加。


这看起来就是我想要的,对吧?


差点就发生的 410 GONE

记得有一天,我躺在沙发上,重新评估我的生活。我发现自己对软件的 political issues 非常在意,这本身就是一个问题。不仅如此,我过于关注 Twitter 上那些关注我的人的意见。


当认识到这一点,我意识到着是一个很大的问题,应该立即停止。我的第一个想法是拉出所谓的 410 GONE 。当然,最终我没这样做,但是我确实有很认真的想过。


编者注:410 GONE 可以看成是“资源已永久失效,并且服务端希望客户端“忘掉”它”的意思,代表人物是 Python 开发者 Mark Pilgrim ,他是 Dive Into ... 系列编程书籍的作者,比较出名的是 Dive Into Python 。因不明原因,突然将他的 GitHub、Google+、Reddit、 Twitter 账户全部删除,他的所有网站都变成了 410: Gone 。


在我看来,这是倦怠期最直接的缩影和最坏的情况。我一度也非常想从 GitHub 删除所有的项目,从 SpeakerDeck 中删除所有的痕迹,注销网站,并且平静地度过以后的生活。


但是,我没有。为什么?因为这些都是这个世界上对我很最重要的东西。为什么我要去摧毁自己努力创造的东西,并为此感到自豪?


选择

所以,我决定找出问题的根源并解决。我意识到问题是因为正在让太多的人进入我的世界,没有足够的放权委托给人去帮助维护我的项目。我不想失去自己在社区中最大的价值 - 希望能够影响我关心的软件世界。


所以我的目光不再追随 Twitter 上的任何人,不再关注技术趋势和阅读黑客新闻。我进入仅发布(publish-only)模式。


我认为这是一个不错的举动,也曾经在许多其他开发者身上看到(虽然通常是隐性的),这是从开源软件开发的压力中恢复的好方法。从各种“噪音”中放松自己,休息一下。


委托

当有成千上万的人,甚至里面还有你的同事,在积极地使用你的软件时,如果你是项目的唯一“联络点”,你会很容易崩溃。所以,我学会了以新的方式委托和协作。


通过 Requests ,我找到了两个 co-maintainers 来处理 issues 和诸如安全版本之类的事情。这大大减轻了项目对我的压力,同时也让他们成为了 Python 社区非常活跃的成员。


寻求平衡

上面说的这些都是很多年前的状态,如今的我拥有一个很好的平衡,过着和社会上的许多人一样的健康的生活,尽管仍然一直很忙。我花了大量的空闲时间在自己的爱好上,比如音乐制作和摄影,甚至还发布了一张专辑,出版了一本书。

在编写代码之外,拥有其它的兴趣,是非常重要的。


虽然我依然没有达到梦想中的休闲地编码的状态,但如果再来一次我还会这样选择。我不觉得我错过了任何东西,但起码我的夜晚不再像以前那样只有代码。


开源就是协作。如果你发现自己被过分榨取,也许你需要找到新的方式与他人合作,来帮助把事情做好。 你会发现,其他人也会愿意像你一样尽力把事情都做到最好。


作者 Kenneth Reitz 

是著名的软件工程师、国际主讲人、开源倡导者、街头摄影师和电子音乐制作人,同时也是 Python 软件基金会的董事会成员,以众多的开源软件项目而闻名。



推荐阅读

33 款主宰 2017 iOS 开发的开源库

Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)

十大 Node.js 端到端测试框架,快速提升工作效率

从“某公司专利”事件,谈谈开源协议与知识产权

“放码过来”邀您亮“项”,一不小心就火了!

点击“阅读原文”查看更多精彩内容

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存