2008年9月19日

Scrum工具大比拼---流行Scrum工具一网打尽

早就想写这个总结了,因为SCRUM很好, 工具却难找,但一直没有出台,是想等自己都试用过后,这样才更有发言权。可有些工具真的是很难搭起一个环境,这样只好摘录一些网友们的评论了!

白板
最直接的方式,用于每天的tracking,还是非常不错的,但是对Product Backlog支持明显不够

Excel
我们最初也用过,主要是成员多的情况下,修改时会相互冲突,不好同步。。可以参考我写的这个文章[scrum工具]用excel表格工具实现Scrum

ScrumWiki
这个也用过,一开始感觉还不错。但当你的需求变多变复杂的情况下,就不容易用了。后台脚本使用Perl写的,我们的一个外国同事还对他专门进行了修改,增加了好多feature,这样才好用起来。作为免费的软件,目前已经没有人支持和维护。

Scarab

Java server 平台, 支持灵活定制,免费

Double Chocco Latte
基于PHP , 支持Apache 或IIS, MySQL or SQL Server , web 客户端,免费

VersionOne
商业化产品!没什么好说的,业界老大!

从 功能上看,的确非常新颖,贯彻了敏捷中的User Story为先的原则,和VSTS类似,将Issues、Defect、Task合并概念成为Task(在VSTS中更加优雅,叫做WorkItem), 并且必须挂在UserStory下,这个工具值得看看,有试用版可以下载,或者可以使用他们在线提供的试验平台

基于ASP.NET and IIS和 SQL。

团队可以使用“V1:敏捷团队”来管理产品和sprint backlog,通过交互式的“任务板(taskboards)“和"测试板(testboards)" 进行每日开发活动,藉由报表和燃烧图查看进度,以及其他活动。
通过这些功能,“V1:敏捷团队”的用户可以做到:

  • 从电子表格中快速导入故事与缺陷,管理合并后的产品backlog。
  • 利用简单的多条目拖放操作,方便地完成计划制定、对故事划分优先级。
  • 使用电子白板界面同时制定多个版本的发布计划,提高效率。
  • 通过交互式的任务板(Taskboard)、测试板(Testboard)、每日Scrum dashboard来对版本和sprint进行可视化追踪。
  • 针对版本和sprints的关键敏捷度量数据生成图表,如Burndown、Velocity、Estimate trends、Cumulative Flow Reports。

唯一的问题就是提供的选择过多,对于寻求简单明了工具的人,并不是一个好产品!.

GNATS
GNATS 传统来讲,属于缺陷跟踪工具, 但根据Jeff Sutherland, 已经支持 Scrum. 免费

欢迎访问 "敏捷软件开发随笔---敏捷精灵二三事"



Select Scope Manager
商业化产品,有试用版可下载。定制性比较差.

XP Plan-it
仅仅支持把你的数据放在他的server上,你通过下载的客户端更新和查看数据。。 好像对大多数人来讲意义不大

XPWeb
另一个基于web的分布式方案。免费!

使用PHP+MySql可运行于Linux, Windows, or Mac.但其演示在IE7下工作不怎么样,没法详细测试.

XPlanner
最牛的祖父级的开源工具,完全免费,业界使用率排名第四,真的是穷人的项目管理工具!

作为一个基于Web的XP团队计划和跟踪工具,要求 Apace Tomcat

XP 独特的开发概念如iteration、user stories等,XPlanner都提供了相对应的的管理工具,XPlanner支持XP开发流程,并解决利用XP思想来开发项目所碰到的问题。 XPlanner特点包括:简单的模型规划,虚拟笔记卡(Virtual note cards),iterations、user stories与工作记录的追踪,未完成stories将自动迭代,工作时间追踪,生成团队效率,个人工时报表,SOAP界面支持。.

ScrumWorks
个人认为对Scrum个方面支持最好的商业产品,市场排名第三位,我们一直在用。可支持不同的Team工作于不同的项目上,非常灵活。既有简单的web客户端,也有强大的java客户端。

有免费使用版,且无时间限制,我用的就是。

支持对Bugzilla和Jira的集成,带有主题过滤功能的burndown图表,以及其他辅助了解项目状况和走势的功能,还有众多别的特性。

ScrumWorks Pro与Bugzilla和Jira的集成,体现在它可以导入两者中的条目作为backlog条目,并且可以像对其他backlog条目一样,对这些条目 进行操作。可以使用搜索来选择感兴趣的条目,并进行单独或多项导入操作。Infoq与Danube科技的JD Aspinall进行了交流,讨论了这个特性的本质,以及如何与ScrumWorks Pro一起使用Bugzilla和Jira。

