之前,我的一位下屬曾經詢問我,若之後他在工作上需要研究新技術時,需要寫一些sample project來驗證觀念,那這些sample project是否可開源在他自己的Github或部落格上?若公司這邊規定不行,或是我這邊有疑慮,有困擾,那他就再特別寫一個簡單的給公司,他自己再回家寫他想開源的部分。
這位下屬能力非常好,是我得力的助手之一。我也可以相信他的人格,不會做出傷害大家的事情。但扣掉這些不說,其實我一點都不擔心他寫出來的東西,會被別人抄走之後,就做出什麼了不起的殺手產品。真的,一丁點都不擔心。
之前在做簡報的時候查了些資料,才〝意外〞(好啦,其實我真的沒那麼意外)發現當時iPod那個圓盤式的操作介面,其實是
Nokia先發明出來的,而iPhone的3D Touch,是Nokia在
微軟的手機作業系統先做出來的,但結果大家都只知道這是iPod及iPhone的特色。別說是什麼Idea,還是程式碼,就算你先做出新的東西或體驗,也不代表你的產品真的能打出市場,活到最後。
許多研發公司都很有默契的把自家產品的程式碼,當作是最高機密般的嚴加保密。在5~10年前,還在知識數量及速度決定競爭優勢的時期,程式碼是有那個價值。但在近5年內,隨著網際網路的軟硬體爆炸成長,
知識的數量及速度,變得越來越沒有意義。教程文件及視頻你根本看都看不完,有什麼技能是你學不會的?只有你想不想學的問題。如「
精準學習」一書提到的,我們已經進入
知識的「深度」才能決定競爭優勢的時代:我們隨時可以在臉書發表一篇論文,比登在期刊上還容易及快速的被所有受眾看到,但這篇論文會被誰引用,被如何應用,才會決定它的價值。我也可以隨時把自己修洗衣機進水管的過程,拍成影片丟上Youtube,我遠在台南的爸媽就可以照著影片操作,馬上把洗衣機搞定。但其實這種影片我根本不用自己去搞,我找到誰有整理好的影片,丟連結過去就搞定了。若跟你製作的技術教學影片相比,這種影片觀看人數一定比你的教學課程還來得多,但不用說也知道,你花時間拍出來的教程影片含金量才高。許多人都在玩直播,但大家記得的就是阿滴,館長,蔡阿嘎這些人。他們出來選立委跟你出來選立委的話,不用想也知道會是誰當選。
之前看過一個金句(若我後來有找到來源,我就附上來):「若你的想法被竊取你就無法成功的話,這只是說明這個想法並沒有真的那麼好。」在Github上有那麼多那麼多優秀的程式碼,這些都是開發者的心血結晶,你取之不盡,用之不竭,那為什麼你沒有創作出什麼了不起的產品呢?
因為了不起的產品,了不起的是產品背後的那些深度思考結晶及執行力。
很多人罵Windows很難用,GUI的介面是抄蘋果的(其實蘋果是抄全錄的…),命令列功能及檔案系統比Linux差上幾百倍。但大家都知道你要買到不支援Windows的裝置是難如登天的;我在Ubuntu的桌面系統中,整台電腦卡死(它可沒有Ctrl-Alt-Delete)的次數比Windows多上10幾次;如果不是一線的軟體工具,MacOS上就是沒有;在Windows上的命令列我確實也沒在用,但Cygwin一直是我工作的好伙伴;檔案系統很差?是差了點沒錯,但反正重要的東西我也不會備份在自己電腦上,我一定是上雲端硬碟,讓專業的來處理,就像Linus以前說的「自己備份是弱者在做的事,真男人都是把重要的資料丟上FTP,然後讓大家一起備份(Backups are for wimps. Real men upload their data to an FTP site and have everyone else mirror it.)。」
這種比較多的是,看不完。但你可以深入去看的是,Windows這個產品會持續思考用戶要什麼,在意什麼,然後去補去改去修正。整個過程累積出來的深度及執行力,就是它和其他OS的差異。
不管是離線的應用程式,還是強連網的遊戲或網路服務,都是以一個「SaaS(Software as a Service」或「PasS(Platform as a Service」的型式存在的。軟體開發已經是一種「服務業」,程式碼只是服務的一環,不是立法院中需要三讀通過的條文,是隨時準備把產品重新塑型的黏土,而不是焊死不動的防彈鋼門。程式碼的「價值」並沒有被低估,只是它的「保鮮期」已經不是同一個計算方式了。
AI是近年來最熱門的關鍵字,相關的技術也是如雨後春筍不同冒出。有一點很有趣的是,AI技術的開源程度也是前所未有的高。不僅訓練用的資料集有很多開源的,許多論文也附帶了驗證或實作用的源碼發表出來。這些「高科技」的開源,非但沒有造成nVidia或Google的競爭優勢損害,反而還是搶佔市場的主要方法。大家都競相開源,鼓勵開發者使用自家的函式庫開發自己的應用及服務。軟體工程師在Github上努力的開源自己的專案,寫部落格分享自己的know-how,解釋自己消化後的學習心得,誰不是花了心力及時間來輸出?別說程式碼值多少錢,大家花下大把的時間都不曉得要怎麼算錢了。
另外一個例子是MySql。在MySql被Oracle買下變成自己的產品之後,Oracle在MySql的商業版收費就開始提高。由於當時MySql的十分普及,許多網站服務都是基於MySql開發的,所以大家就十分擔心有朝一日Oracle會終止免費版的維護,掐著用戶必須繼續使用MySql的脖子,就可以索取更多的費用。因此MySql的創始人Michael "Monty" Widenius就把他最後一版的MySql的源碼開源,成為「MariaDB」專案。由於和MySql的高度相容,Fedora等Linux發行版已經在最新版本中以MariaDB取代MySQL,維基媒體基金會的伺服器同樣也使用MariaDB取代了MySQL。
這在開源界簡直就是經典判例,財大氣粗如Oracle,也買不起用戶對「自由」的認同。
全世界有數不清的軟體專案都正在運行或開發中,還有更多數不清的Idea正在成型,在驗證MVP(Minimum Viable Product)中。不管這些產品的程式碼是否有打算要開源,成功產品值錢的地方可以肯定的是不在程式碼身上:
把自己的想法寫成程式驗證,執行力值錢;願意吸收用戶反饋,調整產品規格,反應速度也值錢;積極從用戶資料中提取洞見,調整方向,深度思考力當然值錢;瞭解科技趨勢,刺激產品進步的同時也保存企業核心價值,組織規劃的能力當然更值錢。程式碼?其實沒那麼值錢。
如果是我個人判斷就可以對sample project的開源與否做決策的話,我不但會同意開源,我還希望他好好把這個project做好,好好寫篇部落格介紹,如果可以的話開影片或直播當然更好。最重要的是最後要把作者介紹好好寫清楚:是來自於「鈊象電子的軟體工程師」,讓大家知道,我們的技術力是多麼的紮實。有人可能會擔心人才會不會因此就被挖走什麼的,這種「弊帚自珍」的想法…哪天等我讀的資料夠了,再來寫一篇好了。