将创业失败的项目开源

201410月底,我宣布将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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值