定義開源專案的三個核心要素

csdn發表於2015-03-12

  在過去的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標誌。

  不同於程式碼和社群,專案的品牌是一成不變的。沒有法律授權的話,商標是不能隨便使用的,即使社群成員變化,專案的品牌也不會隨之改變。很大程度上講,品牌和商標是最容易控制和維護的。然而,作為可定義專案獨特性的重要工具,商標的使用卻總是不被重視,經常被專案內部所忽略。考慮到任何人都可以獲取程式碼,社群成員也來來往往的,因此,專案的品牌和商標是維持專案長久和獨立、新專案成員繼續專案的關鍵因素。

  英文:opensource

相關文章