5W1H聊開源之Why——爲什麽要參與開源?
原創
最后编辑:李晓琳 于 2021-07-08 13:59:36
1267次查看
本篇目錄
中國開源的發展速度發展加快,個人和組織對于爲開源作貢獻有著前所未有的激情。據《
2020年IT行業項目管理調查報告》,約四成受訪者以自己開發開源項目、爲他人提交項目代碼、作爲成員開發維護項目、捐助開源項目等不同形式參與到開源項目中;在《
2021中國開源發展藍皮書》中,參與過開源項目的比例爲32%,且呈增長趨勢,我國開源生態正迅速形成。
創建和維護那些被廣泛使用的開源項目每年可能需要耗費數千小時,爲什麽開發者會願意花費時間和精力編寫這些免費公開的代碼?爲什麽企業會願意讓他們的員工編寫代碼,開源讓其他公司甚至是競爭對手都可以使用?個體參與開源會得到什麽?

开源运动旗手 Eric S. Ray?mond 就曾说过:“只要经过足够多双眼睛的审查,所有的 bug 都将失去藏身之地。这就是 Linus 定律。”
商业开源是通过更多人的参与,减少软件的缺陷,丰富软件的功能,同时也避免了少数人在软件里留一些不正当的后门。企业通过开源的商业模式可以直接获得经济利润,開源軟件最终还会反哺商业,让商业公司为用户提供更好的産品。
贈人玫瑰,手有余香。開源最美妙地方就是不必花時間解決同樣的問題,當你遇到的大問題已經有人做了開源項目時,一定感覺如釋重負。同樣,當看到你的開源項目爲其他人解決了問題時,巨大的成就感也是一種巨大的激勵。
所以參與開源的原因或好處,除了上述具體因素,也有各種心理原因,也包含其他諸如降低開發成本、促進行業標准、支持開源價值觀甚至純粹的享受開源樂趣或回饋開源項目等因素。參與開源的“動機”當然可以“不純粹”,也不講究“默默無聞,無私奉獻”,參與即貢獻,開源領域的發展與每一位開發者都息息相關,進一步有進一步的歡喜。
創建和維護那些被廣泛使用的開源項目每年可能需要耗費數千小時,爲什麽開發者會願意花費時間和精力編寫這些免費公開的代碼?爲什麽企業會願意讓他們的員工編寫代碼,開源讓其他公司甚至是競爭對手都可以使用?個體參與開源會得到什麽?

個人爲什麽要開源?
1.提升代碼質量
參與開源項目是提升個人代碼質量的好方法。一方面開源會激發程序員的“恥感”,一旦清楚這些代碼是要公開給別人看的,就會自覺將代碼寫得更加整潔、幹淨,加更多注釋。另一方面,如果項目有一定的影響力,其他關注、參與的程序員也會給予更多建議,這樣可以博采衆長,無形之中約束自己的代碼規範,改進自己的代碼質量。开源运动旗手 Eric S. Ray?mond 就曾说过:“只要经过足够多双眼睛的审查,所有的 bug 都将失去藏身之地。这就是 Linus 定律。”
2.展示個人代碼
一个小时的面试可能只能展示你掌握的某些底层基础或者前沿知识,但如果有开源项目傍身,就可以从你长期的代码中看出代码质量如何。而且参与开源项目还能展示出你对技术的热爱,向面试官展示你引以为傲的开源项目,这将是个不错的加分项。而深度参与知名开源项目的开发者,从来不缺工作,参与开源的经验不仅能帮助他们获得更广阔的职业机会,而且能拓深职业发展空间。正如 jQuery 的创始人 John Resig 曾说过的那样:“不管在任何时候,只要涉及到招聘,相比普通的简历而言我更看重的是应聘者在 GitHub 上开源共享的东西。”3.建立個人品牌
正如上述兩條,代碼質量提升和簡曆的加分項都會指向同一個成就:打造個人影響力,建立個人品牌。最爲典型的就是Git的發明者Linus,盡管他的自述是“只是爲了好玩”,但從他的名聲大噪來看,倒是有些“凡爾賽”了。現今活躍的很多技術大牛往往是在大公司工作過的頂級工程師,憑借開源貢獻在軟件社區當中積累起人氣與聲望,擺脫公司標簽,成功打造個人品牌。
企業爲什麽要參與開源?
1、改進代碼和功能
大多数的组织和个人首先参与的是他们正在使用的开源项目,主要目的是想让项目/软件变得更完善,更便于自己使用;或者直接打造自己所需的工具并将其开源,也就是常说的“造轮子”。 这部分改进的功能当然可以自己使用不提交,但继续分享才是让利益最大化的方式,因为如果不贡献自己的代码,就有可能面临新版本这些功能不再工作的风险。2.獲取競爭、招聘優勢
在程序員的世界中,開源雖說不上是多麽崇高的事,但整體形象確實是正面的。開源意味著企業願意與其他企業和個人共建生態,這個企業的大體上來說,是有擁抱開放的這樣的傾向的。所以參與開源有助于提高組織和企業的聲譽,且更能吸引志同道合的求職者共同發展。此外,這種行爲也有助于提高組織和企業的聲譽,提升品牌形象,特別是在開發者之間的口碑,帶來的好處就是利于招聘和留住人才。3.開源商業模式直接獲利
開源不抵觸商業,開源的目的是分享共享,但不是做慈善事業。具體盈利模式有技術支持、培訓、高級功能、雲服務等方式收費。不同的軟件、不同的領域有不同的盈利模式,但所有模式的基礎都是用戶數。只有用戶數量達到了一定的規模,才有成其商業化模式的可能。商业开源是通过更多人的参与,减少软件的缺陷,丰富软件的功能,同时也避免了少数人在软件里留一些不正当的后门。企业通过开源的商业模式可以直接获得经济利润,開源軟件最终还会反哺商业,让商业公司为用户提供更好的産品。
贈人玫瑰,手有余香。開源最美妙地方就是不必花時間解決同樣的問題,當你遇到的大問題已經有人做了開源項目時,一定感覺如釋重負。同樣,當看到你的開源項目爲其他人解決了問題時,巨大的成就感也是一種巨大的激勵。
所以參與開源的原因或好處,除了上述具體因素,也有各種心理原因,也包含其他諸如降低開發成本、促進行業標准、支持開源價值觀甚至純粹的享受開源樂趣或回饋開源項目等因素。參與開源的“動機”當然可以“不純粹”,也不講究“默默無聞,無私奉獻”,參與即貢獻,開源領域的發展與每一位開發者都息息相關,進一步有進一步的歡喜。

禅道項目
