工作压力山大之下,同时贡献开源,是怎么做到的?| 赢在Apache系列之三

作者| Anthony Shaw

译者| 刘天栋 (Ted Liu)

缘起


出于许多原因,我相信 ASF 的使命,但我进入开源软件领域的首要原因是 -- 免费和开放的知识获取。

我从12 岁(1998 年)开始学习 dBase 4 编程。对于当时还是靠送报赚取一周 5 美金的孩子来说,dBase 4 和编译器 Clipper 都不便宜。我从当地的一家公司拿到了他们舍弃不用的 dBase 4 盒装软件和使用手册。然而那个时候我们家里都没有互联网,我只能依赖手册,以及各种从二手商店和办公清仓拍卖找到的资源。在接下来的十年里,我藉由我所能找到,借用和四处猎食的一切来学习编程,直到 2002 年,我得到一个 Linux 的拷贝, 并利用我从村里的电脑商店里不需要的零件, 组装了几套 Linux 服务器。

这是我发现自由和开源软件的缘起,并且真正开始打磨我的编程技能。

我的目标是学习并分享我所学到的, 如此其他人可以更快地到达他们需要去的地方。开源帮助我发展了在欧洲很吃香的软件技能,也因此启动了我的 IT 职业生涯。

在我学会编程的 20 年后,我离开了软件工程领域,进入 Dimension Data 公司的学习和发展部门。该公司是一个有 2.9 万人的技术公司,在全球 49 个国家运营。我目前的工作涉及大约每年 3 个月的旅行 (通常是 15 个国家),管理一个分布在 4 个国家和 4 个时区的 30 多人的部门,并交付具有高变化度和短期限的大型而复杂的项目。

在 2016 年, 我做了一个选择:在晋升到我目前的角色之后,我将为我已经投入了多年的开源项目继续贡献。我为自己定下了 3 条规则:

1. 我不会牺牲我和家人相处的时间

2. 我不会破坏我对工作的承诺

3.  我会照顾我自己的健康

2    我的开源贡献


在过去的 4 年里,我每年大约做 1000 到 2000 次贡献。这些包括对大约 50 个项目做出错误修复、提交等。

我所做过的最大贡献是 Apache Libcloud, 这是一个用 Python 编写的跨多个云的抽象库。起初,这是由一个与我们设计的云 API 进行集成的工作承诺推动的,但我很快就意识到了这个库的潜力。回到我最初的自由和开放获取知识的目标, 我在计算机领域中看到了惊人的趋势。专有的 API 正在推动行业中所谓的 "粘性", 或者坦率地说“锁定”。

云计算的锁定意味着, 任何人如果无法获取可靠的网络、资金或愿意签署这些专有软件的合同, 就会被排除到技术进步之外,尤其是学生,在澳大利亚乡村,亚洲和非洲等偏远地区的开发者,以及没什么钱的开发者。

Apache Libclouds 的设计意味着你可以设计能部署到如 Apache CloudStack 和 OpenStack 的开源软件平台的应用程序。

我花费了大约 100 个小时为 Apache Libcloud 开发完成了一个容器抽象层的驱动程序,这意味着往后开发人员就可以使用相同的 API 为诸如 Kubernetes 这样的开源软件平台, 或是公共云提供商的平台来编写自动化流程。

3    三条建议


在贡献开源的同时,我也管理着与家人相处的时间,对工作的承诺和个人的身体健康。

以下是我在高压作业中持续贡献的 3 条建议:

01    选择你关心的项目

这是最重要的,有东西能激发你的兴趣一定很有意思,但长期下来,兴趣往往逐步下降。 我过去曾多次被“闪闪发光的东西”所累,但是随着事业的发展,我不得不约束自己,停止编写自己的脚本语言或者不再从头开始构建自动洒水系统。我停下来,提醒自己:这一秒或许我有时间,但是下一周呢?下个月呢?停下来吧,设定事件优先级。

对你有意义的项目设定高优先顺序

我投入最多的 2 个开源软件项目是 Apache Libcloud 和 SaltStack。我相信 Apache Libclouds 开放访问云平台的使命。我对 SaltStack 的贡献集中在云抽象、网络 API 抽象以及其他修补程序和实用程序上,让开发人员和最终用户更容易使用。

挑选一些闪亮的东西和你相信的东西之间的区别在于, 长期来说如果你做出更多的承诺, 你会发现你会更容易地跳进去帮助。但是你如何找到时间呢?

02    明智地选择你的任务并创造时间

我一直被问到这个问题, "你是如何找到时间的"。当我试图说服人们为开源软件做贡献时,人们的反应总是与时间有关。

摆脱那些没有附加价值的东西

如果负担得起,就花钱找帮手,以让你空出更多的时间。开源不仅有助于你的技能和知识的提升,也会增加你对于潜在雇主的价值。雇个人帮你清扫庭院的落叶或者一周做一次家务,并不需要花费多少钱,但如果你能算出从这些空出来的时间里能得回多少价值,那这就很有意义了。

另一件我很严格控制的事情是无节制地看电视剧和玩游戏。玩 100 小时的最新游戏可能会很有趣, 但我发现从中长期来说,开发软件会更有回报。找到不用消耗太多时间的放松之法, 比如冥想、锻炼或阅读。

但是,如果你确实需要翘个脚,看几个小时电视,别感到内疚。

聪明而非努力的工作

当我坐下来贡献一些东西的时候, 我会仔细地计划和思考我将要做什么, 我将要测试什么,以及我将如何构造它。我用远见和目标快速完成任务。一旦我完成了这一个模块并通过测试, 我就会提交贡献。不要尝试在周末重构整个项目,保持简单。

