天天看點

将創業失敗的項目開源

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網站和Twitter來的評論郵件現在也同樣令人灰心。

結論

對開源這件事。我有過因為情感因素的第一反應,我分析了原委。我決定不按照我的第一反應來開源我的項目。但是我沒有成功。我認為我已經開源的那些工具會有利于他人,我在google的自動化測試會議上也說明了事情的進展。淨屋實作(clean-room implementation)不應該太過複雜。鑒于我現在做了這麼多的工作,你現在加入正是時候。不幸的是,我到站了。今天就到這裡。

原文位址:http://nirvdrum.com/2014/11/20/open-sourcing-mogotest.html

繼續閱讀