alexa
置頂

成為世界上最強、最好的軟體公司:「開源」是唯一途徑

【科技報橘】
文 / 科技報橘    
2016-06-22
瀏覽數 7,350+
成為世界上最強、最好的軟體公司:「開源」是唯一途徑
分享 Line分享分享 複製連結

作者:Matthew Chen

在開始閱讀以下文章之前,先問問自己這兩個問題(皆可複選):

1. 你覺得世界上最好的軟體公司是?

2. 你覺得世界上最好的軟體工程師有哪些人?

心中有候選名單了嗎?世界上有上千名軟體工程師與公司都在做相當有意義、讓文明進步的工作,但是當問到「最強」、「最好」的名單時,跳出來的答案永遠是那幾個人、那幾間公司。

而為什麼大家的答案都是這些人、這些公司呢?

因為這些公司與開發者不只在做有意義的工作,他們更花時間讓你知道他們正在做有意義的事情。相信你名單上的那些人與公司,你一定有在看他們的部落格、paper、書籍,或是觀賞他們的演講、演說,甚至你正在用他們所提供的 open source 程式碼。

舉例來說,當提到世界上最好的軟體工程師或是開發者,你的名單裡有 Linus Torvalds,那可能是因為你很熟悉他所發展的 Linux 或是 Git。如果你的答案是 Dennis Ritchie,那可能是因為你正使用 Unix 或是 C 語言。

而提到世界上最好的軟體公司,你的名單裡應該有 Google。他們持續推出開放研究資料,做 Google Talks 系列分享,以及推出大量的 open source 計畫,包含 Android、Chrome、Angular 以及 Go。其他的公司像是 Facebook、Twitter、LinkedIn,甚至是傳統公司微軟,都持續推出上百萬行開源程式碼供每個人使用。甚至有公司完全以開放程式碼為主軸在運作,然後再開源任何他們所做出的作品,像是 Mozilla 與 Red Hat。

問題是,why?

為什麼這麼多的軟體公司與開發者願意無償地分享自己的努力成果?為什麼他們投入了上千小時甚至幾百萬元在某個專案上還要免費的公開它,難道一切都只是為了無償奉獻這個世界嗎?

幾乎三分之二的軟體公司都在 open source 上有所貢獻,光 github 上面就超過 1,400 萬名開發者貢獻分享;超過 3,500 萬個專案。這些數字都已經非常驚人了,但你必須知道這個數字在未來只會以越來越快的速度成長茁壯。

open source、講座或是寫部落格並不全然是公益原因。當然有許多開發者純粹想要回饋社群,但這並不能解釋軟體業無所不在的分享盛況,真正的原因在分享的背後,因為分享可以獲得很多你所想像不到的回饋。我們分成五個面向來談:

分享可以讓技巧升級

學習最好的方法就是教學。

當你要跟別人解釋任何一個概念,你都必須自己先了解得更加深入,這種壓力可以讓你自我推進。不論是準備一場演說、撰寫部落格,或是貢獻 open source 專案都一樣。

如果你是一家公司老闆,鼓勵你的員工開始撰寫部落格、open source,或是準備一場講座,就是最便宜以及最有效率的 level-up 方法。要知道,所謂的「senior(資深)」是可以讓周圍的人變得更好,最簡單的方式就是透過教學,進而提升整體的實力與技巧。

分享將提升程式碼的質量

什麼時候你家最乾淨?通常是有客人要來之前。

這點在分享任何事情上都一樣,因為分享等同於放到陽光下供大家檢視,你一定會確保分享出去的東西質量是好的。在 open source 上也相同,在分享之時,你一定會想辦法提升程式碼的質量。你可能會花一些時間整理一下程式碼、撰寫說明紀錄、多次的測試,為了讓 open source 專案可以更放得上檯面。寫部落格與演說也一樣,分享可以讓質量變得更好。

open source 還有另外一個好處,就是透過回饋來提升質量。所有的回饋,包含負面的回饋,都是你成長與學習的機會。回饋是非常有力量的,特別像是在軟體領域,等同於有許多同行幫忙你檢視成果。有許多的 open source 專案的質量比公司自有的專案還要好上許多。

「在足夠的眼球下,所有的問題都會浮現。」Eric S. Raymond。

“Given enough eyeballs, all bugs are shallow. I dub this: Linus’s Law.”Eric S. Raymond

分享可以帶來不為人知的免費勞動力

每當有人用了你 open source 程式碼並找到 bug 時,等同於他們在免費幫你測試;每當有人提交了新的 open source 版本,等同於他們在免費幫你開發軟體;每當有人撰寫了你 open source 專案的文章,等同於他們在幫你免費製作說明書;當有人嚴厲批評了你的作品,等同於他們提供你免費的設計評論。