但我们都知道,有时最好的计划也可能夭折。如果你发现自己正在走向一个无底洞, 你的程序无法编译, 或者你不能消除那些我们开发人员最爱的僵尸bug,那么

暂停一下

你可以很容易地干到清晨三点,同时用头撞墙,试图弄明白问题症结。根据我过去管理开发团队时的经验,如果你被卡住了, 休息一下,寻求帮助。如果还是行不通,那就开始处理其他的事。

有时如果我不能解决某个任务,我会暂停工作一小时、一周、甚至一整年。当你有一个顿悟或灵感的时候,再回去完成这项工作。

上述技巧可以节省时间,交付更好的软件。它是开发人员应该具备的好技能。

找出时间

贡献归结于三件事:

1. 一个想法

2. 一种领悟

3. 一项"更改",比如修复、功能、测试、代码审阅、文档等。

这些想法是我通过阅读、倾听用户或查看 bug 时得到的。当我有空余时间时 (如午休时, 或等人等事的时候), 我会寻求灵感或想法。

我通过听播客和在会议上与人交谈的时间来理解学习。我每周在车上呆几个小时,花时间做一些家务活。在那段时间里, 我总是戴上耳机收听最新的 Python 播客或开源软件更新。

在飞机上 (我写这篇博客的地方),就是我坐下来写东西、编码或测试的时间。去年我在空中飞行了足以环游世界八次的里程,大部分时间我都花在编码、放松或睡眠上。除此之外, 在机场休息室、火车上或等人时,我会将笔记本电脑拿出来。任何有 Wi-Fi 的飞机,我都可以推送代码修改;而着陆的那一刻,我的笔记本电脑总会打开并运行着 git 代码推送。

周末-是不务正业的非工作时间,除非我正在旅行或独处中。这是我定下的规则的第一条: 不要牺牲与家人相处的时间。

03    管理工作量, 避免倦怠

这有二个组成部分,管理您的工作承诺和管理您的贡献。你必须两样都做才能成功。

停下来休息一下吧。无论何时总是有一个合并拉请求,一个 bug 待检查,一封最终用户的电子邮件。如果你需要休息一段时间,那么就坦诚地和团队聊聊寻求帮助。我们全都在同一条船上,而贡献与休息都是个可选项。

很多时候,我看到人们的贡献,就感觉他们像是在完成一项义务,一定要在凌晨 2 点测试和修复 bug,然后早晨 8 点去上班。这通常是因为他们关心项目,关心质量,关心自己的声誉。但有时,你需要退后一步。

一个强大的项目社区会站出来提供帮助。如果你知道在接下来的几个月里工作将会很艰难,告诉团队,并给自己设定一个极限。调整心态,直到事情平静下来。

由于经常会有财务后果 (或至少在一般人的观念里),管理好工作承诺是艰难的。

连续工作七小时后,你其实不会再增加任何价值。我以前在办公桌旁边有一张躺椅,现在我在家工作时放了张吊床。经过几个小时的扎实地集中精神工作后,我会停止工作一个小时, 愉快地坐下来无所事事。你的大脑需要休息一下,当然你会从一个路人那里得到奇怪的 "努力工作" 的讽刺评语,但我要工作起来更聪明而不是一味地更努力。一旦我恢复精力后,我能以 30-40% 的加速度,以更好的质量和更佳的洞察力完成下一个任务。而在我连续做了 12-14 小时的工作后,大脑就会宕机以节省能量。而批判性思维会是第一个被关掉,然后是逻辑思维,这就是你将犯错误的地方,从而交付低于预期质量的工作成果。

我住得离海滩很近,所以我会去海边游泳或花点时间和家人在一起。作为一名经理,我有责任向员工明确表示,鼓励他们退后一步,重新充电。我会在公司聊天频道里告诉别人,因为下午要去海滩,我会离线几个小时。我不觉得内疚,希望他们也能效仿。

学会如何说不,并且不为此感到内疚。当我教导员工时, 我会问: "谁让你这么做的?是否可以选择说不?做这个有什么价值?不做的后果是什么?还有谁能做?”

每个人都希望能帮助别人和成为不可缺少的一份子,但是你的可靠性和你的名声以及你所交付的东西的质量同样重要。

4    结论

照顾你的健康,聪明地利用你的时间和找出你贡献的理由。

Anthony Shaw

Anthony Shaw 是 Dimension Data 和 NTT 公司的创新和人才发展的集团总监。Anthony 是开源的倡导者,Apache 软件基金会和 Python 软件基金会的会员。他也是 20 多个开源项目的积极贡献者,包括 Apache Libcloud 和 SaltStack。在 Dimension Data,Anthony 正在为其全球 50 个国家的客户和 3 万名员工推动数字转型 - 关键的举措是软件技能、自动化、DevOps 和云计算。Anthony 生活在澳大利亚·悉尼,他同时也为 17 万博客读者撰写关于技能,软件和自动化的文章。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,443评论 25 707
  • 查询引擎 一、Phoenix 贡献者::Salesforce 简介:这是一个Java中间层,可以让开发者在Apac...
    秋天的程序员阅读 1,013评论 0 4
  • 意识的方向和选择的频率会决定你如何感觉、如何思考、如何行动。
    leo_s阅读 380评论 1 5
  • 压测前: 明确压测的目的,观测指标; 准备好压测方案,几组case,case分别压测多久; 申请压测环境,告知进行...
    刘阳0292阅读 1,176评论 0 6
  • 生活中常听人说,要活在当下。因为,现实生活中的人,有活在过去的,有活在未来的,而真正活在当下的并不多。那么,...
    生活微物语阅读 174评论 0 2