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