工作壓力山大之下,同時貢獻(xiàn)開源,是怎么做到的?| 贏在Apache系列之三

作者| Anthony Shaw

譯者| 劉天棟 (Ted Liu)

1?緣起


出于許多原因,我相信 ASF 的使命,但我進(jìn)入開源軟件領(lǐng)域的首要原因是 -- 免費和開放的知識獲取。

我從12 歲(1998 年)開始學(xué)習(xí) dBase 4 編程。對于當(dāng)時還是靠送報賺取一周 5 美金的孩子來說,dBase 4 和編譯器 Clipper 都不便宜。我從當(dāng)?shù)氐囊患夜灸玫搅怂麄兩釛壊挥玫?dBase 4 盒裝軟件和使用手冊。然而那個時候我們家里都沒有互聯(lián)網(wǎng),我只能依賴手冊,以及各種從二手商店和辦公清倉拍賣找到的資源。在接下來的十年里,我藉由我所能找到,借用和四處獵食的一切來學(xué)習(xí)編程,直到 2002 年,我得到一個 Linux 的拷貝, 并利用我從村里的電腦商店里不需要的零件,?組裝了幾套 Linux 服務(wù)器。

這是我發(fā)現(xiàn)自由和開源軟件的緣起,并且真正開始打磨我的編程技能。

我的目標(biāo)是學(xué)習(xí)并分享我所學(xué)到的, 如此其他人可以更快地到達(dá)他們需要去的地方。開源幫助我發(fā)展了在歐洲很吃香的軟件技能,也因此啟動了我的 IT 職業(yè)生涯。

在我學(xué)會編程的 20 年后,我離開了軟件工程領(lǐng)域,進(jìn)入?Dimension Data 公司的學(xué)習(xí)和發(fā)展部門。該公司是一個有 2.9 萬人的技術(shù)公司,在全球 49 個國家運營。我目前的工作涉及大約每年 3 個月的旅行 (通常是 15 個國家),管理一個分布在 4 個國家和 4 個時區(qū)的?30 多人的部門,并交付具有高變化度和短期限的大型而復(fù)雜的項目。

在 2016 年, 我做了一個選擇:在晉升到我目前的角色之后,我將為我已經(jīng)投入了多年的開源項目繼續(xù)貢獻(xiàn)。我為自己定下了 3 條規(guī)則:

1. 我不會犧牲我和家人相處的時間

2. 我不會破壞我對工作的承諾

3.??我會照顧我自己的健康

2? ??我的開源貢獻(xiàn)


在過去的 4 年里,我每年大約做 1000 到 2000 次貢獻(xiàn)。這些包括對大約 50 個項目做出錯誤修復(fù)、提交等。

我所做過的最大貢獻(xiàn)是 Apache Libcloud, 這是一個用 Python 編寫的跨多個云的抽象庫。起初,這是由一個與我們設(shè)計的云 API 進(jìn)行集成的工作承諾推動的,但我很快就意識到了這個庫的潛力?;氐轿易畛醯淖杂珊烷_放獲取知識的目標(biāo), 我在計算機(jī)領(lǐng)域中看到了驚人的趨勢。專有的 API 正在推動行業(yè)中所謂的 "粘性", 或者坦率地說“鎖定”。

云計算的鎖定意味著, 任何人如果無法獲取可靠的網(wǎng)絡(luò)、資金或愿意簽署這些專有軟件的合同, 就會被排除到技術(shù)進(jìn)步之外,尤其是學(xué)生,在澳大利亞鄉(xiāng)村,亞洲和非洲等偏遠(yuǎn)地區(qū)的開發(fā)者,以及沒什么錢的開發(fā)者。

Apache Libclouds 的設(shè)計意味著你可以設(shè)計能部署到如 Apache CloudStack 和 OpenStack 的開源軟件平臺的應(yīng)用程序。

我花費了大約 100 個小時為 Apache Libcloud 開發(fā)完成了一個容器抽象層的驅(qū)動程序,這意味著往后開發(fā)人員就可以使用相同的 API?為諸如 Kubernetes 這樣的開源軟件平臺, 或是公共云提供商的平臺來編寫自動化流程。

3? ??三條建議


在貢獻(xiàn)開源的同時,我也管理著與家人相處的時間,對工作的承諾和個人的身體健康。

以下是我在高壓作業(yè)中持續(xù)貢獻(xiàn)的 3 條建議:

01????選擇你關(guān)心的項目

這是最重要的,有東西能激發(fā)你的興趣一定很有意思,但長期下來,興趣往往逐步下降。 我過去曾多次被“閃閃發(fā)光的東西”所累,但是隨著事業(yè)的發(fā)展,我不得不約束自己,停止編寫自己的腳本語言或者不再從頭開始構(gòu)建自動灑水系統(tǒng)。我停下來,提醒自己:這一秒或許我有時間,但是下一周呢?下個月呢?停下來吧,設(shè)定事件優(yōu)先級。