我想提出这个特性请求的用户们都希望同时使用这两个工具。

产品的许多用户将他们全部的bug作为Product Backlog条目录入到ScrumWorks Pro中并进行跟踪。不过也有很多其他用户,由于其他种种原因,使用不同的工具来跟踪问题,并且只选择导入某些特定的缺陷到ScrumWorks Pro中。

Burndown图表现在可以按照主题 进行分组。将backlog按照主题进行组织后(类似于web 2.0中使用标签),你可以高亮或是过滤这些backlog,并且能够使用同样的主题针对burndown图进行过滤。

ProjectCards
ProjectCards 维持项目管理的索引卡片,精确的具体内容,一个项目控制盘,搜寻和过滤能力和拖放反复计划。六十日免费的试用。

基于 Client/Server结构,支持plug-in for Eclipse.

TargetProcess
是一个敏捷项目管理与Bug跟踪系统。企业版提供很多定制的功能,包括Pre-paid 20 hours of development by TargetProcess stuff和提供开发指南与API参考的全部源代码。

这个工具挺适合小项目团队的。

这儿有个 Demo 帮助读者理解这个产品,内容是通过创建一个新的项目,在迭代计划时给开发人员指派故事(Story)。

他们的价格模式包括“按站点 / On Site”(需要安装)和“按需 / On Demand”(Web版),并提供折扣。

ExtremePlanner
一个基于web的工具,它的功能几乎与ProjectCards完全一样,但是它添加了在任务级别进行评估的功能,这一改进非常棒。由于是基于web的, 所以它的界面可能不够漂亮,但是由于基于浏览器,它获得了一些灵活性(例如,当项目成员想在线查看状态报告时,如果是使用ExtremePlanner,就无需安装任何东西。)

我还在进一步考察这个工具,但是它看起来相当不错。

要求Windows, Linux, or MacOSX平台 (with Java 1.4.2 or higher and Apache Tomcat 4.1 or higher)

Rally
商业软件用户使用率排名第二位!支持用户需求的筛选、扩展的筛选标准、改进版本剩余时间表、新的通知规则(notification rules),以及用于Eclipse和CruiseControl.NET的连接器。

有免费在线试用体验版本.

Mingle

Mingle在ThoughtWorks官方站点可以免费下载,且5个用户以下的可以永久免费使用。Mingle是用纯Ruby打造的且运行在JRuby上 的一个产品,由于ruby是一门脚本语言,所以其移植性就很好,用其编写的程序安装起来也甚是容易,在Windows、Mac和Unix多种主流平台上跑 都是没有问题的;但也正是由于采用ruby编写,Mingle对硬件的要求也甚高,在我这台512M内存的机器上跑是超慢的、让人闹心的,建议还是放到性 能好的、单独的服务器上,内存容量官方建议是2G。还遇到了好几次ie错误,只好放弃了。

Mingle后台存储采用数据库方式,目前仅支持mysql和Postgres两种数据库版本,这个比 较遗憾,我无法使用现成的Oracle数据库了。

简单用了一下,发现如下很好的Features:
- 支持建立"个性化"项目模板,便于复用;
- 附带项目wiki,便于"项目知识积累和管理";
- 丰富的card properties,使需求驱动的管理流程更加清晰;
- 支持card和源代码之间的link;.

TRICHORD
这个名为“TRICHORD”的敏捷项目管理工具,是基于精益思想的,对Scrum也适用。TRI指的是三种视角(时间、任务和团队),CHORD则是和谐的意思。

它作为全团队分享项目状态的一个工作空间来运作,里面提供三种层次的看板图——特性看板(发布—特性)、故事看板(故事—迭代)和任务看板(工作日—任务)。特性看板用停车场图来归纳,故事和任务看板用延烧图来归纳。

具体可以参考这篇文章
用“看板图”实现敏捷软件开发项目的可视化
阅读详细......

2008年9月18日

Scrum介绍---Scrum in 90 minutes

刚刚发现一个《Scrum in 5 min》,而这个43页的ppt介绍地更加具体和详细, 可以真正让你懂得什么是Scrum

---敏捷精灵
This is a 90 minute introduction to Scrum that is fully redistributable and reusable. Use it to introduce Scrum to your user group or organization. Provided as a PowerPoint file so you can customize it. For Mac users, the presentation is also available in Keynote, which is what it was created in. Please acknowledge the source but please use it widely. ……

Thank you to these translators to their generous contributions.

