昨天公司说要做一个工作流程控制系统,经朋友建议,尝试使用禅道进行管理,自己试用了下,感觉非常不错。下午看朋友发的关于禅道和bugfree的恩恩怨怨,更加佩服禅道的项目主管。

原文链接:http://wangchunsheng.com/article-view-79056.html

这些话,在肚子里面憋了很久,说给自己听,也是说给hero听,也是说给大家听,是非曲直,恩恩怨怨,大家自由评说。

去年的时候,hero找我聊天,聊了很多。hero说了一句话,让我泪流满面,是委屈的流泪。hero说,你不应该放弃你的bugfree团队。我当时对hero说,我没有放弃我的bugfree的团队,只是有很多话,我现在还不能讲。

今天终于可以说说了。我并没有放弃bugfree的团队,是被排挤出了的bugfree团队!

时间要倒退到2004年,在西线工作的时候。那个时候,liu刚从微软出来,到西线创业。为了配合他的管理需要,我开发了bugfree最初的原型。一开始就是在公司内部使用,叫做bugtracker之类的名称。后来有一天说,咱们把它开源吧。liu听了之后很是兴奋,然后他说服公司,bugfree就正式开源了。最开始不叫做bugfree,叫做freebug。

很快liu去了一家做手机sp的公司。bugfree的后续版本的开发和维护,liu就没有再参与。2005年4月,我从西线辞职,开始自己的第一次创业。很幸运当时认识了手机之家的朋友们,老高帮我解决了服务器的问题。自己注册了bugfree.cn的域名,开始bugfree后续版本的开发。这时易软开源组织也正式成立。很快bugfree发布到了1.0正式版本。

之后,家中变故,父亲生病,我回老家照顾。第一次创业就此搁浅。06年上半年再次回到北京,在手机之家开发了ecshop1.0版本。这时liu和我联系,说他去了yahoo,推荐我也去yahoo工作。

于是开始了我的三年alibaba的工作生活。因为我和liu的特殊关系,两人走得很近。很多时候两个人下班也是一起回,因为住的都比较进。后来提议说,我们是不是可以把bugfree重新做起来。这个时候,bugfree上一个版本的更新已经是一年前的事情了。这时yupeng也加入了进来,很快发布了1.1版本,这是一个很小的bug fix版本,旨在让大家知道bugfree项目还没有结束。

这时大家开始筹划2.0版本。前后若干次讨论之后,最终确定了2.0第一个版本的功能。我完成了数据库设计和程序的框架设计之后,提出由yupeng来主导开发。主要想bugfree可以多一个人了解代码。

时间很快到了2007年的夏天,事情发生了很多的变化。我开始觉得liu不是以前的liu了,没有以前那么的率直,缺少了技术人员很多好的东西,增加了很多城府的东西。很多同事在谈论liu的办公室政治,政治手腕。另外一个liu的加入,让事情发生了很多的变化。淘宝的很多同事后来戏称微软二刘。liu2的加入,否定了原来bugfree2中的很多设计。这时候liu意见更倾向于liu2的看法。分歧开始增加。

这个时候发生了好几件事情,促使我做了一个决定。原来bugfree的域名一直是用的bugfree.cn。后来liu1自己注册了bugfree.org.cn,也是在我的服务器上面,我给他开了帐号。但有一天,他并没有经过我的同意,就将bugfree.cn的域名全部指向到了bugfree.org.cn。再加上这段时间,二刘已经忽略我的存在。我曾多次听到liu在电话中得意的跟别人讲,bugfree是他做的等等云云。在他的词汇中,从来没有出现过“我们”这两个词。

累,身心俱疲!我选择了放手,就提出你们去做bugfree2吧,我不再参与bugfree2的开发。大家可以看当时的这篇声明。http://blog.1zsoft.com/node469.html

2007年9月30日,这一天我告诉自己,我一定要做一个东西,为了争一口气,为了让用户用到真正好用的管理工具!

