定義開源專案的三個核心要素
在過去的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
相關文章
- 每個開源專案都離不開的三要素
- 找個開源專案
- 專案管理中7個重中之重的要素專案管理
- 一個檔案的開源專案,開啟你的開源之旅
- 開源專案推薦:提高研發效率的5個開源專案
- 專案管理計劃的意義與基本要素專案管理
- 專案計劃階段核心要素(轉載)
- 傻瓜軟體要素定義
- 分享一個「實時三維人臉重建」的開源專案
- 5個造福世界的開源專案
- 24 個很棒的開源 Rust 專案Rust
- 定製自己的特斯拉燈光秀開源專案
- ERP專案準備三要素(轉)
- 可靠、安全、穩定,開源高質量專案 | 亞馬遜的開源文化亞馬遜
- 專案管理的要素(轉)專案管理
- 企業開源指南:建立一個開源專案
- 分享個 golang 開源小專案Golang
- 開源一個文字分析專案
- 如何熟悉一個開源專案?
- 5個開源專案中常見的陷阱
- 值得mark的11個開源機器學習專案機器學習
- 專案成功關鍵要素和專案成功關鍵要素
- ERP專案成功實施的三大關鍵要素
- 企業開源指南:啟動一個開源專案
- AI專案成功的4要素AI
- IT專案中的要素關係
- 接私活必備的 10 個開源專案!
- 15個很有趣的開源專案推薦
- 20 個值得學習的 Vue 開源專案Vue
- 最具影響力的16個開源專案
- 朝花夕拾——更新兩個開源專案
- 怎樣做好一個開源專案
- 開源兩個spring api專案SpringAPI
- 開源一個機器學習文字分析專案機器學習
- 推薦幾個優秀的開源的專案
- 10 個古老的經久不衰的開源專案
- 11個優秀的Android開發開源專案Android
- 新產品開發專案流程的七要素(轉)