This is a completely updated, much fancier version of this popular file that has been available for download since 2002.

Scrum in 90 min


阅读详细......

Scrum是什么---Scrum in 5 min

Scrum是什么?什么是Scrum? 想简单了解一下吗?这是一个关于Scrum的快速介绍,只有16页,有一些很有趣的图,非常容易理解,是不错的扫盲书。

---敏捷精灵



scrum in 5 min

Softhouse - Scrum in Five Minutes



阅读详细......

2008年9月15日

[最佳实践]在Scrum敏捷软件开发模式中,我们是如何开Sprint 计划会议的

在Scrum敏捷开发框架下,最重要的一环就是 Sprint计划会议,这个会议开不好,整个Sprint会让Scrum Team痛苦不堪,也很难完成最初的Sprint目标。经过多次尝试后,我们终于找到了我们自己的模式。这些方法和原则对我们来讲是最好的,这基于我们自 己的知识,我们自己的项目情景,对于其他团队不一定试用。

---敏捷精灵
  • 跟任何其他会议一样,确定好会议日程

sprint计划会议一定是要基于Time-Boxed, 在规定的时间内,一定要结束,就像一个Sprint一样。

我们的日程一般是这样的

Agenda:

Part I : Product Backlog Review [Product Owner, Scrum Team]

Time: 2 Hours

1) Enrich Product Backlog (60 Minutes)

2) Re-Prioritize Product Backlog Items (10 Minutes)

Break(10 Minutes)

3) Set Sprint Goal (20 Minutes)

4) Select Product Backlogs to Sprint (20 Minutes)

Part II: Sprint Planning [Scrum Team]

Time : 3-4 Hours

1) Work Breakdown by Two groups. (60 Minutes)

Break(10 Minutes)

2) Agree with the definition of "DONE" for each task with estimation (20 Minutes)

3) Critical Path Analysis (20 Minutes)

4) Resource Plan (20 Minutes)

Break(10 Minutes)

5) Find owner for each task. (40 Minutes)

6) Risk/Dependecy Analysis (20 Minutes)

7) AOB
  • Sprint计划会议必须在一个完整天内开完

Sprint计划会议开始的那一天,也就是Sprint开始的一天。如果Sprint计划会议要跨越两天,可不是什么好玩的事情,你的Burndown Char就会象我们的这样很难看。因为我们是在前一天的下午开了4小时,第二天上午又开了3小时,对任务进行细化。。。




  • 采用Delphi方法进行任务工作量的估算




当进行任务细化的时候,每个人的估算是不一样的,当出现分歧的时候,采用Dephi估算方法,如果最高估算值跟最低估算值相差一半以上,而者就要进行沟通一下,看看为什么二者的理解相差这么多。沟通明白后,再重新估算

根据我们的历史统计,我们的投入率基本在75%左右,譬如按一个人上班8小时计算的话,他用在项目上时间大概在6小时左右。如果这个Sprint周期需要 15个工作日,这个员工可能要休假2天,参加培训1天,那他可以投入的预期工作时间 就是 6*(15-2-1)= 78小时。这样,在这个Sprint中,会有多少“人小时”就会事先计算出来。在Sprint计划会议中,当选择和细化Sprint任务的时候,有这个总 预期工作时间总作参考,就可以避免任务不足,或者承诺过多的问题。同时,也提醒每个人在领取任务的时候,不要过度承诺。
  • 为了提高任务细化的效率,将团队分成两个小组分别进行

最初,我都是打开投影仪,把ScrumWorks中的东西投到屏幕上去,大家一边说,我一边敲,我是挺忙活的,但是大家却不一定都能集中注意力。。。现在 回头看看,这种方法真是有点蠢!当team成员少的时候,在最初的几个Sprint,大家在兴趣还比较高的时候,这种方法还行。

当Team成员超过6个的时候,问题出现了,首先是当讨论某一个问题的时候,总会有人问,刚才你们说什么来着?很显然,他走神了。。。另外,人多地时候,对同一个任务的细化,即使采用Delphi方法,沟通成本也很高,很费时间。

把team分成两个小组,分别对任务进行细化。细化时,不再用投影仪,而是把Sprint Backlog中的内容按大块张贴在墙上,大家站在墙前,拿着纪事帖直接进行细化和估算。 当两个小组都进行完后,互相检查对方对任务的细化,解决争议,澄清模糊的地方。这样一来,就把大家的积极性调动起来,参与程度非常高,效率也高。
  • 对任务"DONE"的定义一定要做好,做细!