對你有意義的項目設(shè)定高優(yōu)先順序

我投入最多的 2 個開源軟件項目是 Apache Libcloud 和 SaltStack。我相信 Apache Libclouds 開放訪問云平臺的使命。我對 SaltStack 的貢獻(xiàn)集中在云抽象、網(wǎng)絡(luò) API 抽象以及其他修補程序和實用程序上,讓開發(fā)人員和最終用戶更容易使用。

挑選一些閃亮的東西和你相信的東西之間的區(qū)別在于, 長期來說如果你做出更多的承諾, 你會發(fā)現(xiàn)你會更容易地跳進(jìn)去幫助。但是你如何找到時間呢?

02????明智地選擇你的任務(wù)并創(chuàng)造時間

我一直被問到這個問題, "你是如何找到時間的"。當(dāng)我試圖說服人們?yōu)殚_源軟件做貢獻(xiàn)時,人們的反應(yīng)總是與時間有關(guān)。

擺脫那些沒有附加價值的東西

如果負(fù)擔(dān)得起,就花錢找?guī)褪郑宰屇憧粘龈嗟臅r間。開源不僅有助于你的技能和知識的提升,也會增加你對于潛在雇主的價值。雇個人幫你清掃庭院的落葉或者一周做一次家務(wù),并不需要花費多少錢,但如果你能算出從這些空出來的時間里能得回多少價值,那這就很有意義了。

另一件我很嚴(yán)格控制的事情是無節(jié)制地看電視劇和玩游戲。玩 100 小時的最新游戲可能會很有趣, 但我發(fā)現(xiàn)從中長期來說,開發(fā)軟件會更有回報。找到不用消耗太多時間的放松之法,?比如冥想、鍛煉或閱讀。

但是,如果你確實需要翹個腳,看幾個小時電視,別感到內(nèi)疚。

聰明而非努力的工作

當(dāng)我坐下來貢獻(xiàn)一些東西的時候, 我會仔細(xì)地計劃和思考我將要做什么, 我將要測試什么,以及我將如何構(gòu)造它。我用遠(yuǎn)見和目標(biāo)快速完成任務(wù)。一旦我完成了這一個模塊并通過測試, 我就會提交貢獻(xiàn)。不要嘗試在周末重構(gòu)整個項目,保持簡單。

但我們都知道,有時最好的計劃也可能夭折。如果你發(fā)現(xiàn)自己正在走向一個無底洞, 你的程序無法編譯, 或者你不能消除那些我們開發(fā)人員最愛的僵尸bug,那么

暫停一下

你可以很容易地干到清晨三點,同時用頭撞墻,試圖弄明白問題癥結(jié)。根據(jù)我過去管理開發(fā)團(tuán)隊時的經(jīng)驗,如果你被卡住了, 休息一下,尋求幫助。如果還是行不通,那就開始處理其他的事。

有時如果我不能解決某個任務(wù),我會暫停工作一小時、一周、甚至一整年。當(dāng)你有一個頓悟或靈感的時候,再回去完成這項工作。

上述技巧可以節(jié)省時間,交付更好的軟件。它是開發(fā)人員應(yīng)該具備的好技能。

找出時間

貢獻(xiàn)歸結(jié)于三件事:

1.?一個想法

2.?一種領(lǐng)悟

3.?一項"更改",比如修復(fù)、功能、測試、代碼審閱、文檔等。

這些想法是我通過閱讀、傾聽用戶或查看 bug 時得到的。當(dāng)我有空余時間時 (如午休時, 或等人等事的時候),?我會尋求靈感或想法。

我通過聽播客和在會議上與人交談的時間來理解學(xué)習(xí)。我每周在車上呆幾個小時,花時間做一些家務(wù)活。在那段時間里, 我總是戴上耳機(jī)收聽最新的 Python 播客或開源軟件更新。

在飛機(jī)上 (我寫這篇博客的地方),就是我坐下來寫東西、編碼或測試的時間。去年我在空中飛行了足以環(huán)游世界八次的里程,大部分時間我都花在編碼、放松或睡眠上。除此之外, 在機(jī)場休息室、火車上或等人時,我會將筆記本電腦拿出來。任何有 Wi-Fi 的飛機(jī),我都可以推送代碼修改;而著陸的那一刻,我的筆記本電腦總會打開并運行著 git 代碼推送。

周末-是不務(wù)正業(yè)的非工作時間,除非我正在旅行或獨處中。這是我定下的規(guī)則的第一條: 不要犧牲與家人相處的時間。

