给公司决定一款基于Web的项目管理的软件。

    因为,基于Web的此类软件在开源软件中是最成熟的,也是应用最广泛的。当然,我们也快速的将下面几款软件排除在候选列表中:

    Kforge, Project HQ, ProjectPier ,主要是因为这些软件大多只是由一些小项目组维护,可持续性无法保证;

    Collabtive, Feng Project, 而这两款软件虽然也挺有名,但发展时间太短(小于3年),还有待观察;

    Launchpad 和 Trac 最终也被加入到候选列表中,最终候选列表为:Codendi,dotProject,Launchpad,Project.net,Redmine ,Trac.

    在具体对比各软件的细节之前,我们先给出我们的最终对比结果。下表概述了所有候选软件的总体得分情况。为了更简单直观的介绍这些软件的特点,我们继续缩小软件列表的范围,只选择那些得分比较高的软件进行具体介绍,例如,dotProject, Launchpad, Redmine 和 Trac。

 

    让我们先来看看这些项目发展的可持续性怎样?

    项目可持续性是软件如下特性的重要保障:成熟度 (所有候选软件均超过3年), 稳定性 (所有均达稳定状态,并长期维护,dotProject显示出项目开发活跃度在逐渐减少,参考 Ohloh 和 Melquiades ),流行度 (Launchpad 和 Trac 都非常流行,而dotProject 和 Redmine 则正在获得人们更多的关注),相关书籍 (除了Launchpad,市面上都有这些软件的相关书籍,当然,Redmine 的书籍 是日文版的。) ,社区发展情况和项目领导团队 (dotProject 和 Trac 开发团队相对较小,而Redmine 相对较大,Launchpad则有一个庞大的开发团队;dotProject 和 Redmine 都是社区驱动的项目,而Trac和Launchpad则是以公司主导的。 

那么,它们的商业部署能力怎样呢?

 

    项目商业部署能力主要考虑的是软件培训和商业应用的支持 (dotProject 是唯一提供一系列培训服务的软件;dotProject 和 Redmine 也都提供社区支持,而 Launchpad 的商业支持是基于哪些配托管的项目的订阅服务)。所有项目都有完备的文档,但都只是英语。所有项目都有自己完整的QA流程,使用各种流行的工具,但 dotProject项目对bug的处理速度较慢。所有软件的源代码中有注释的代码都超过20%,Trac和Launchpad甚至达到25%左右。

项目发展策略 co涵盖4个不同的方面:许可协议(License)、发展路线图(Roadmap)、代码改进和项目赞助者。所有项目都采用开源的许可协议(Launchpad使用AGPL v3,其它的软件都使用GPL)。我们认为,社区主导的开源软件更有利于吸引来自外部的贡献。所有项目的有代码改进的意愿,但相关进程在 dotProject项目中不明确。最后,也是非常重要的一点是,除了dotProject项目,所有对比的选手都发布了自己详细的发展路线图。

    我们首先将dotProject软件排除在我们推荐的工具之外,除了以上比对结果外,该软件还缺少对SCM的整合,这样影响它作为一个完整方案的应用。当然,对于某些特定需求的用户,如果该软件的一些特性符合用户的需要,则另当别论。 

    Launchpad 的功能特性最适合那些将该软件部署成为软件托管平台的用户的需求。但安装该软件的开源版本则着实是一场恶魔。但即使实现了使用运行在Oracle VirtualBox上的Launchpad虚拟化部署,由于一些技术性原因(bzr launchpad-login <username> 仍然要在launchpad.net上查找用户名,这样,用户将不能使用一个OpenID服务来注册用户,等等),简化的梦想还是无法成真。 此外,Launchpad有争议的向自由软件的转型看似也困难重重,显然,Canonical公司人员的说法是真实的:

    也许,Launchpad更适合被采用作为一个内部开发系统,但是,如果你用足够多的敲打,也许你可以将一个方口的木桩打入一个圆形的洞中。

    Trac 目前还无法同时管理多个项目,但如果作为一个单一项目的管理工具,它是一个很好的选择。大家可以使用 BitNami 和 Turnkey virtual appliance。

Redmine 可以同时管理多个项目,而且它提供多种代码库管理工具的支持(CVS, Bazaar, Darcs, Git,Mercurial 和 Subversion), LDAP 认证的支持, 多语言支持, 基于角色的访问控制和灵活的工作流引擎。

    Redmine 有着丰富的插件库,大部分可以在github上找到,而且Redmine 的插件教程也非常简单有效。Redmine 是一个简单和易扩展的平台,使用Ruby on Rails开发,它的设计借鉴了Trac的许多方法。

    综上所述,选择了Redmine 为我公司的项目管理软件,进行项目管理、知识分享、任务分配和KPI考核。