从这一天起,我告诉自己,要堂堂正正的做一个开源软件,而不是做盗窃者。微软二刘在liu2还在微软工作的时候,通过屏幕拷贝的方式将product studio的操作录制了下来,作为bugfree2的原型。现在想想,我也深为自己看到了这些东西而愧疚。

然后后面发生了一系列的事情。我在sourceforge上面bugfree的帐号被取消了管理员权限。然后过了一段时间,我的帐号被删除。这一切都没有人跟我打招呼。然后有一次在杭州,liu出差,找我吃饭,说,你能不能把bugfree.cn的域名送给他。遭到了我的断然拒绝。

然后是我在阿里巴巴工作时,开发了自动化测试框架mmt,并设计了bugfree2的api。然后不久这个api就出现在了对外发布的版本中,并被大肆宣扬。然后就是liu将bugfree的授权改为了apache,这是严重侵权的事情。bugfree最开始的授权是GPL。而我作为主要的代码开发者,享有者主要的版权。但liu没有经过我的同意就擅自更改其授权,这是非常不道德的事情。

总结下来,在和liu合作的这么多年中,总算是认清楚了一个人,也深深的体会到了一个教训,和某些个地方的人打交道,一定要小心。

2010年5月3日,禅道1.0正式版发布,我正式对外宣布BugFree结束。我终于也可以回答hero的问题,我没有放弃bugfree的团队!

禅道和bugfree相比,我们要做:

开放的开源软件。bugfree的团队一直很封闭,都是liu可以控制的人。liu2,我,还有yupeng,还有后来的lijun,都是刘的下属。这种的团队是很不正常的。
干干净净的开源软件。bugfree在开发过程中,抄袭了微软内部管理工具的很多东西,违法,也不道德。
没有版权争议的开源软件。bugfree2现在的代码存在很多的问题,首先我是不认同apache的授权的,并保留相关的权利。其次,liu没有经过公司的同意,将在公司内部改动的很多代码拿出来开源,是违法的事情。
有技术保证的开源软件。liu口口声声说bugfree是他做的,但他从来没有写过代码,从来没有做过技术方面的支持。这算是什么开源软件呢?
与时俱进的开源软件。liu整天在阿里巴巴内部推销bugfree,似乎bugfree就是灵丹妙药。岂不知现在的企业对项目管理越来越重视,单独的缺陷管理已经满足不了需要。今天看到所谓的bugfree官网上面的回复,我们要专注测试领域,不知道禅道是做什么的,只能是哑然失笑,人啊,固化了,真可怕。

liu,帮助过我很多,我感激,记在心里。
liu,之前的你很好,现在的你很不好,简简单单的活回自己,想想你的技术梦想,想想嫂子和yuanyuan。不要再为了那些名利的事情争权夺利。善待你的朋友,不要把他们当成你的棋子,更不想当成保帅丢掉的棋子……

发完这篇帖子,从此不再谈论bugfree,专心做我的禅道!这是对自己的一个承诺,也是对我的团队的一个承诺,也是对广大禅道用户的承诺!说得再多也没有用,Just do it!