这个问题不言而喻,就不多说了。

  • 虽然我们采用了Scrum,但是传统的Risk/Dependency分析还是不要丢弃。

即使不再采用Gatt图,但在Sprint计划会议结束前,进行Risk/Dependency的分析,还是帮助我们发现了一些问题,通过重新调整任务的优先级,顺利保证了Sprint的成功。

  • 产品负责人(Product Owner)一定要参加。

实在不能参加的话,也要指定一个人授权代理。否则,就不要开Sprint 计划会议。

  • Sprint Goal一定要定义的简洁、突出,选择的Sprint Backlog Item一定要强内聚,松耦合

这样大家才能不受或者少受外界的干扰,目标明确。
  • 要给Sprint起一个好的名字

关于这个问题,就不多说了,详见 前文 “在Scrum开发模式下,为Sprint起名字的艺术


阅读详细......

2008年9月11日

国外敏捷软件开发相关网站资源大全


Agile Alliance
敏捷联盟
敏捷方法发源地,有许多最新的研究文章和发展动态。

Cetus-Links
历史悠久的对象技术资源网站。在“OO Project Management - OOA/D Methods”条目下提供了大量迭代与敏捷方法资源链接。

Brad Appleton
大量软件工程、迭代方法资源链接

C2 Wiki
XP、敏捷方法、设计模式等重要思想的发源地
Ward Cunningham

极限编程
Don Wells
不错的 XP 介绍

极限编程
Ron Jeffries
XP 大师介绍 XP

Agile Modeling
敏捷建模
Scott Ambler



美国南加州大学(USC)软件工程中心(CSE)
软件工程大师 Barry Boehm 多年来有关迭代方法(如螺旋模型)的研究成果。

Cutter Consortium
著名的软件工程咨询机构,有一个“敏捷项目管理”专题。

XP 敏捷大师 Martin Fowler

ASD(Adaptive Software Development)方法创始人 Jim Highsmith

Crystal 方法创始人 Alistair Cockburn

Scrum 方法创始人 Ken Schwaber

Scrum 方法创始人 Jeff Sutherland

Evo 创始人 Tom Gilb 大师
历史最悠久的迭代演进式方法之一

敏捷方法大师 Craig Larman
我向全国每一位软件项目经理推荐 Larman 的著作 Agile & Iterative Development: A Manager's Guide。

Object Mentor
敏捷大师 Robert C. Martin 的咨询公司

Nebulon
FDD 方法发明人 Jeff De Luca 的公司网站

DSDM 方法官方网站

Rational Unified Process
IBM RUP 产品,如今叫 RMC(Rational Method Composer)

Network for Agile Methodologies Experience (NAME)
一个介绍敏捷方法研究及相关资源的欧洲网站

Agile Metrics
Robin Gibson
ThoughtWorks 的咨询顾问 Robin Gibson 创建的个人网站,其中 Agile Tool 栏目下的 Estimates/Risk Spreadsheet 很不错。

XP San Diego Wiki
美国圣地亚哥地区的一个 XP 社团 Wiki,其中的 Agile Tools、Book Reviews 以及当地采用敏捷方法的企业名单值得一看。




阅读详细......

2008年9月10日

[scrum工具]用excel表格工具实现Scrum

这是最初用Scrum的时候,搜集到的一个工具,感觉还是挺不错的。虽然现在我们改用ScrumWorks, 但我还是喜欢用这个工具生成一个初始的Burndown Chart,再把他打印出来,贴到看板上,每日开Standup meeting的时候,手工更新一下,生成实际的Burndown chart.。

----敏捷精灵

需要的朋友点这里下载

这里还有一个实际模拟使用示例,不妨也看看。


以后再添加其它的工具

阅读详细......

Scrum敏捷项目管理的 ppt

很久以前总结的Scrum敏捷项目管理资料,给Team内部做Scrum Training用的,拿到这里,希望对大家又帮助,不过是E文的啊!

----敏捷精灵


想下载这个 Scrum敏捷项目管理.ppt 的可以直接点击这里

对于Scrum敏捷项目管理,每个人都会有自己不同的理解, 欢迎大家提出意见。

阅读详细......

2008年9月8日

在Scrum开发模式下,为Sprint起名字的艺术

在过去的几个月中,我们在每个Sprint 计划会议上,都会花上几分钟的时间,一起为当前的Sprint起名字,现在回顾一下,还是非常有意思的。

---敏捷精灵
看一下我们为项目A起的Sprint名字:
  • Sprint1---"The Big Con"
  • Sprint2---"Breakout"
  • Sprint3---"Hours to doom day"
  • Sprint4---"The Big End"
  • Sprint5---"The Dragon Warrior"
