如何融入開源社區(qū) 4條建議讓你在開源工作中表現(xiàn)更好
我兒時的兩個大夢想就是成為消防員或者太空探險家。雖然我并沒有為這兩大夢想做什么,但我在由加州消防部門舉辦火災預防中成為一名志愿者也算是實現(xiàn)了前者, 對于后者,我閱讀了我所能獲得的每一樣關于太空的資料,包括了小說和非小說。
最近我拿到一本 Col. Chris Hadfield寫的關于宇航員生活的書, 航天員在地球上的生活指南, 并在我去亞洲國際旅行的路上讀一讀。
除了很饑渴地去閱讀 (我非常建議這樣子),它也會一直啟發(fā)我如何才能做好我自己的工作,同時如何建議內(nèi)部開發(fā)者和三星公司這一整體在開源工作中表現(xiàn)得更好。
成為“零”
在這本書的第9章, Hadfield 寫到:
“在任何情況下。。。。。。你都會被當作為以下三種人之一。“負”:即非常有害的,制造麻煩的人;或者,“零”:留下中立的印象,不會打破這個平衡的人;或者,“正”:增加價值的人。當然,每個人都想成為”正“,有價值的人。但是,一開始就聲稱自己是”正“,這幾乎就宣告你是”負“了,不論你帶來了什么技術【或者價值】,或者你實際表現(xiàn)的怎樣。”
雖然這聽起來有點失敗主義的味道,但實際上,這與個人或者企業(yè),如何在開源中開展工作是緊密相關的。
當考慮其它事情的時候,我對此產(chǎn)生了共鳴,我記錄了與社區(qū)的互動,包括我最近發(fā)布的博客里面的一篇敘述: ”謙虛,但自信。“
當我考慮 Hadfield 的話的時候,對我來說,這非常清晰,他正在談論同樣的事情。當你是任何開源社區(qū)里一員的時候,你理所當然想成為”正“(創(chuàng)造價值的人),但是你需要盡可能成為”零“(中庸之人)--不會打破平衡--特別是處于互動的時候。
這適用于個人開源開發(fā)者,但是對于那些代表公司工作的來說更是這樣。沒有任何事情,比從一開始進入開源社區(qū)就嘗試成為“正”(創(chuàng)造價值的人),更容易讓開源社區(qū),往好里說是忽略你,或者,往壞里說是反對你。
這是否就意味著你應該縮到幕后,至此不再公開發(fā)表觀點了呢?當然不是,這里有一些你可以參考的指導原則,幫助你到達“正”(創(chuàng)造價值的人)的狀態(tài)。
做好你的功課
決定參與到開源項目前,做好你的功課或研究是無可替代的也是無捷徑可走的。
其他還包括,你要知道如何與社區(qū)溝通(郵件列表,論壇,互聯(lián)網(wǎng)中繼聊天(IRC))。同時也要知道如何提出你的想法(漏洞跟蹤系統(tǒng)或郵件列表)并且進行討論。
此外,它有助于了解社區(qū)是如何治理的-是分層級的管理者/輔助管理者(如Linux內(nèi)核),或者差不多是一個扁平結構(如Debian項目)?了解這些可以幫助你識別項目中的關鍵***和影響者,當你開始提出改變或新的想法的時候,這將有幫助。
***,理解開發(fā)的流程是至關重要的-一個bug或新功能在被納入主線之前需要經(jīng)過多少個階段?一些方面是否比其方面更有爭議的?當你修復一個bug或提出并實施新的功能的時候所有這些研究將幫助你。
做骯臟的工作
在解釋如何***進入國際空間站,哈德菲爾德寫道:
“給一個全新的環(huán)境做貢獻***的方法不是試圖證明你有多棒。而是通過施加中性的影響,先觀察已經(jīng)在這個環(huán)境中的人們的行為并向他們學習,適時地參與繁重工作。”
一個開放源碼項目就像在空間站,有無數(shù)的任務需要完成。是的,最榮耀的工作可能就是編寫代碼,但幾乎所有我見過的項目都迫切需要完成以下一個(或所有)的任務:
-
文檔
-
測試/質(zhì)量保證
-
錯誤修正/調(diào)查分類
-
用戶界面/用戶體驗
-
社區(qū)管理/溝通
常常參與這些任務中的一個,你會獲得專業(yè)的知識和獲得你之前沒有的項目知識。隨著時間的推移,你也會向其他社區(qū)成員證明你是值得信任的,可以承擔更多的責任。
重每一個人
近些年有大量評論說,開源項目是“危險的工作環(huán)境”,因為在郵件列表、IRC 等里面充斥著大量尖酸刻薄的言論。不管怎樣,向我告訴三星(還有其他的我工作過或做過咨詢的公司)的員工一樣,“永遠不要丟掉你的職業(yè)化水平(包括在開源項目中)”
虛心接受別人給你的意見(即使對方表達方式欠妥),然后重構你的代碼,采納別人的建議,或者對郵件列表的問題進行注解等,對提高開源環(huán)境中的工作效率都是非常重要的。無區(qū)域差別的文化交流也起到很重要的促進作用。記住,與參與項目的開發(fā)者的所有的私下溝通也是一樣的重要。
Hadfield (加拿大***位太空宇航員)講過一個故事,關于那些不適應與他人合作,或者對待醫(yī)療團隊或其他一些支持團隊態(tài)度惡劣的宇航員,他們在基礎層面上就是不合格的。也許你在自己的領域是一個非常聰明的開發(fā)者,但是除非你能與人和睦溝通,尊重每一個人,否則你不太可能在長久的在開源社區(qū)中獲得成功。
綜上所述
所有這些觀點都指向了一個這樣的事實:理解你的環(huán)境。Hadfield 做了這樣漂亮的總結:
”當你有了一些技巧但是不能完全理解你的環(huán)境,你沒有辦法更進一步。即使是***的情況,你還是在原地踏步。但是原地踏步并不是壞的事情。你還沒有足夠的能力去解決問題,這或許可以讓其他人能更好地工作吧。你必須勝任,才能解決那些問題,在那之前你還是先做其他的吧。“
最重要的是要記得將他的那本誕生于努力爭取來的(生死攸關的)解決方案,放在書中將經(jīng)驗進行分享。與此同時,開源項目工作的有效性已經(jīng)不可同日而語,他分享的關于生活和工作在海拔255英里的經(jīng)驗,是在不同民族間合作的努力成果,同樣也適用于開源社區(qū)成員間的信任建立。