转:关于bugfree的一些不得不说的事的更多相关文章

  1. Azure 进阶攻略 | 关于Java 和事件中心的那不得不说的事

    物联网技术辣么火,虽然之前有说过不少,但今天,仍有一个憋在我心里已久,不得不说的话题:基于Azure 的物联网平台必不可少,你可能已经在使用,但也许并没有意识到的服务:Azure 事件中心. 啊?事件 ...

  2. 转:Python 与 Excel 不得不说的事

    数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件.因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道. 如果仅仅是要以表单形式保存数据,可以借助 ...

  3. 关于我和document.write那点不得不说的事

    一直用document.write()方法向浏览器中显示数据用,把它当做Alert()使用, 看来这样用有些大材小用了,下面说说它的主要用处. document.write()方法可以用在两个方面: ...

  4. WebView·开发指南

    WebView·开车指南 作者:凌俊琦链接:https://zhuanlan.zhihu.com/p/22247021来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. T ...

  5. [源码]String StringBuffer StringBudlider(1String部分)

      String     /** The value is used for character storage. */     private final char value[];  /** Th ...

  6. EF框架step by step(3)—Code-First

    CodeFirst是EF框架的第三种方式,也是最为复杂一种方式,本文将以EF4.1版本为基础,简要讲解一下用法,同时,也介绍DbContext的用法. 本文采用的示例仍然是前两篇采用的博客用户的示例. ...

  7. package、import、java及javac的相关介绍(转)

    Package: package中所存放的文件 所有文件,不过一般分一下就分这三种 1.java程序源文件,扩展名为.java: 2.编译好的java类文件,扩展名为.class: 3.其他文件,也称 ...

  8. Web APi之认证

    Web APi之认证(Authentication)两种实现方式后续[三](十五)   前言 之前一直在找工作中,过程也是令人着实的心塞,最后还是稳定了下来,博客也停止更新快一个月了,学如逆水行舟,不 ...

  9. 前端向后台的华丽转身 — PHP入门篇

    三个月就这么悄悄溜走了,本K对于前端虽然有了一定的认识,但对一些方面还是处于一种比较萌币的状态,就在这种萌币状态下,本K又跟着大神浩开始了后台语言-PHP语言的学习.PHP的学习对于学过其他语言的人来 ...

随机推荐

  1. 解决activeandroid no such table

    场景:activeandroid拷贝数据库 (1)复制sql数据库到项目的assets目录,例如/myapp/src/main/assets/prepop.db (2)确保manifest的AA_DB ...

  2. 用valgrind检查内存问题

    Valgrind Valgrind作为一个免费且优秀的工具包,平时大部分人可能都是使用valgrind检测内存问题,如内存泄露,越界等. Valgrind工具包包含多个工具,如Memcheck,Cac ...

  3. MIPS简单入门

    What ‘s the MIPS? 汇编语言 汇编语言是一类语言的总称,因处理器不同,而对应的不同机器的指令集也不同,产生了很多种汇编语言. 目前最流行的是ARM,MIPS,x86.ARM用于大量的移 ...

  4. C-基础:表达式中存在有符号类型和无符号类型时,都自动转换为无符号类型

    void foo(void) { unsigned ; ; (a+b > ) puts("> 6") : puts("<= 6"); } 答案 ...

  5. awk纯干货

    AWK的惊人表现: Awk设计的目的:简化一般文本处理的工作. 属于POSIX的一部分. AWK命令行: Awk的调用可以定义变量.提供程序并且指定输入文件: Awk [ -F fs ]  [ -v ...

  6. docker:安装redis

    文章来源:https://www.cnblogs.com/hello-tl/p/9239474.html 1.添加镜像 # docker pull redis:4.0 2.在/data下新建文件夹re ...

  7. python列表的增删改查用法

    列表,元组 查 索引(下标) ,都是从0开始 切片 .count 查某个元素的出现次数 .index 根据内容找其对应的位置 "haidilao ge" in a 增加 a.app ...

  8. 设置 TabBarItemt图片颜色

    UIImage *discussSelectedImage = [UIImage imageNamed:@"discuss_selected"];//设置图片不渲染 discuss ...

  9. IRQ中断处理流程

    基于Linux2.6.30.4分析IRQ中断的处理流程. 1.中断入口 /* arch/arm/kenel/entry-armv.S*/ b vector_irq + stubs_offset 2.v ...

  10. Knockout v3.4.0 中文版教程-3-监控-通过监控创建视图模型(下)

    6. 显式订阅监控 你通常不需要手动设置订阅,所以初学者应该跳过这一节. 对于高级用户,如果你想注册自己的订阅来监控通知变化,你可以使用 subscribe函数,比如: myViewModel.per ...