03????管理工作量, 避免倦怠

這有二個組成部分,管理您的工作承諾和管理您的貢獻(xiàn)。你必須兩樣都做才能成功。

停下來休息一下吧。無論何時總是有一個合并拉請求,一個 bug 待檢查,一封最終用戶的電子郵件。如果你需要休息一段時間,那么就坦誠地和團(tuán)隊聊聊尋求幫助。我們?nèi)荚谕粭l船上,而貢獻(xiàn)與休息都是個可選項。

很多時候,我看到人們的貢獻(xiàn),就感覺他們像是在完成一項義務(wù),一定要在凌晨 2 點測試和修復(fù) bug,然后早晨 8 點去上班。這通常是因為他們關(guān)心項目,關(guān)心質(zhì)量,關(guān)心自己的聲譽。但有時,你需要退后一步。

一個強(qiáng)大的項目社區(qū)會站出來提供幫助。如果你知道在接下來的幾個月里工作將會很艱難,告訴團(tuán)隊,并給自己設(shè)定一個極限。調(diào)整心態(tài),直到事情平靜下來。

由于經(jīng)常會有財務(wù)后果 (或至少在一般人的觀念里),管理好工作承諾是艱難的。

連續(xù)工作七小時后,你其實不會再增加任何價值。我以前在辦公桌旁邊有一張?zhí)梢?,現(xiàn)在我在家工作時放了張吊床。經(jīng)過幾個小時的扎實地集中精神工作后,我會停止工作一個小時,?愉快地坐下來無所事事。你的大腦需要休息一下,當(dāng)然你會從一個路人那里得到奇怪的 "努力工作" 的諷刺評語,但我要工作起來更聰明而不是一味地更努力。一旦我恢復(fù)精力后,我能以?30-40% 的加速度,以更好的質(zhì)量和更佳的洞察力完成下一個任務(wù)。而在我連續(xù)做了 12-14 小時的工作后,大腦就會宕機(jī)以節(jié)省能量。而批判性思維會是第一個被關(guān)掉,然后是邏輯思維,這就是你將犯錯誤的地方,從而交付低于預(yù)期質(zhì)量的工作成果。

我住得離海灘很近,所以我會去海邊游泳或花點時間和家人在一起。作為一名經(jīng)理,我有責(zé)任向員工明確表示,鼓勵他們退后一步,重新充電。我會在公司聊天頻道里告訴別人,因為下午要去海灘,我會離線幾個小時。我不覺得內(nèi)疚,希望他們也能效仿。

學(xué)會如何說不,并且不為此感到內(nèi)疚。當(dāng)我教導(dǎo)員工時, 我會問: "誰讓你這么做的?是否可以選擇說不?做這個有什么價值?不做的后果是什么?還有誰能做?”

每個人都希望能幫助別人和成為不可缺少的一份子,但是你的可靠性和你的名聲以及你所交付的東西的質(zhì)量同樣重要。

4? ??結(jié)論

照顧你的健康,聰明地利用你的時間和找出你貢獻(xiàn)的理由。

Anthony Shaw

Anthony Shaw 是 Dimension Data 和 NTT 公司的創(chuàng)新和人才發(fā)展的集團(tuán)總監(jiān)。Anthony 是開源的倡導(dǎo)者,Apache 軟件基金會和 Python 軟件基金會的會員。他也是 20 多個開源項目的積極貢獻(xiàn)者,包括 Apache Libcloud 和 SaltStack。在 Dimension Data,Anthony 正在為其全球 50 個國家的客戶和 3 萬名員工推動數(shù)字轉(zhuǎn)型 - 關(guān)鍵的舉措是軟件技能、自動化、DevOps 和云計算。Anthony 生活在澳大利亞·悉尼,他同時也為 17 萬博客讀者撰寫關(guān)于技能,軟件和自動化的文章。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,308評論 25 708
  • 查詢引擎 一、Phoenix 貢獻(xiàn)者::Salesforce 簡介:這是一個Java中間層,可以讓開發(fā)者在Apac...
    秋天的程序員閱讀 1,257評論 0 4
  • 意識的方向和選擇的頻率會決定你如何感覺、如何思考、如何行動。
    leo_s閱讀 405評論 1 5
  • 壓測前: 明確壓測的目的,觀測指標(biāo); 準(zhǔn)備好壓測方案,幾組case,case分別壓測多久; 申請壓測環(huán)境,告知進(jìn)行...
    ll0292閱讀 1,451評論 0 6
  • 生活中常聽人說,要活在當(dāng)下。因為,現(xiàn)實生活中的人,有活在過去的,有活在未來的,而真正活在當(dāng)下的并不多。那么,...
    生活微物語閱讀 195評論 0 2

友情鏈接更多精彩內(nèi)容