營運開源社區5大條件
開源技術最初只是發燒友的玩意,但今天Google、VMware、Cisco到微軟都利用開源社區研發技術。要營運一個健康的開源社區,需要什麼條件?
Tong Hui一篇文章提到,要營運一個健康的開源社區需要的是5個P。分別是Purpose(目標)、People(人)、Practice(實踐)、Place(場地)和Progress(進取)。Purpose(目標)最重要,一個開源社區無疑必須要有一個清晰且簡明的目標,能夠用一句話直接說明。例如GNOME基金會的目標,便是以完全自由軟體構建公共通用的桌面電腦平台。其次是People(人),開源社區不同於其他社區,甚至與很多技術社區又有很多不同,這裡面的關鍵是開源社區裡的人是特定的一類人:黑客。每次我都要說,黑客與所謂「駭客」不同,黑客以研究電腦如何為人類服務為己任,而「駭客」則是以損壞別人的數位財物,盜取別人的隱私和財產為目的,是一種犯罪行為,「駭客」的行徑是為黑客群體所不齒的。
秉持黑客開放倫理的人往往能夠在開源社區中,有較高的地位並被社區所尊重。因此構建一個開源社區,也就是在各種場合儘可能吸納和尋找這樣的優秀黑客人才。也正是因為有了這些人,才能開展符合開源社區精神的實踐。社區裡有了人,大家做什麼事呢?答案是 Practice(實踐)。開源社區根據目的不同要做的事情也不盡相同,以開發開源項目為目標的,主要活動肯定是以開發展開,比如編寫程式碼、Bug維護、文檔、美工和產品推廣;而以推廣技術為目標的社區,主要活動會圍繞技術本身展開,比如實例開發、本地化/國際化、推廣活動和市場。這些活動各有各的特點,也各有各的要求,不同的實踐活動因為有了合作,而突顯了團隊協作的重要性,同時因為跨領域、跨學科的融合,為不同學術背景的人構建了一個充分交流和合作的平台。
由此其實可以推演出一個結論,所有這些實踐活動的最終都是一件事︰交流。例如台灣的COSCUP(開源人年會),他們有一個清晰的目標:四成演講,六成交朋友。這簡明而清晰的目標直接述說了開源社區的根本目標,就是人際交流而導致的產出,開源正是因為社區交流和合作,而帶來的新的開發方式上的巨大變革。因此開源社區的主要實踐就是要促進人際交流,促進去中心化的合作。因為開源開發更多的是線上活動,線下活動比較少,更沒有太多要求,而為了交流的目的任何資源都可以被利用起來,反倒是Persionality(個性),往往是被大家忽略的。很多中國的開源社區有個不好的思想,認為開源社區必須「掛靠」在某個組織下面,或者大公司大企業,絲毫沒有想過開源社區應該是獨立自主的。開源社區必須有自己的風格,有獨立的運營能力,而不能依靠別人的力量。因為越是依賴別人,就越是將自己應該承擔的義務由別人來承擔,與此同時也就把自己可以享有的權利,也一併讓渡給了別人。雖然俗話講「大樹底下好乘涼」,但離開了罩著你的「大樹」,這個社區還能不能獨立存在?還能不能獨立運營下去?上面講過的一些社區之所以後來名存實亡,就是因為缺少了獨立自主的能力,最終葬送了自己。
不僅社區如此,社區裡的每一個成員也都應有自主能力。能不能自主貢獻開源項目,能不能找到自己在社區中的地位和價值,完全取決於自主的程度。台灣的g0v.tw(零時政府)有一句名言「不要說『為什麼沒有人』,你就是那個『沒有人』」,這句話直接回答了「為什麼沒有人做XXX?」這種問題。對有志於參與開源社區的人來說,永遠不要問「怎麼沒有人來做XXX?」這種問題。因為當你發現需要改進的時候,就是需要你貢獻的地方,不要等著別人來做而你享受成果,而應該努力貢獻在你發現的問題,也許這就是你價值體現的地方。
對社區領導者來說,能否提供給社區成員個人成長的空間是很重要的,但比這更重要的卻是整個社區的 Progress(進取)能力。如果一個社區只有各種混吃混喝,或者開發的開源產品不能跟上時代,很快被取代,沒有讓人看到社區進取的能力,這樣的社區會最終分崩離析的。北京一個推廣某開源項目開源社區,曾在2008年的一次活動後名噪一時,也深諳開源社區需要多多交流的道理,所以利用活動剩餘的贊助費,盛情招待社區成員吃吃喝喝,這本是一件很好的事,可是後來很長一段時間,大家參加社區活動都為了蹭吃蹭喝了。多年後,這個社區漸漸名存實亡,無法開展起完好的活動了。回顧這段過程,並不是因為大家蹭吃蹭喝,而是因為社區在推動技術上努力太少,後期也沒有什麼貢獻了,無法招攬並留住新成員。
再舉一個我參加過的例子,有開發者在2012年,和幾位同好決定成立一個開源硬體的社區,目的是為了構建完全開源的四旋翼飛行器Open-Drone。社區規模還是很大的,也有大量活躍成員,甚至還上了《環球時報》(英文版)和《今日北京》(英文版)等報紙。但很快隨著老成員離開北京,或忙於自身事物,社區最終在去年歸於平靜。現在回想,大家的目標是For Fun,而在技術層面遲遲沒有太多推進,產品最終也沒有原型開發出來,雖然最終有很多附加產品出現,但社區卻始終沒能發展和留住新成員。說到底,社區的進取是伴隨著每個社區成員的不斷進取奉獻的。上面的兩個實例可以很清楚的看出,社區成員個人要有努力進取的動力,同時社區也要給這些成員發展的空間,鼓勵和促發新成員找到自身價值,盡快融合到現有社區結構中來。