定義開源項目的三個核心要素
在過去的30年中開源走過了漫長的道路,而今已成為最流行文化的標識。每當提到開源項目,人們就會想到下面這些:管理結構、產品平臺類型、編程語言、工具、技術細節、是企業贊助還是獨立項目等等。
然而,什么才能真正定義一個開源項目,使之與其他開源項目區分開來呢?我認為可以使用以下三點核心要素來定義和區分開源項目:代碼、社區和品牌。
1. 高質量的代碼
代碼為王。產品的功能是由代碼實現的,這也是開源項目構建的第一步:構建有用的代碼。技術人員關注代碼能做什么、它是如何實現的,市場人員更關注產品如何解決客戶的問題,而當人們尋找一個開源項目來使用時,首先找到的便是代碼。
聽起來很簡單——既然這樣我們為什么不能單純使用代碼來定義一個開源項目呢?軟件開發人員眾所周知,代碼是變化的,并且具有臨時性。開源項目中,代 碼很難跟蹤,它不像公司主導項目的代碼那樣可控:開源代碼是無限變換的。一旦你的代碼提交到開源許可的公共庫中,任何人都可以訪問和修改,來實現他們各自 的用途。當別人使用了你的代碼并做了修改,它便不是你初始項目的一部分了。
2. 具有凝聚作用的社區
如果代碼指的是項目“是什么”,那么社區便代表了項目“是誰” ——組建項目的那些人。項目的核心社區主要包含了那些積極推動項目的人。例如,編碼的工程師,還有給予反饋和具體修改建議的終端用戶;整體社區還包括了那 些不做代碼但是提供支持的人。比如,管理/進度監督人員,公關/市場人員,培訓人員,財務人員或招聘支持人員等。社區規范,禮儀,和風氣有助于區分一個開 源項目。
雖然參加有些開源項目可能是有償的(如,企業雇傭的軟件工程師,他們使用一定比例時間參加開源項目),但大部分開源社區的成員都是自愿無償的加入開源項目。因此,成員們的去留都是興趣使然,或根據承諾任務的增減,或雇主策略的改變。像代碼一樣,社區是不斷變化的。
不像企業的軟件開發項目那樣,可以計劃招特定技能的人員做具體的工作,開源社區的參與是不可預測的,項目也不好控制。相對于有償項目而言,個人沖突 很容易導致成員離開開源社區。但是開源社區也有它的好處:有成員的熱情和動力,有成功項目社區的持久力,還有大家對代碼的同步和不斷改進。
3. 具有宣傳效力的品牌
外部世界當然是通過品牌來了解開源項目的,當個人或公司選擇使用或投資一個項目時,品牌幫助他們在同類項目中進行區別和參考。當然他們也會考慮其他 的細節,但是通過品牌進行了解更容易些。比如,他們會考慮“我需要支持 Hadoop 么?”而不是想“我需要支持 Cloudera 版本,Hortonworks 版本還是其他新發布的 ODP?” 目前,不收費的 Hadoop 版本主要有三個:Apache(最原始的版本,所有發行版均基于這個版本進行改進)、Cloudera 版本(Cloudera’s Distribution Including Apache Hadoop,簡稱CDH)、Hortonworks 版本(Hortonworks Data Platform,簡稱“HDP”)
“品牌”包括很多東西:項目的正式名稱,項目或產品的Logo,甚至項目網站的外觀和產品的用戶接口。有些品牌的組件,甚至使用了具有法律效力的商標:包括官方軟件產品的名稱和Logo標志。
不同于代碼和社區,項目的品牌是一成不變的。沒有法律授權的話,商標是不能隨便使用的,即使社區成員變化,項目的品牌也不會隨之改變。很大程度上 講,品牌和商標是最容易控制和維護的。然而,作為可定義項目獨特性的重要工具,商標的使用卻總是不被重視,經常被項目內部所忽略。考慮到任何人都可以獲取 代碼,社區成員也來來往往的,因此,項目的品牌和商標是維持項目長久和獨立、新項目成員繼續項目的關鍵因素。
原文:http://opensource.com/life/15/2/3-key-elements-every-open-source-project
譯文:http://code.csdn.net/news/2824179 譯者: jsunnygirl