5W1H聊開源之Why——為什麼要參與開源?

陳琦聊測試發表於2021-07-08

中國開源的發展速度發展加快,個人和組織對於為開源作貢獻有著前所未有的激情。據《 》,約四成受訪者以自己開發開源專案、為他人提交專案程式碼、作為成員開發維護專案、捐助開源專案等不同形式參與到開源專案中;在《 》中,參與過開源專案的比例為32%,且呈增長趨勢,我國開源生態正迅速形成。

建立和維護那些被廣泛使用的開源專案每年可能需要耗費數千小時,為什麼開發者會願意花費時間和精力編寫這些免費公開的程式碼?為什麼企業會願意讓他們的員工編寫程式碼,開源讓其他公司甚至是競爭對手都可以使用?個體參與開源會得到什麼?


個人為什麼要開源?

1.提升程式碼質量

參與開源專案是提升個人程式碼質量的好方法。一方面開源會激發程式設計師的“恥感”,一旦清楚這些程式碼是要公開給別人看的,就會自覺將程式碼寫得更加整潔、乾淨,加更多註釋。另一方面,如果專案有一定的影響力,其他關注、參與的程式設計師也會給予更多建議,這樣可以博採眾長,無形之中約束自己的程式碼規範,改進自己的程式碼質量。
開源運動旗手 Eric S. Ray­mond 就曾說過:“只要經過足夠多雙眼睛的審查,所有的 bug 都將失去藏身之地。這就是 Linus 定律。”

2.展示個人程式碼

一個小時的面試可能只能展示你掌握的某些底層基礎或者前沿知識,但如果有開源專案傍身,就可以從你長期的程式碼中看出程式碼質量如何。而且參與開源專案還能展示出你對技術的熱愛,向面試官展示你引以為傲的開源專案,這將是個不錯的加分項。而深度參與知名開源專案的開發者,從來不缺工作,參與開源的經驗不僅能幫助他們獲得更廣闊的職業機會,而且能拓深職業發展空間。正如 jQuery 的創始人 John Resig 曾說過的那樣:“不管在任何時候,只要涉及到招聘,相比普通的簡歷而言我更看重的是應聘者在 GitHub 上開源共享的東西。”

3.建立個人品牌

正如上述兩條,程式碼質量提升和簡歷的加分項都會指向同一個成就:打造個人影響力,建立個人品牌。最為典型的就是Git的發明者Linus,儘管他的自述是“只是為了好玩”,但從他的名聲大噪來看,倒是有些“凡爾賽”了。現今活躍的很多技術大牛往往是在大公司工作過的頂級工程師,憑藉開源貢獻在軟體社群當中積累起人氣與聲望,擺脫公司標籤,成功打造個人品牌。

企業為什麼要參與開源?

1、改進程式碼和功能

大多數的組織和個人首先參與的是他們正在使用的開源專案,主要目的是想讓專案/軟體變得更完善,更便於自己使用;或者直接打造自己所需的工具並將其開源,也就是常說的“造輪子”。 這部分改進的功能當然可以自己使用不提交,但繼續分享才是讓利益最大化的方式,因為如果不貢獻自己的程式碼,就有可能面臨新版本這些功能不再工作的風險。

2.獲取競爭、招聘優勢

在程式設計師的世界中,開源雖說不上是多麼崇高的事,但整體形象確實是正面的。開源意味著企業願意與其他企業和個人共建生態,這個企業的大體上來說,是有擁抱開放的這樣的傾向的。所以參與開源有助於提高組織和企業的聲譽,且更能吸引志同道合的求職者共同發展。此外,這種行為也有助於提高組織和企業的聲譽,提升品牌形象,特別是在開發者之間的口碑,帶來的好處就是利於招聘和留住人才。

3.開源商業模式直接獲利

開源不牴觸商業,開源的目的是分享共享,但不是做慈善事業。具體盈利模式有技術支援、培訓、高階功能、雲服務等方式收費。不同的軟體、不同的領域有不同的盈利模式,但所有模式的基礎都是使用者數。只有使用者數量達到了一定的規模,才有成其商業化模式的可能。

商業開源是透過更多人的參與,減少軟體的缺陷,豐富軟體的功能,同時也避免了少數人在軟體裡留一些不正當的後門。企業透過開源的商業模式可以直接獲得經濟利潤,開源軟體最終還會反哺商業,讓商業公司為使用者提供更好的產品。

贈人玫瑰,手有餘香。開源最美妙地方就是不必花時間解決同樣的問題,當你遇到的大問題已經有人做了開源專案時,一定感覺如釋重負。同樣,當看到你的開源專案為其他人解決了問題時,巨大的成就感也是一種巨大的激勵。

所以參與開源的原因或好處,除了上述具體因素,也有各種心理原因,也包含其他諸如降低開發成本、促進行業標準、支援開源價值觀甚至純粹的享受開源樂趣或回饋開源專案等因素。參與開源的“動機”當然可以“不純粹”,也不講究“默默無聞,無私奉獻”,參與即貢獻,開源領域的發展與每一位開發者都息息相關,進一步有進一步的歡喜。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978795/viewspace-2780271/,如需轉載,請註明出處,否則將追究法律責任。

相關文章