我為什么把失敗的創業項目開源了
編者按:這篇文章寫得很真實。作者講了自己的心路歷程:在他的 startup 失敗后,那些原來不愿掏錢的客戶、甚至是競爭對手紛紛要求他開源產品;一開始他當然很不爽,當然不愿意開源;后來理性地思考后,還是決定開源了。以下是由akacd 翻譯的作者原文:
2014 年10月底,我宣布將Mogotest項目關閉。經過接近五年的運營,我很清楚這塊業務無法繼續增長了。并不是由于沒有機會,我覺得是項目早期的一些商業 決策導致現在項目舉步維艱。具體是什么導致現在的失敗我改天再談。這篇文章我想討論一下項目關閉后我是如何處理源碼的。
你會將代碼開源么?
正 如我所料的,我宣布關閉項目后人們問我的首先事情之一就是我是否準備將項目開源。我的客戶、對我們的項目感興趣的公司(盡管他們從來沒有覺得需要給我支 持)、網友,還有其他一些人他們都很關心這個問題。我在之前有過思想準備,但是在我宣布之后遭到這么多人的問題轟炸還是出乎意料的。
其實我之前參與過很多開源的項目。但我沒有可以維護我自己的“品牌”,我也沒有專門銷售過開源的軟件或者開源軟件的咨詢服務,但我確實參與了很多開源項目。我所有的項目基本都用Apache 軟件2.0版本開源許可。對于開源軟件,我想我更傾向于實用主義而非理想主義。
如我以上所說的,我的第一反應就是不開源。我理想的分析之后也是決定不開源。
為什么不呢?
這里我需要插播一段免責聲明。以下的觀點都是我源于我自己的經驗和慣性思維,如果我說的大道理讓你反感,請你原諒,我這個人還是很謙遜的。
第 一點是情感上的。我剛從專注了整整五年的項目里面緩過神來。那時候我損失了兩年的工資外加大概4萬美元的存款來應對商業上的合伙人之間競爭。我覺得這是最 有可能的結局,所以我一直不想要大家同情我。但是經過這么多事情之后又讓我回到項目把項目無償奉獻出來實在是太困難了。
還有一點可能是我比 較小氣的地方。一些人認為我們的項目不值得付錢,所以讓我們免費開源給大家。當我想把項目轉手的時候,那些潛在購買公司建議我開源,因為他們不想要付錢來 使用我們的授權。所以,盡管我想讓我現有的用戶有時間來“軟著陸”以解決我們項目關閉的問題,我也不想讓那些占便宜的人在一旁看笑話。
把這些都放在一旁,將源碼開源也是個極為繁瑣的事情。我先不談清理一些讓我感到尷尬的東西,下面是我想到的可能不太全面的一些需要說明的點:
- 網站的主題是從WrapBootstrap 購買的,我沒有權利來將它用到開源項目
- 富UI組件是ExtJS的商業版本。這需要被剔除,或者這個項目需要遵循GPLv3協議。
- Sidekiq Pro需要被剔除掉。
- 用到的每一個JS庫和所有的圖片資源都需要檢查并保證得到了授權。
- 涉及到客戶信息的代碼需要被剔除。比如我們創建了針對客戶數據的組件就不能發布。這個過程意味著需要編輯檢查每一個文件。
- 需要確保所有的接口秘鑰或者密碼不能在代碼中或者配置文件中出現。(聽起來很糟糕,但是確實有這種情況。)
- 服務運行中潛在的安全漏洞
- 移除所有的涉及錢款的代碼
- 移除所有的郵件宣傳代碼
- 移除所有的非Web集成測試部分的代碼。
這中間有很多的責任。把所有的點都做好需要很多的工作。
這 之后我讓我自己打起精神,關注之前我根本不在乎的地方。我有時候會在代碼中詛咒的。我對英語有著傳統的觀點,我也希望我豐富語言能符合我的觀點。所以我在 日常寫作中使用了很多性別代名詞,現在也必須公開了。我確定在代碼里會“埋葬”著每一個寫瀏覽器代碼的人:)。毫無疑問,代碼中會冒犯一些人,我的個人聲 譽也會受到影響。這些都是因為代碼要公開。
我所做所有事情基本就是不斷的清理之前的代碼,而且是免費的。
即使我清理了所有的 問題,接下來的問題就是我覺得開源的意義不太大。開源項目,是的,開源所有的代碼,怎么說呢?我沒有時間和財力在這個項目上。開源之后肯定很多人會詢問各 種各樣的問題,而我有沒有時間去逐一回答。這就會讓我一直感覺這個項目只是個廢品。另外,即使我有精力,我也沒有動力去完成各種各樣的新的設計決定。有些 設計肯定會看起來很傻,但那又是受到時間和各種條件約束不得不做的。聽起來很簡單, 但是現在看來也許沒那么容易。實現新的設計肯定是個進步,但是這些設計大多數都不是經過嚴格推敲的。如果不知道這個設計的來龍去脈,我可不想犯傻去做這個 事情。
更多的思考
今天的晚些時候,我想修改一下Web持續集成測試這塊,讓它更好的運行起來。如果把 Mogotest開源肯定對這有幫助。我會忽略掉一些困難。我已經在ASLv2的協議下開放了ancillary 類庫,很快我也會在AGPL協議下開放主題程序的代碼。經過上周14個小時的清理工作,我現在仍不敢100%確認代碼里面沒有泄露用戶信息。把所有的代碼 都看一遍我可不太想干。
由于遵循AGPL協議,我決定嘗試一下 crowd-sourced campaign 來幫助開源。要求我開源的公司沒有做出任何實質性的事情來幫助開源這件事情。之前眾多的從IndieGogo網站和推ter來的評論郵件現在也同樣令人灰心。
結論
對 開源這件事。我有過因為情感因素的第一反應。我分析了原委后,我決定不按照我的第一反應來開源我的項目。但是我沒有成功。我認為我已經開源的那些工具會有 利于他人,我在google的自動化測試會議上也說明了事情的進展。凈屋實現(clean-room implementation)不應該太過復雜。鑒于我現在做了這么多的工作,你現在加入正是時候。不幸的是,我到站了。今天就到這里。
來自:http://code.csdn.net/news/2822834