技術團隊為什麼要開源?

edithfang發表於2014-08-26



對團隊在開源這件事如何思考在一定程度上決定了團隊的技術氛圍。之前我的公眾文章裡討論了「如何選擇開源協議」,今天我們就來討論對於一個技術團隊,程式碼為什麼要開源?

我們的討論重點不是討論開源哪些技術,而是開源的邏輯及帶來的收益;具體討論開源哪些技術,則是另一個話題,今天先不談。

{BAT 開源現狀}

開源這件事雖非洪水猛獸,但開了閘,因為開源可能會為一些人轉移公司程式碼提供一種正大光明之理由,對公司造成損失,所以在公司檯面上很難說清利弊。

但現在避而不談開源就是掩耳盜鈴。做開發者人以群分,各公司使用開源軟體越來越多,使得相當一部分技術人員對開源的貢獻成為一種技術理想。希望從開源獲得成就,捕眾粉絲以獲崇拜感。

所以,有的公司允許開源,有的公司不允許,也有既沒說允許也沒說不允許的。

一般允許開源都會有相應稽核機制,對開源的選擇權主要取決於每個部門自己的考慮。

就現在 BAT 情況,開源都有相應的稽核機制。

{團隊開源的原因}

在團隊選擇開源的原因上,聽到最多的可能就是 — 開源可「增加團隊的影響力」。

我並不完全同意。

「影響力」並非是通過開源直接得到,技術影響力源自業務影響力;業務是指在你所在公司做的業務影響力,還包括所屬產品線的業務影響力。只有業務做得足夠大與好,外界才認為團隊有技術影響力。

所以在大多數人眼中,覺得國外的技術比國內好,那是因為寫程式碼用英文,英語世界國家程式開發所在公司影響力比國內好;

大公司技術比小公司好,大公司之所以能這麼大,同時線上人數這麼多,肯定技術很厲害;

Google 搜尋就一定比 Baidu 好,是因為 Google 是全世界的,搜尋又是核心業務,技術理所應當很牛。

所以,如果想提升影響力為目的開源,所在團隊業務最好有一定影響力再談開源更靠譜。

{影響力意味著什麼}

影響力看上去很高大上,但表現出來往往是很虛的事情;如不能實在的看到影響力能為我們團隊帶來收益,那這件事的動力與持續性就會大打折扣。

在我看來,影響力給團隊帶來至少以下好處:

- 技術收益

開源後技術需求的輸入會變多,從外部會給內部提供許多技術需求,從而從外部推進內部加快技術產出技術創新。創新後再回歸到開源,構成技術閉環。

需求持續輸入可讓技術可象產品一樣迭代升級;提升功能單一的技術生命週期;需求多樣化提高創新能力,技術更有生命力。

jQuery 就是一個很好的例子,通過開源從原來單純 lib 到元件,再到新技術,都在技術前沿。類似的,團隊開源後,所在公司可最快享受到該技術在得到開源需求迭代後,得到的技術產出福利。

- 人才收益

在獲得影響力之後,簡歷的收集渠道會擴寬,會有同學主動給你發簡歷;並且會給現在團隊同學帶來平臺的成就感,也能得外界技術人員對團隊同學的認同感。這對於技術人員來說非常重要。

- 個人收益

試想想,你在原公司裡使用某工具,但出公司後要麼是不能使用,要麼只能使用某 release 版本,那是一件很崩潰的事,如果開源後問題就可得以解決。

短期看是個人受益,長期實際上是整體受益,因為這批人裡有部分工程師願意再到開源社群裡去給該工具提需求與貢獻程式碼。

從這幾點來看,開源是構建 開源生態鏈/技術閉環 的必要方法。

{總結}

最後我們把問題收斂,簡化成一張圖,更好的表達我認為開源是構建「開源生態鏈/技術閉環」的必要手段。

  • - 綠色是技術收益
  • - 藍色是人才收益
  • - 黃色是個人收益


相關閱讀
評論(2)

相關文章