熟悉加里森敢死队的同学一定会很兴奋的,因为我们这里面用了《加里森敢死队》好几集的名字,之所以选择《加里森敢死队》,是因为我觉得这个团队里面有一个很好的team leader-----
上尉加里森,以及各有所长的成员:小偷、酋长、戏子、强盗。。。他们各自发挥自己所长,完成了很多难以想象的任务,这样的团队,对于软件开发团队来讲,太需要了!
  • “队长”(绰号:“头儿”)加里森中尉(Lt. Craig Garrison)由罗·哈珀(Ron Harper)饰演,西点军校毕业生,美国陆军情报部中尉,敢死队队长。童自荣配音。
  • “戏子”(Actor)由塞萨·多诺万(Cesare Danova)饰演,一名诈骗犯,精通多种语言。他的特长是化妆与扮演。乔榛配音。
  • “卡西诺”(Casino)由鲁迪·索拉里(Rudy Solari)饰演,一名惯盗,精通保险柜锁,对爆炸物也有一些了解。杨成纯配音。
  • “酋长”(Chief)由布兰登·波恩(Brendon Boone)饰演,一名杀人犯,他的特长是飞刀、机械修理和驾驶。施融配音。
  • “高尼夫”(一译“高涅夫”、“哥里弗”)(Goniff)由克里斯托弗·卡里(Christopher Cary)饰演,一名扒手神偷。尚华配音。
  • “准成员”,一名杀人犯,因贪财在第一集中就丧命了。
下面具体讲解一下每个名字对于我们自己的含义:


  • Sprint1---"兵不厌诈(the Big Con)"
因为大家第一次采用Scrum, 对这个Agile流程都很期待,同时呢,对于怎么做,如何用,还很模糊


  • Sprint2---"越狱记(Breakout
经过了第一个Sprint后,大家干劲十足,士气高涨,认为我们可以在第二个Sprint取得重大突破(breakout)


  • Sprint3---"虎口余生(Hours to doom day)"
这个Sprint里面有很多技术难点需要破解,如果解决不了,那么后面的工作就无法进行,将是非常关键的一次攻坚战。


  • Sprint4---"The Big End(大结局)"
这次计划会议,作为Scrum Master,因为有事没有参加,汗!大家认为我们的工作基本差不多可以做完了,起了个结局的名字。


  • Sprint5---"The Dragon Warrior(神龙大侠)"
事实证明,我们上一个Sprint4过于乐观了,我们还需要一个Sprint才能完成所有的工作,包括Bug Fixing,文档等等。。。。正好那期间播放《功夫熊猫》,在sprint4结束后,大家提议这次的Team Building就去看电影吧(嘿嘿,我们一直坚持每个Sprint结束,就搞一次Team Building,羡慕吧! )。。。。。电影归来,就把 "The Dragon Warrior(神龙大侠)"颁给了Sprint5


经过半年多的时间,项目A终于顺利结束了!


其实,在项目A开展的同时,我们随后又Kick Off了另外一个项目B,我还是Scrum Master,但成员有所变化。基于项目A中对Sprint起名字得良好实践,我们为项目B中的Sprint也起了名字,看到名字,大家自然就会联想到007、奥运等等。。。:)

  • Sprint1---"Golden Eye" 《黄金眼》
没啥特别意义,大家觉得项目A用了《加里森敢死队》,这个就用007系列好了
  • Sprint2---"Live and let Die" 《生死关头》
因为需求太不明确了,大家也不知道能不能做下去,表达了一种不甚乐观的情绪。。。。事实证明大家的感觉是对的,我在Sprint进行一般的时候,终结了这个Sprint,因为真的做不下去了:)

  • Sprint3---"You only live twice" 《择日而亡》
继续的不乐观,但我们最终还是Live下来,大家想表达的是:我们不能再Fail掉这个Sprint了!

  • Sprint4---"The Matrix Revolution" 〈矩阵革命〉
情形不错起来,大家心气又高了!决心做一次大的改变!

  • Sprint5---"One World One Dream"
奥运月,没什么可说的,与时俱进!

这个项目B还会持续到明年才能结束,我们会一直坚持下去这个实践的!

总结一下,在Scrum开发模式下,为Sprint起名字还是挺有艺术的,也是很有好处的
  1. 增加软件开发的乐趣(不是一直说,软件开发就是协作游戏嘛!)
  2. 提高大家的参与程度
  3. 记录Scrum Team当时的心情

阅读详细......