如何融入開源社區
Guy Martin是三星美國研究部門的高級開源策略專家,他代表三星參與了很多開源項目,也在幫助三星內部團隊部署開源軟件,以及和開源社區合作。近日,他在opensource.com上分享了關于如何融入開源社區的體會。
Martin是個航天愛好者,他援引著名宇航員Chris Hadfield的書籍《Astronaut’s Guide to Life on Earth》中的一段話形象地描繪了一個人或公司剛剛進入開源社區時面臨的選擇:
當你來到任何新環境,你總會被視作下面三種人中的一種。帶來負面作用的人:不停搗亂、制造麻煩的人。或者是不起任何作用的人:你的影響是中性的,不會打破平衡。或者是帶來正面作用的人:積極為社區帶來價值。但是如果你一開始就想證明自己是第三種人,那么你很有可能被看作是***種人,不管你帶來多了不起的技術,表現得有多積極。
Martin認為融入開源社區也是這么一回事。他認為你剛剛加入時,必須表現得謙虛,嘗試做個“隱身人”,不要去破壞社區平衡。對于公司來說尤其如此。如果你一開始就急著表現自己,那么輕則沒人理你,重則對你群起攻之。當然這也絕對不是讓你噤聲,而是說每個社區都有一些通用的法則,在你嘗試融入的時候必須先遵守,這樣才能逐漸為社區做出真正的貢獻。
在加入一個社區前,你也需要先做足功課。首先,搞清楚這個社區的溝通方式,郵件、論壇、IRC,以及當前正在討論哪些議題。然后,你需要理解這個社區是如何管理的。是像Linux內核那樣的層級結構,還是像Debian那樣的扁平結構?只有理解這一點,你才能搞清楚哪些人在項目中有決策權或影響力。等日后你想要提出新的創意或者修改代碼的提案時,只有這些人才能幫到你。
剛剛加入社區,免不了要做臟活累活,不如主動提出承擔。也許你覺得寫代碼最光榮,但是幾乎所有的開源項目都大量缺少承擔文檔、測試、bug修復、用戶界面和體驗、社區指導等工作的人員。主動承擔這些工作是很好的做法,從這些工作中你可以慢慢學到很多你沒有的技能,同時也向你的隊友證明你是一個值得信賴的伙伴,更重要的責任就會逐漸落到你肩上。
Martin的***一條建議是——尊重每個人。開源社區一直被認為是一個糟糕的工作環境,因為郵件列表或IRC里的人們似乎隨時準備著打嘴仗。Martin則認為,在社區中“表現得專業就無可指摘”。即使受到別人不友好的對待,也應該溫和地去審視自己的代碼、提過的建議或評論是否真的有可以修改的地方,而不是針對對方的態度進行反擊,這樣才能保證高效地工作。另外和項目成員私下溝通也是一種方法。就算你是地球上最牛的程序員,如果你無法尊重其他人,那么你肯定無法在開源社區取得長期的成功。
***,Martin再次引用Hadfield對宇航員人生的感悟來總結他的體會:
當你擁有某些技能卻不熟悉環境時,你就不可能做出貢獻。你***先做個隱形人。隱形人不是件壞事。要證明自己能勝任這項工作,首先要不給人制造麻煩。而你在證明自己了不起之前,先要證明自己能勝任。