每個開源專案都離不開的三要素
開源在過去的30年走過了很長的一段路,當下已經進入了主流的文化意識中,當思考開源專案時,人們習慣使用如下一系列來歸類:治理結構、產品平臺型別、程式語言、效用、技術細節(什麼語言編寫)、企業贊助或完全獨立等等。
但是什麼是真正可定義一個開源專案?或者什麼是區別於其他開源專案的獨特存在?我的建議,從框架、定義及區別的角度講,有三個要素是開源專案的根本:程式碼、社群和品牌。
程式碼
程式碼為王,程式碼就是能夠使產品做什麼的東西,也是一個開源專案起始的原因:做一些有用的東西!技術上令人興奮的:程式碼做什麼,它是如何工作的。市場上令人興奮的是:此產品如何解決了客戶的問題。程式碼是人們在尋找開源專案用來使用時多數人最渴望找的東西。
聽起來似乎足夠簡單---但是我們為什麼不單純基於程式碼來定義一個開源專案了呢?做過軟體開發的任何人都清楚:程式碼是永久變動和臨時的。在開源領域,從傳統公司主導的專案控制中解放出來,程式碼變得非常難以跟隨:開原始碼是無限進行分支的。一旦你的程式碼是基於開放原始碼促進會(OSI)的許可證下公開了倉庫,它就是完全對所有人可訪問,每個人都可以拿到,並按照自己的需求來更改。一旦其他人fork了你的專案,哪怕是做一丁點的改動,它就不再是你原來專案的一部分了。
社群
如果說程式碼解釋了專案是什麼,那麼社群就是誰,什麼人讓這一切成為了現實。專案社群的核心包括那些活躍的是整個專案往前推進的人,諸如作出程式碼貢獻的工程師,提供反饋的終端使用者,提出特殊修改的人。從整個社群來講,還包括那些不是提交程式碼的人們,但是提供支援,諸如治理/流程監督、公共關係/市場、培訓、財務或僱員支援。社會規範,禮儀,以及社會各界的幫助,以區別於其他所有的專案的事項。
參與到開源專案中的部分人員是本身就有其他公司發工資的(例如:一個公司僱傭一個工程師,賦予他/她在工作的百分之多少去為開源專案做貢獻),多數的開源社群是自願參與且並不能直接從社群獲得報酬,所以成員或是興趣轉變、或是其他社群挖走、或者某公司改變了戰略,來來去去很正常,和程式碼一樣,社群是永久變動的。
不像一家公司開發軟體專案那樣,可以根據現有人員及其他們的技能來規劃特定的任務,參與到開源社群是不可預測的,而且經常對專案失去控制,由於個人衝突上升所導致的擁有高階技能的工程師離開,相比在一家有報酬的公司,是非常容易發生的。但是開源社群還是有很多優點可以看到:由熱情所驅動的多數社群成員,那些成功的專案社群長期發展,同步和推薦程式碼的偉大工作。
品牌
品牌是一個開源專案之外的世界是如何得知該專案的口碑。當個人或公司決定使用或投資某個專案時,品牌將是在同等功能的情況下作出的選擇,當然他們會考慮其他的細節,但是剩下的相對要簡單的多。“我要支援Hadoop嗎?一個黃色的大象",要比“我要支援cloudera的CDH或這Hortonwork資料平臺嗎?或者是新的號稱的ODP?“強好多。
"品牌“一詞包含很多內容:專案的官方名稱,專案或產品的logo,以及專案網站的表現,和產品的使用者介面,特別是一些品牌的元件是合法的商標:這些通常包括官方的軟體產品的名稱和標誌,雖然商標是強烈建議一直使用的。
不像程式碼和社群,一個專案的品牌不是永久變動或者臨時的。一個商標是不可以隨意fork的,除非法律上的授權。且專案品牌要保持一致,哪怕是社會成員有所波動。在許多方面,品牌和商標是最容易控制且維護的專案組成部分。作為定義專案獨特性元素的重要工具的品牌,哪怕是遭遇商標不被正確的使用,甚至是專案內部的社群都不怎麼承認,都得堅持。
讓所有人能夠fork程式碼,社群倡導成員自由參與和放棄,一個專案的品牌和商標確實維持專案長期運作、獨立、繼續吸引新的社群志願者的關鍵因素。
相關文章
- 快速開發android,離不開這10個優秀的開源專案Android
- 依賴開源專案的公司離不開強有力的行為準則
- 一個檔案的開源專案,開啟你的開源之旅
- 找個開源專案
- 開源專案推薦:提高研發效率的5個開源專案
- PDB檔案:每個開發人員都必須知道的
- 學習python最離不開的庫,你都知道哪個?Python
- 企業開源指南:建立一個開源專案
- 5個造福世界的開源專案
- 24 個很棒的開源 Rust 專案Rust
- 企業開源指南:啟動一個開源專案
- 分享個 golang 開源小專案Golang
- 開源一個文字分析專案
- 如何熟悉一個開源專案?
- 5個開源專案中常見的陷阱
- 值得mark的11個開源機器學習專案機器學習
- 11個優秀的Android開發開源專案Android
- 每個android專案都應該使用的android 庫Android
- 為什麼機器學習行業的發展離不開 “開源”機器學習行業
- 朝花夕拾——更新兩個開源專案
- 怎樣做好一個開源專案
- 開源兩個spring api專案SpringAPI
- 開源一個機器學習文字分析專案機器學習
- 每個開發都應該懂的正規表示式
- 接私活必備的 10 個開源專案!
- 15個很有趣的開源專案推薦
- 20 個值得學習的 Vue 開源專案Vue
- 最具影響力的16個開源專案
- 每個開發人員都需要了解的一個SQL技巧SQL
- IOS開源專案iOS
- 開源專案-WaterMark
- 淘寶開源專案
- 開源專案:MMPopupViewView
- 開源好專案
- 推薦幾個優秀的開源的專案
- 10 個古老的經久不衰的開源專案
- 半棵樹的開源專案
- Amoeba -阿里的開源專案阿里