开源项目管理软件禅道创始人王春生专访
程序员文章站
2022-03-03 18:25:55
...
禅道是一款优秀的国产开源项目管理软件,它集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体,是一款功能完备的项目管理软件,完美地覆盖了项目管理的核心流程。
禅道项目在 2013年度中国优秀开源项目评选 ”中获得较高票数,并被专家评审团评为“2013年度中国优秀开源项目”。
禅道项目在 2013年度中国优秀开源项目评选 ”中获得较高票数,并被专家评审团评为“2013年度中国优秀开源项目”。
- 禅道官网: http://www.zentao.net/
- Github地址:https://github.com/easysoft/
先做个自我介绍吧!
大家好,我叫王春生,2001年毕业于北京师范大学。我的主修专业是汉语言文学,听了一学期课之后感觉特别无聊,正好学校开设计算机课程,就迷上了计算机,然后就自学,玩各种软件。那时候非常有幸认识了几位非常有黑客精神的老师,在他们的指引下接触了Linux、开源,并开始玩各种各样的开源软件。我毕业后在很多家公司工作过,所从事的基本上都是互联网行业。做过老本行的编辑,兼职做过销售,后来转向开发,并开始带项目。我于2006年加入阿里巴巴,并先后在雅虎中国、阿里妈妈和淘宝工作过,主要负责后端引擎自动化测试工作。
我个人的成长受开源思想和软件影响颇深,所以也先后做了几款开源软件。2004年到2007年,我作为主要开发者开发维护了 BugFree;2006年作为项目leader主持开发了ECShop1.0版本;2009年初启动禅道项目;2010年正式开始创业,全职从事禅道开源软件的开发。
我个人的成长受开源思想和软件影响颇深,所以也先后做了几款开源软件。2004年到2007年,我作为主要开发者开发维护了 BugFree;2006年作为项目leader主持开发了ECShop1.0版本;2009年初启动禅道项目;2010年正式开始创业,全职从事禅道开源软件的开发。
禅道是一个什么样的项目?提供了哪些功能?
禅道(www.zentao.net)是一款项目管理软件,它可以有效地把研发项目过程中涉及的方方面面元素、流程有效地跟踪管理起来。软件研发项目有自己的特殊性,有产品、研发和测试三种角色的互动,涉及的基本元素有需求、任务和缺陷。禅道软件可以把这三种角色、三种基本元素之间的过程跟踪和流转有效地跟踪管理起来。
禅道从功能上来讲,可以分为三个大部分:产品、项目和测试。其中产品层面是给产品经理使用的,涉及需求的管理、计划的制定,版本的发布和路线图等功能。项目层面是给研发团队使用的,涉及项目的计划、任务、版本等功能。测试是给测试团队使用的,主要涉及测试用例、测试计划和和缺陷跟踪管理。
和其他的软件相比,禅道是一个过程的协同跟踪管理软件,或者简单说,其他很多软件是给领导做计划用的,禅道是给干活的研发团队用的。
禅道从功能上来讲,可以分为三个大部分:产品、项目和测试。其中产品层面是给产品经理使用的,涉及需求的管理、计划的制定,版本的发布和路线图等功能。项目层面是给研发团队使用的,涉及项目的计划、任务、版本等功能。测试是给测试团队使用的,主要涉及测试用例、测试计划和和缺陷跟踪管理。
和其他的软件相比,禅道是一个过程的协同跟踪管理软件,或者简单说,其他很多软件是给领导做计划用的,禅道是给干活的研发团队用的。
当初为什么会想到做一个开源的项目管理软件?为什么取名为“禅道”?
我在阿里巴巴工作的三年里面,因为职位的特殊性,需要同时参与多个项目。三年下来,感觉做得很累,压力很大,很多项目最终也不了了之。然后我就思考,找原因。原因有很多,有高层的战略问题,有研发团队的问题,等等。然后我就想自己可以提供什么样的解决方案,想来想去,我觉得自己可以在工具的支撑方面提供帮助。
当时,我们的项目管理最开始时是用Sharepoint + Excel(一个共享文件,大家来编辑),后来用Sharepoint + BugFree + XPlanner。产品经理需求整理到Sharepoint中,然后项目计划用XPlanner,测试跟踪用BugFree。不胜其烦,信息需要在各个系统中手工同步更新关联,非常糟糕。当时我曾经提出到过程改进部门工作,来做内部的支撑工具。但由于种种原因,未能如愿。后来就带着这个想法,开始了禅道这个开源的项目管理软件的开发。
禅道这个名字是我在读《编程之道》和《编程之禅》这两本书时受到的启发,然后就老实不客气地把中国文化中最难解释的两个字当成了我们软件的名字。从深层次讲,也是有我们的一些诉求,其实项目管理也很简单,只要我们抓住本质的东西就可以了。我们往往太多关注表面的东西了,忽略了真正的管理之道、管理之禅!
当时,我们的项目管理最开始时是用Sharepoint + Excel(一个共享文件,大家来编辑),后来用Sharepoint + BugFree + XPlanner。产品经理需求整理到Sharepoint中,然后项目计划用XPlanner,测试跟踪用BugFree。不胜其烦,信息需要在各个系统中手工同步更新关联,非常糟糕。当时我曾经提出到过程改进部门工作,来做内部的支撑工具。但由于种种原因,未能如愿。后来就带着这个想法,开始了禅道这个开源的项目管理软件的开发。
禅道这个名字是我在读《编程之道》和《编程之禅》这两本书时受到的启发,然后就老实不客气地把中国文化中最难解释的两个字当成了我们软件的名字。从深层次讲,也是有我们的一些诉求,其实项目管理也很简单,只要我们抓住本质的东西就可以了。我们往往太多关注表面的东西了,忽略了真正的管理之道、管理之禅!
禅道项目有哪些创新点?
禅道的主要创新点在于集成的项目管理,在一个软件里面把研发项目的完整过程做到有效跟踪和覆盖。开源的项目管理软件有很多,比如Dotproject、Redmine、Trac,还有其他很多的缺陷跟踪软件,比如Mantis、Testlink、BugFree等等。这些软件功能都太单一,更多的是基于事务管理的:一个issue打上feature、task或者bug的标签,缺少严谨的管理思想和过程的跟踪。
禅道的扩展机制也是一个很重要的特点,我们自己写了一套框架,然后在这套框架基础上实现了完整彻底的扩展机制。大家知道有很多的开源软件都有扩展机制,但这些往往都是基于事件或者钩子机制,只能在原来的基础上做局部的改动。禅道软件的扩展机制借助于PHP语言动态解释执行的特点,通过面向对象的继承和覆盖,实现了完整彻底的扩展机制。这样来说会更容易理解,通过扩展机制,可以把禅道改成与它本身完全不一样的东西。
禅道的扩展机制也是一个很重要的特点,我们自己写了一套框架,然后在这套框架基础上实现了完整彻底的扩展机制。大家知道有很多的开源软件都有扩展机制,但这些往往都是基于事件或者钩子机制,只能在原来的基础上做局部的改动。禅道软件的扩展机制借助于PHP语言动态解释执行的特点,通过面向对象的继承和覆盖,实现了完整彻底的扩展机制。这样来说会更容易理解,通过扩展机制,可以把禅道改成与它本身完全不一样的东西。
讲讲禅道从立项到发布首个版本之间的故事吧。有什么让你印象深刻的事情?
禅道项目正式启动是2009年初,春节过后。当时花了很久的时间在做整体功能、技术架构和商务模式方面的设计,当时整理了一个脑图文件(现在基本上还在按照这个脑图文件在走)。印象比较深刻的是我的一个朋友说要做禅道软件的第一个用户,然后我们就用最短的时间发布了0.01 alpha版本。但是那个朋友也从来没有用过,哈哈。得到的启示就是,国人太忙,朋友的承诺不要太当真,靠人不如靠己。
介绍一下禅道项目的架构。它的设计理念是什么?
禅道项目是公司内部的管理软件,对性能、并发要求并不是很高。所以我们在做技术架构的时候,更多考虑的是代码的可维护性以及用户扩展的方便性。因此我们在发布禅道软件之前,先花了半年的时间做了我们自己的zentaophp框架。这个框架也是典型的MVC结构,它主要的特点就是简单、合理。大家有兴趣可以关注下:devel.zentao.net
就像前面所讲,我们开发这个框架,一方面是为了控制自己项目的进度(不可能依赖于第三方的框架,受制于人),另外一方面就是扩展机制。禅道的扩展机制都是靠这个框架来实现的,禅道软件的商务模式也是基于这套扩展机制的。
就像前面所讲,我们开发这个框架,一方面是为了控制自己项目的进度(不可能依赖于第三方的框架,受制于人),另外一方面就是扩展机制。禅道的扩展机制都是靠这个框架来实现的,禅道软件的商务模式也是基于这套扩展机制的。
禅道使用了哪些技术来实现?选择这些技术的理由是什么?
禅道软件使用的开发语言是PHP,数据库是MySQL,WebServer没有特定要求,Apache、nginx、IIS都可以使用。
选择PHP,是因为一直在用PHP,它简单、开发效率高、跨平台、解释执行、功能丰富、表现力强。选择Apache和MySQL,也主要是因为它们是跨平台的,安装维护都非常的简单(Apache和MySQL运行环境可以精简为只需要几个核心文件)
前端的我们采用了jQuery作为JS框架,还有很多第三方的前端扩展,比如自动提示、树状列表之类的。
选择PHP,是因为一直在用PHP,它简单、开发效率高、跨平台、解释执行、功能丰富、表现力强。选择Apache和MySQL,也主要是因为它们是跨平台的,安装维护都非常的简单(Apache和MySQL运行环境可以精简为只需要几个核心文件)
前端的我们采用了jQuery作为JS框架,还有很多第三方的前端扩展,比如自动提示、树状列表之类的。
开发项目管理系统的难点是什么?开发过程中,你们遇到了哪些困难?是如何解决的?
开发项目管理系统的难点在于跨界,你需要知道项目管理的各个流程,懂得项目管理的方法和理论,同时还需要你把它提炼成通用的需求,然后用技术合理的实现出来。
这中间涉及到太多的取舍和平衡。比如权限的控制,太松和太严都不好;比如各种涉及流程控制的字段,多了,使用麻烦,少了,跟踪和管理就弱了。所以更多的是在这些方面纠结,找到比较合适的解决方案。
开发过程中难点不多,技术层面的问题都是可以解决的,解决不了还可以绕。
这中间涉及到太多的取舍和平衡。比如权限的控制,太松和太严都不好;比如各种涉及流程控制的字段,多了,使用麻烦,少了,跟踪和管理就弱了。所以更多的是在这些方面纠结,找到比较合适的解决方案。
开发过程中难点不多,技术层面的问题都是可以解决的,解决不了还可以绕。
禅道项目已经诞生4年了,讲讲这期间的发展情况吧。
2009年是起步期,这段时间我是业余时间在做,主要完善框架,完成了核心的功能。
2010年正式创业,成立公司,专职来做这件事情。版本发布到1.x,核心功能已经基本完备,有了自己的小团队,用户群初步形成。
2011年是比较关键的一年,这一年里面我们得到了朋友的帮助,加速了发展,核心团队也初步形成,产品功能进一步完善。
2012年我们正式推出专业版本,开始尝试商业路线,并取得了预想中的结果,2012年下半年开始有盈利。
2013年产品已经发布到了5.0版本,团队也进一步壮大,收入一直比较稳定。
2010年正式创业,成立公司,专职来做这件事情。版本发布到1.x,核心功能已经基本完备,有了自己的小团队,用户群初步形成。
2011年是比较关键的一年,这一年里面我们得到了朋友的帮助,加速了发展,核心团队也初步形成,产品功能进一步完善。
2012年我们正式推出专业版本,开始尝试商业路线,并取得了预想中的结果,2012年下半年开始有盈利。
2013年产品已经发布到了5.0版本,团队也进一步壮大,收入一直比较稳定。
禅道开发团队目前有多少人?你们是如何分工和协作的?
我们团队现在有12个人。我主要负责产品方面的工作,还有3位同事负责研发,1位同事负责前端交互(最近刚刚加盟),1位做技术支持,1位做商务销售,1位做运营策划,1位做财务,还有1位帮我们做设计工作。
还有2位同事,在做我们的新产品——蝉知企业门户系统(www.chanzhi.org),这也是个开源软件,主要帮助企业快速搭建企业营销门户。
还有2位同事,在做我们的新产品——蝉知企业门户系统(www.chanzhi.org),这也是个开源软件,主要帮助企业快速搭建企业营销门户。
据你所知,禅道目前有多少用户?
我们得不到确切的用户数字,初步估计应该有几万家公司或者团队在使用禅道做项目跟踪。这其中有很小的创业团队,也有很大的集团公司,有软件公司,也有知名的互联网企业。有游戏公司,也有软硬结合的公司。还有很多军队和学校的单位也都在使用禅道做项目管理。
禅道目前有开源版本,也有专业版,在特性选择上,哪些特性会进入专业版,哪些会进入开源版,你们的标准是什么?
主要的标准是看功能的通用性,如果是每个企业都可能会用到的功能,我们会优先考虑放在开源版本中。专业版本更多的提供的一些增强的功能,比如更多的统计、更多的任务查看方式等等。
我们之前专业版本有批量添加、编辑的功能,后来我们觉得这个大家都需要,我们就把批量操作功能模块放到了开源版本中。我们不会为了推销我们的收费版本而故意在开源版本中做很多的功能限制,那样是不道德的。
其实开源版本的功能已经足够丰富和完善了,以至于我们销售最大的对手就是我们自己,哈哈。很多用户试用了开源版和专业版,说开源版足够了。
我们之前专业版本有批量添加、编辑的功能,后来我们觉得这个大家都需要,我们就把批量操作功能模块放到了开源版本中。我们不会为了推销我们的收费版本而故意在开源版本中做很多的功能限制,那样是不道德的。
其实开源版本的功能已经足够丰富和完善了,以至于我们销售最大的对手就是我们自己,哈哈。很多用户试用了开源版和专业版,说开源版足够了。
禅道目前的盈利模式是什么?在开源项目商业化上,你们有哪些经验可以分享?
其实所有的盈利模式核心都是用户数。没有用户,再好的模式也没有用。简单来说就是通过为用户提供开源的、免费的、专业的项目管理软件,并为他们提供及时有效的支持,获得大量的用户,然后再通过增值的功能或者服务来收费。这就是禅道的模式。禅道的收入有专业版本的授权、培训、在线托管、定制开发、插件销售等多种渠道。
开源项目商业化不容易,有一些体会和开源的同行分享:
开源项目商业化不容易,有一些体会和开源的同行分享:
- 产品的选型很重要。国内开源的朋友大部分做的都是框架之类的东西,但其实你想想,框架的使用者是开发者,而赚开发者的钱太难了。企业也不会为了一个框架的技术支持或者培训买单,很难。应用类的开源软件就比较好,因为用户可以实实在在地感受到你的软件给他带来的价值。
- 最好是专职来做。兼职来做,更多的是兴趣,想来做商业化,确实还是需要成立公司,专职来做。别的不说,人家买你东西,要开发票,你兼职来做,怎么办呢?成立公司,人家也会觉得你的产品有保障,可以持续下去。
- 做开源软件很不容易,不是单单把软件开源出来就可以了。要整理文档,回答问题,要做宣传推广,要坚持更新版本。我们自己的体会,这些工作差不多占到了一半左右的时间。也就是我们一半时间开发软件,一半时间在做周边的这些支持工作。
- 考虑问题的角度很重要。搞开源的,都是技术的高手,考虑问题更多从技术层面考虑。但真正做产品,需要我们转变考虑问题的角度,更多地站在用户的角度来考虑。比如我们最开始配置发信功能,是通过配置文件来设置的。后来发现大家对smtp端口、发信账户这些都搞不懂。就逼着我们简化配置,最后我们就简化为只需要用户输入一个邮箱地址,各种参数就可以自动计算出来。用户使用也方便,也减少了我们大量的支持工作。
禅道还推出了一个开放平台,这个开放平台的目的是什么?
开放平台和禅道的插件机制是有直接关系的。禅道的用户可以按照禅道的扩展机制对禅道的功能进行修改或者定制以满足个性化的需要。当某个用户做完了某个功能,发现这个功能其他人也可能需要,他可以把插件代码打包成一个zip文件,发布到我们的开放平台上面了,这样其他用户就可以在禅道软件的插件管理中心中浏览到这个插件,然后可以在线自动安装、禁用、卸载或者升级,非常方便。
做这个开放平台,也是受Wordpress和Drupal的启发。它们的社区有成千上万的插件功能,形成了一个生机勃勃的生态体系,也奠定了它们在这个领域的领先地位。我们做这个开放平台,除了方便大家分享交流插件之外,也是想吸引第三方的朋友来分享插件,可以是开源的,也可以是收费的。
做这个开放平台,也是受Wordpress和Drupal的启发。它们的社区有成千上万的插件功能,形成了一个生机勃勃的生态体系,也奠定了它们在这个领域的领先地位。我们做这个开放平台,除了方便大家分享交流插件之外,也是想吸引第三方的朋友来分享插件,可以是开源的,也可以是收费的。
简单介绍一下开放平台目前的情况。如何实现与开发者共赢?
开放平台目前有四十多个插件,来自第三方的插件大概能占到1/3。
和开发者利益分享这块我们是这样处理的——开发者可以把他开发的插件发布上来,然后标价出售,如果有用户购买的话,他可以获得70%的分成,平台占30%。
但开放平台也存在一些问题,主要是有时间且有能力开发禅道插件又可以和大家分享的开发者太少了。很多插件也没有及时随禅道最新版本升级。这是中国的开发者现状吧,没有办法,只能慢慢来。
和开发者利益分享这块我们是这样处理的——开发者可以把他开发的插件发布上来,然后标价出售,如果有用户购买的话,他可以获得70%的分成,平台占30%。
但开放平台也存在一些问题,主要是有时间且有能力开发禅道插件又可以和大家分享的开发者太少了。很多插件也没有及时随禅道最新版本升级。这是中国的开发者现状吧,没有办法,只能慢慢来。
禅道项目今后的发展规划是什么?
禅道计划有两条线,一个是前面和大家介绍的我们新的项目蝉知企业门户,这个主要是解决企业对外营销的问题。另外就是对禅道的交互做进一步的优化和加强。专业版本的功能进一步完善和丰富。我们的愿景:管公司,用禅道;做营销,用蝉知!