分享、開源你自己的工作,並讓整個軟體社群來貢獻,會讓你的專案越來越大,價值遠遠高於一個人來做。特別是如果你在新創公司上班。就算你在大公司上班,你可能請不到厲害的開發者,也許是因為沒錢或者是他們有別的工作了,甚至是他們住在地球的另外一端,但只要你創造了一個很棒的 open source 專案,這些開發者有可能無償地替你貢獻。

舉例來說 Ruby on Rails 是一套網站開發的框架,過去以來已經超過 3,000 人貢獻程式碼,更別說超過上萬人使用、回報 bug、製作插件或者是撰寫相關的部落格。如果你打算製作一套網站開發框架,能夠請到這麼多人嗎?

分享,同時也在行銷自己

如果你是一名開發者,透過分享、open source 的專案可以明白地讓大家知道你的實力。有點 inbound marketing 的味道存在,你把事情做得越好,顧客自然會找上門來。比起盲目地亂投履歷,透過 open source 的貢獻或專案可以清楚不過的表現出你的價值。

就像 jQuery 的創造者 John Resig 所說:如果要找人,我會打開 Github 而不是開始看履歷。

而如果你是一家軟體公司,所製作的 open source 專案有許多人參與、使用,這就是最有效的廣告方法,可以有效率地吸引到專業人才,比任何的徵才廣告都還要有用。

分享,並不會失去擁有權

身為一個開發者或是工程師,當你努力了上千小時在某個專案上,那個專案就像是你的孩子。當你意外地、被迫離開公司時,就像是離婚又失去小孩的監護權,非常令人痛心。幾次下來,就會慢慢地失去熱情。

不過分享並不一樣,不論是講座、部落格、研究資料、open source 專案,這都是你生命的一部分,是永久的一部分。這些東西都會一輩子跟著你,你可以隨時展示給其他人看,你也該為自己所做的事情感到驕傲。

換句話說,open source 應該非常有趣,而且讓你更有成就感,並享受其中。在這個年代,大家在技術方面的才華不分軒輊,如果你抱著開心的態度在工作,將是一大優勢。因為帶有愉快的心情工作,就是最經濟實惠且有效率的工作模式。

沒時間是你不分享的原因?

當說到分享,最常遇到的問題是:我沒有時間、我很忙。

你必須知道,忙碌是一種選擇。你只要心裡覺得這件事情重要,時間就會自然而然地跑出來,而分享應該是你成功的職涯中極度重要的事情。

在專業的運動領域,刻苦且高強度的訓練是一切的基礎,而其他領域如舞者、棋士每天都花上好幾個小時在鑽磨自己技藝上。你可以不用做的這麼誇張。

舉作者 Yevgeniy (Jim) Brikman 個人的例子來說,每晚 11 點,他都會好好坐下來,花上 20 到 40 分鐘的時間來創造、學習以及分享。可能會看一段影片、讀一本書、撰寫部落格或者是做一些 open source 的專案。這很簡單,所需要的時間並不多,投資小量的時間在學習以及分享上,卻可以完完全全地改變生命。

你應該試著在忙碌的時間表上找尋適合自己的空檔時間,可能在工作之前或是午餐間,也有可能在睡覺前,每天做個 20 至 40 分鐘,聚沙成塔,小量的投資也可能讓你獲得巨大的回報。

分享是成就矽谷與軟體業的重要文化

在這個時代,只在工作方面獲取成就已不足以稱得上成功,必須要讓別人也知道你工作所帶來的意義。對開發者與工程師來說也許有些困難,這群人的個性總是比較內向而不願意自我宣揚。

不過,分享是一種非常良性的循環,可以大大地增進工作質量與能力。首先,你必須認知到分享並不是工作之外「額外」的事情,而是你工作的一部分,整個職涯的一部分。漸漸地,你會發現生活中許多地方都變得更加成功,包含找工作、升職、吸引顧客上門以及找尋共同的工作者等。

分享的文化是軟體產業以及矽谷如此成功的原因之一。反面的比較對象就是華爾街,在那邊一切有價值的東西都是秘密。科技軟體產業正擁抱讓人難以想像的開放性,我們分享,讓我們都是贏家。套句牛頓的話來說:「站在巨人的肩膀上,我們可以看得更遠。」

延伸閱讀:

開源是一種生活態度!六個針對 open source 的大哉問

從入門到上手心路歷程》工程師分享在 GitHub 上學習 OpenSource 經驗

【程式人才大缺口】Apple、FB 自己跳下海教程式,台灣老闆們除了抱怨還會幹嘛?

(本文由科技報橘授權刊載;未經同意不得轉載;資料來源:the marco;圖片來源:GotCredit。)

專欄介紹:

分享 Line分享分享 複製連結
國際財經科技
您也可能喜歡這些文章
您也可能喜歡這些文章