敏捷开发的潮流并不是由敏捷工具来推动的,因为你可以仅使用命令行接口、单元测试工具和需求卡片来展开敏捷开发。但近年来,为了更好地支持敏捷开发,敏捷工具也有了很大的发展。其中部分工具是直接面向新型项目管理方式的,特别是有些种类的工具已与敏捷开发密不可分。根据Forrester研究公司(Forrester Research)高级分析师Carey Schwaber的研究结果,面向敏捷开发的项目管理工具、持续集成构建工具和自动测试工具已是敏捷开发不可或缺的工具。
Schwaber等人也指出,当敏捷成为大型团队开发进行大型项目的主流开发方式时,这些自己临时组织起来的技术,如仅靠白板、电子表格和WIKI等将难以满足需求。
Scrum作为当前业界最流行的敏捷软件开发方法之一,受到越来越多的关注。对于一个新的Scrum敏捷团队而言,选择合适的Scrum工具是保证成功实施Scrum的关键一环,然而了解市面上种类繁多的各种工具并做出选择,是一件费时费力的事情。为帮助新团队更好地选择和使用Scrum工具,笔者最终选定了一批国内外用户常用的Scrum工具,进行了简单比较,由于篇幅有限,不能详尽,希望能对中国的敏捷开发者有所帮助。
基础工具
白板
这是实施Scrum最简单直接的方式,用于每天的跟踪汇报,还是非常不错的,但是对Product Backlog支持明显不够,也没办法保留历史纪录,而历史纪录对于回顾还是非常重要的,毕竟Scrum的核心理念之一就是通过短期回顾,达到持续不断的改善。
Excel
我们最初也用过,有很多现成的模板可以用,曾经写过一个Script,自动提取每天的Burndown Chart,自动发给指定的邮件地址列表。主要问题是当成员比较多的时候,同时修改一个共享Excel文件,会相互冲突,不好同步。如果需要模板,可以到”敏捷软件开发随笔”http://scrumxp.blogspot.com 下载。
免费/开源工具
Leangoo
Leangoo.com 免费的敏捷团队协作工具,优势是简单易用,支持方便的拖拽任务卡,可视化,5分钟就可以用起来,支持手机端,ipad。
ScrumWiki
这个最初在一个项目上也用过,一开始感觉还不错。因为采用wiki模式,每个人都可以随时编辑,更新任务状态,比较适合分布式开发。但当你的需求变多变复杂时,就不容易用了。后台脚本是用Perl写的,我们的一个外国同事还专门对它进行了修改,增加了好多功能,这样才好用起来。作为免费开源的软件,目前已经没有人支持和维护,也不能支持中文。
XPlanner
最牛的祖父级的开源工具,完全免费,业界使用率排名第四,真的是穷人的项目管理工具!对于Scrum也有很好的支持。作为一个基于Web的XP团队计划和跟踪工具,只需要 Apace Tomcat即可。
XP独特的开发概念如iteration、user stories等,XPlanner都提供了相对应的的管理工具,XPlanner支持XP开发流程,并解决利用XP思想来开发项目所碰到的问题。 XPlanner特点包括:简单的模型规划,虚拟笔记卡(Virtual note cards),iterations、user stories与工作记录的追踪,未完成stories将自动迭代,工作时间追踪,生成团队效率,个人工时报表,SOAP界面支持。
XPWeb
另一个基于Web的分布式方案。
使用PHP+MySql,可运行于Linux、Windows或Mac。但其提供的在线演示在IE7下工作不怎么样,没法详细测试。
Scarab
Java Server平台,对于统计查询、报表、自动邮件通知、评论协作、依赖关系跟踪等都有很好的支持,可以灵活定制,支持多种语言,包括中文。
Double Chocco Latte
基于PHP,支持Apache或IIS、MySQL或SQL Server、Web客户端,虽然也有人用于Scrum,但对Scrum的支持并不好,缺乏最基本的Burndown Chart。
GNATS
GNATS 传统来讲,属于缺陷跟踪工具, 但根据Jeff Sutherland讲,已经支持 Scrum,没有仔细研究。
厂商工具(商业付费)
VersionOne
最早的商业化产品,基于ASP.NET、IIS和SQL。没什么好说的,业界使用率排名第一。
从功能上看,的确非常新颖,贯彻了敏捷中的User Story为先的原则和VSTS类似,将Issues、Defect、Task合并概念成为Task(在VSTS中更加优雅,叫做WorkItem), 并且必须挂在UserStory下,这个工具值得看看,有试用版可以下载,或者可以使用他们在线提供的试验平台。
团队可以使用“V1:敏捷团队”来管理产品和sprint backlog,通过交互式的“任务板(taskboards)”和“测试板(testboards)”进行每日开发活动,藉由报表和燃烧图查看进度,以及其他活动。
通过这些功能,“V1:敏捷团队”的用户可以做到:
·从电子表格中快速导入故事与缺陷,管理合并后的产品backlog。
·利用简单的多条目拖放操作,方便地完成计划制定、对故事划分优先级。
·使用电子白板界面同时制定多个版本的发布计划,提高效率。
·通过交互式的任务板(Taskboard)、测试板(Testboard)、每日Scrum dashboard来对版本和sprint进行可视化追踪。
·针对版本和sprints的关键敏捷度量数据生成图表,如Burndown、Velocity、Estimate trends、Cumulative Flow Reports。
唯一的问题就是提供的选择过多,对于寻求简单明了工具的人,并不是一个好产品.
Rally
业界使用率排名第二位!支持用户需求的筛选、扩展的筛选标准、改进版本剩余时间表、新的通知规则(notification rules),以及用于Eclipse和CruiseControl.NET的连接器。
如果想了解更多,可以参考免费在线试用体验版本。
ScrumWorks
个人认为是对Scrum各个方面支持最好的商业产品,业界使用率排名第三位。可支持不同的团队工作于不同的项目上,非常灵活。既有简单的web客户端,也有强大的java客户端。
有免费使用版,且无时间限制,我们一直在用。
商业版ScrumWorks Pro支持对Bugzilla和Jira的集成,带有主题过滤功能的burndown图表,以及其他辅助了解项目状况和走势的功能,还有众多别的特性。
ScrumWorks Pro与Bugzilla和Jira的集成,体现在它可以导入两者中的条目作为backlog条目,并且可以像对其他backlog条目一样,对这些条目进行操作。可以使用搜索来选择感兴趣的条目,并进行单独或多项导入操作。
Burndown图表现在可以按照主题进行分组。将backlog按照主题进行组织后(类似于web 2.0中使用标签),你可以高亮或是过滤这些backlog,并且能够使用同样的主题针对burndown图进行过滤。
Mingle
Mingle在ThoughtWorks官方站点可以免费下载,且5个用户以下的可以永久免费使用。Mingle是用纯Ruby打造的且运行在JRuby上的一个产品,由于ruby是一门脚本语言,所以其移植性就很好,用其编写的程序安装起来也甚是容易,在Windows、Mac和Unix多种主流平台上跑都是没有问题的;但也正是由于采用ruby编写,Mingle对硬件的要求也甚高,在我这台512M内存的机器上跑是超慢的、让人闹心的,建议还是放到性能好的、单独的服务器上,内存容量官方建议是2G。在试用时,还遇到了好几次IE错误,只好放弃了。
Mingle后台存储采用数据库方式,目前仅支持mysql和Postgres两种数据库版本,不能支持其它大型数据库,这点比较遗憾。
简单用了一下,发现如下很好的功能:
– 支持建立”个性化”项目模板,便于复用;
– 附带项目wiki,便于”项目知识积累和管理”;
– 丰富的card properties,使需求驱动的管理流程更加清晰;
– 支持card和源代码之间的link。
Select Scope Manager
商业化产品,有试用版可下载。定制性比较差.
XP Plan-it
仅仅支持把你的数据放在他的Server上,你通过下载的客户端更新和查看数据。好像对大多数人来讲意义不大。
ProjectCards
ProjectCards 维持项目管理的索引卡片,精确的具体内容,一个项目控制盘,搜寻和过滤能力和拖放反复计划。六十日免费的试用。
基于Client/Server结构,支持plug-in for Eclipse。
TargetProcess
是一个敏捷项目管理与Bug跟踪系统。企业版提供很多定制的功能。
这个工具挺适合小项目团队的。
ExtremePlanner
一个基于web的工具,它的功能几乎与ProjectCards完全一样,但是它添加了在任务级别进行评估的功能,这一改进非常棒。由于是基于web的, 所以它的界面可能不够漂亮,但是由于基于浏览器,它获得了一些灵活性(例如,当项目成员想在线查看状态报告时,如果是使用ExtremePlanner,就无需安装任何东西。)
我还在进一步考察这个工具,但是它看起来相当不错。
TRICHORD
这个名为“TRICHORD”的敏捷项目管理工具,是基于精益思想的,对Scrum也适用。TRI指的是三种视角(时间、任务和团队),CHORD则是和谐的意思。
它作为全团队分享项目状态的一个工作空间来运作,里面提供三种层次的看板图–特性看板(发布-特性)、故事看板(故事-迭代)和任务看板(工作日-任务)。特性看板用停车场图来归纳,故事和任务看板用延烧图来归纳。
后记
每一个Scrum工具,都有自己的特点,都有自己的过人之处,进行选择时,需要谨记这样一条基本原则:“适合自己的,才是最好的”。毕竟每个团队、每个项目、每个产品,以及在不同的时间段,都会展示出不同的需求。一般而言,可以从如下几个方面进行考虑:
1.可利用的功能
作为一个Scrum工具,一定要考虑是否支持Scrum框架所必需的基本元素,如Product Backlog、Sprint Backlog、Burndown chart等?是否支持多个用户?
2.安装要求
这里主要考虑运行该工具软件对计算机硬件和软件的要求:存储器、硬盘空间容量、处理速度和能力、图形显示类型、打印设置以及操作系统等。
3.经济性
这个无需多言,毕竟,贵的并不一定就是最好的。
4.操作简易性
主要应考虑系统的”观看”和”感觉”效果、菜单结构、可用的快捷键、彩色显示、每次显示的信息容量、数据输入的简易性、现在数据修改的简易性、报表绘制的简易性、打印输出的质量、屏幕显示的一致性,以及熟悉系统操作的难易程度。
5.可维护性
作为一个敏捷开发支持工具,一定要维护简单,有备份功能。此外,还要看是否有人继续支持,做后续产品新功能的不断开发及Bug修复。
6.安全性能
有些公司可能认为安全问题很重要,那么就要特别注意对工具软件、每个项目文件及每个文件数据资料的限制访问方式。
目前,由于Scrum工具的使用越来越容易和有趣,再加上提供的大量很有吸引力的特性,可能使得项管理人员过分依赖于工具。其实,任何软件仅仅是帮助你更有效率、有效果地工作的一个工具,工具自己并不能管理项目。你进行项目管理,一定要依靠你自己的技能,依靠你的团队的技能。如果没有掌握Scrum敏捷项目管理的基本概念,对敏捷缺乏基本知识,只知道使用工具,但却不知道工具的真正用途,工具就没有什么意义了
来源:IT168