技術(shù)團隊為什么要開源?
在開發(fā)的圈子里,開源漸已成勢,無論公司大小都在開源;個人開發(fā)者更不必說,github 已是標配。
而開源與使用 NodeJS 一樣,對待這件事,對個人而言是潮流,而對團隊,則是一種技術(shù)態(tài)度。
對團隊在開源這件事如何思考在一定程度上決定了團隊的技術(shù)氛圍。之前我的公眾文章里討論了「如何選擇開源協(xié)議」,今天我們就來討論對于一個技術(shù)團隊,代碼為什么要開源?
我們的討論重點不是討論開源哪些技術(shù),而是開源的邏輯及帶來的收益;具體討論開源哪些技術(shù),則是另一個話題,今天先不談。
{BAT 開源現(xiàn)狀}
開源這件事雖非洪水猛獸,但開了閘,因為開源可能會為一些人轉(zhuǎn)移公司代碼提供一種正大光明之理由,對公司造成損失,所以在公司臺面上很難說清利弊。
但現(xiàn)在避而不談開源就是掩耳盜鈴。做開發(fā)者人以群分,各公司使用開源軟件越來越多,使得相當一部分技術(shù)人員對開源的貢獻成為一種技術(shù)理想。希望從開源獲得成就,捕眾粉絲以獲崇拜感。
所以,有的公司允許開源,有的公司不允許,也有既沒說允許也沒說不允許的。
一般允許開源都會有相應(yīng)審核機制,對開源的選擇權(quán)主要取決于每個部門自己的考慮。
就現(xiàn)在 BAT 情況,開源都有相應(yīng)的審核機制。
{團隊開源的原因}
在團隊選擇開源的原因上,聽到最多的可能就是 — 開源可「增加團隊的影響力」。
我并不完全同意。
「影響力」并非是通過開源直接得到,技術(shù)影響力源自業(yè)務(wù)影響力;業(yè)務(wù)是指在你所在公司做的業(yè)務(wù)影響力,還包括所屬產(chǎn)品線的業(yè)務(wù)影響力。只有業(yè)務(wù)做得足夠大與好,外界才認為團隊有技術(shù)影響力。
所以在大多數(shù)人眼中,覺得國外的技術(shù)比國內(nèi)好,那是因為寫代碼用英文,英語世界國家程序開發(fā)所在公司影響力比國內(nèi)好;
大公司技術(shù)比小公司好,大公司之所以能這么大,同時在線人數(shù)這么多,肯定技術(shù)很厲害;
Google 搜索就一定比 Baidu 好,是因為 Google 是全世界的,搜索又是核心業(yè)務(wù),技術(shù)理所應(yīng)當很牛。
所以,如果想提升影響力為目的開源,所在團隊業(yè)務(wù)最好有一定影響力再談開源更靠譜。
{影響力意味著什么}
影響力看上去很高大上,但表現(xiàn)出來往往是很虛的事情;如不能實在的看到影響力能為我們團隊帶來收益,那這件事的動力與持續(xù)性就會大打折扣。
在我看來,影響力給團隊帶來至少以下好處:
- 技術(shù)收益
開源后技術(shù)需求的輸入會變多,從外部會給內(nèi)部提供許多技術(shù)需求,從而從外部推進內(nèi)部加快技術(shù)產(chǎn)出與技術(shù)創(chuàng)新。創(chuàng)新后再回歸到開源,構(gòu)成技術(shù)閉環(huán)。
需求持續(xù)輸入可讓技術(shù)可象產(chǎn)品一樣迭代升級;提升功能單一的技術(shù)生命周期;需求多樣化提高創(chuàng)新能力,技術(shù)更有生命力。
jQuery 就是一個很好的例子,通過開源從原來單純 lib 到組件,再到新技術(shù),都在技術(shù)前沿。類似的,團隊開源后,所在公司可最快享受到該技術(shù)在得到開源需求迭代后,得到的技術(shù)產(chǎn)出福利。
- 人才收益
在獲得影響力之后,簡歷的收集渠道會擴寬,會有同學主動給你發(fā)簡歷;并且會給現(xiàn)在團隊同學帶來平臺的成就感,也能得外界技術(shù)人員對團隊同學的認同感。這對于技術(shù)人員來說非常重要。
- 個人收益
試想想,你在原公司里使用某工具,但出公司后要么是不能使用,要么只能使用某 release 版本,那是一件很崩潰的事,如果開源后問題就可得以解決。
短期看是個人受益,長期實際上是整體受益,因為這批人里有部分工程師愿意再到開源社區(qū)里去給該工具提需求與貢獻代碼。
從這幾點來看,開源是構(gòu)建 開源生態(tài)鏈/技術(shù)閉環(huán) 的必要方法。
{總結(jié)}
最后我們把問題收斂,簡化成一張圖,更好的表達我認為開源是構(gòu)建「開源生態(tài)鏈/技術(shù)閉環(huán)」的必要手段。
- 綠色是技術(shù)收益
- 藍色是人才收益
- 黃色是個人收益

























