前段时间用ROR结合scrum做了个简单的项目。体会了一下ROR和scrum。体会的结果和感想下回分解,有机会写下敏捷开发整个过程和waterfall开发的比较,结合RUP,XP,Scrum的过程。
当时在做项目中一直在寻求scrum项目管理的工具,当时找了好多,有开源的有商业的,也有结合微软project的。当时发现了mingle,不过那个时候mingle的安装包还没出来。后来去敏捷联盟下了Excel的模板用来管理,感觉比较麻烦。
昨天bill提到了mingle,勾起了我想研究一下的兴趣,于是下载了玩了一下。
先介绍下Mingle(摘录javaeye):
ThoughtWorks的敏捷项目管理产品——Mingle已经开始公测。
Mingle是一个敏捷项目管理工具。它为整个团队在软件交付过程中提供“一站”式服务,并通过有10年敏捷项目开发经验的ThoughtWorks公司提供的开发框架共享所有的项目成果。你的团队可以使用Mingle进行项目管理,协作,文档共享,Bug跟踪,需求挖掘,以及程序代码和需求连接。
使用Mingle的十大理由:
一、 Mingle是敏捷团队真正想使用的项目管理工具。
使用Mingle,没有重复的数据录入和多余的操作。因为团队真正使用它,这样Mingle就在真实的时间里记录了项目的真正状态。
二、 它能实现你想要的工作方式。
Mingle简单易用,快速,简洁,灵活。尤其是它能毫不费力的将程序代码和需求连接起来。
三、 Mingle可以提高团队生产率,降低项目交付风险。
所有团队成员可以随时随地了解项目的进展情况。它可以展示激烈的软件开发“现场”,这样你可以对开发中出现的各种问题作出快速响应。
四、 它可以帮助团队提高学习速度,探索出适合自己的最佳开发模式。
Mingle自动收集Story(用户案例)、Bug和其它的项目产物,并动态的将它们组织到一起。通过这些数据你甚至会发现一些意想不到的项目趋势状况。
五、 它简单并且强大。
Mingle使用简单。我们只专注真正有价值的数据,并将它们在第一时间呈现出来。因此,Mingle为项目管理提供了强大智能支持,实现了简单和强大的完美结合。
六、 它是一个团队的知识共享平台。
在整个开发团队中,从项目经理、开发人员、业务分析师到测试人员都能从Mingle里面得到他们需要的信息,而不是各自各地的去电子表格和文档中查找。
七、 Mingle会智能的完成你想要的工作。
在你提交自己的程序代码的时候,输入这样的注释消息“修复Bug #541”。Mingle就会将提交的代码和这个Bug关联起来,并自动更新Bug的数据。在浏览这个Bug的时候,可以直接查看到修复这个Bug所改动的所有代码。在此过程中你不需要登陆到Mingle,也不需要做任何额外的工作。
八、 它是由ThoughtWorks制造。
ThoughtWorks在14年以来,一直为用户提供创新的软件解决方案。我们专注于IT方案的技术和交付过程的咨询工作,被行业称为技术潮流的领先者。我们带来了敏捷开发方法,同时Mingle将会支持和推动这一切工作。
九、 Mingle使用你自己的开发过程。
你可以在Mingle中使用自己已经习惯的术语,定制适合自己的各种开发流程。
十、 Mingle入门简单。
Mingle安装简单,并提供一步步的配置向导。安装成功之后,默认附有ThoughtWorks提供的项目模版。可以快速启动一个新的项目。你也可以轻松的将当前项目的数据从Excel导入到Mingle。
您可以在这里下载观看Mingle的视频演示:http://studios.thoughtworks.com/mingle-project-intelligence/videos。 可以通过下面的链接在线注册申请下载Mingle:http://studios.thoughtworks.com/mingle-project-intelligence/register-your-interest-in-mingle。更多详情请访问Mingle的官方网站:http://studios.thoughtworks.com/mingle-project-intelligence。
开始按照,访问官方网站,下载for windows的。也可以下载做好的虚拟机。安装好之后,运行,发现Minglewebserver service占cpu 100% (Mingle用用jruby写的,不知道用的是merb还是rails mvc,昨天听karron说这两个合并了,以后的rails3采用merb的架构,可能抛弃原来rails)。重启服务,快多了,进入配置页面,这个配置界面和wordpress配置很像,无非就是配置数据库(支持mysql和postgreSQL)什么的,smtp,输入license等。
注意,license的获取在你下载时输入的mail里找到。可以单独输入http://localhost:8080/license配置你的5人license,当你想扩大用户数量,请按照其说明进行配置。
在介绍Mingle之前,介绍几个术语:
l Release
n 项目的plan中规定几个release,每个release可能有几个迭代,一个迭代有几个sprint,根据具体情况而定
l Product backlog
l 产品的需求库,以story为单位,涉及到功能方面的,测试方面的,部署方面的等等。。。product backlog是可以不断增加的,满足快速响应客户需求变化。
l Sprint backlog
n 一个sprint(短跑)周期的需求库,以sprint为单位。一般一个sprint周期为一个月,前一个sprint位完成的可以放到下一个sprint
l Story
n Backlog中的最小单位,相当于WBS的每项任务list
l Task
n 一个story中可以有多个task,比如用户登录模块可以包含story-登录模块开发和story-单元测试
l Defect
n 每个sprint从需求分析阶段,设计,开发到部署中间产生的缺陷,可以记录并被追踪
安装好后,新建一个project。这里选取使用存在的模板和scrum模板,
创建好后,默认导入了一个scrum项目的模板和数据。打开首页,数据非常丰富。整个portal上有当前Release 的burndown图,包括分析,设计的,开发,test的等,有sprint,story,task,defect的矩阵图,完成图等一些统计图表,还有一个defect,story和task的依赖图,这个非常重要。识别和构建他们之间的依赖往往是项目成功的关键,可以根据任务的优先级和顺序,有效安排人员,提高生成效率。Mywork是当前分配给登录用户的任务项,
对比一下当时项目使用Excel的project Release plan和PB plan 图
首先打开project admin,这里是本项目的管理入口。包括一些项目的配置,模板的导入导出,变量设置等。
来一张导出项目模板图
下图是card properties的自定义,可以设置show/hide,lock,是否可以transtion等。新增一个card properties的时候设置其类型和应用场所(sprint,defect,story,task….)
这是card Type的管理,系统预定了Release,sprint,story,task,defect等。可以通过拖放设定顺序,如release 在sprint前面
下图是新增一个cardType界面,可以勾选你想要的card properties,拖放它的order,设置cardType的颜色。
这张是整个project的planning Tree,展示了release到sprint到story到task的关系,很库啊。可以拖放map
再看看整个项目的Feature Tree吧
这个也很酷。可以定制自己的favorite和上面一排的tab menu,定义自己的工作台portal。
这个更酷。定义一些transition,当一些条件满足,会自动触发转变成一些结果。比如定义一个Accepted的transition,当一个story的状态为Ready for signoff,会自动设置owner为peterwang,AcceptedOn=(today),status = Accepted
附上一个product backlog图
对比下当时项目使用的Excel 方式的 product backlog
打开每个story的详细信息,设定属于哪个sprint等
当前sprint backlog lane图,显示了当前sprint下的每种状态(准备开发,开发中,测试中,已接受等)下的story的信息 。
对比下当时项目使用的Excel方式的sprint backlog图
设定task归属到哪个story里面
对比下当时项目使用的Excel方式的task和story的关系图
这是系统audit,记录了每种card(release,sprint,story,task,defect等)的change history
This template represents a hybrid Agile approach to project tracking that would support release and iteration-based planning. The template includes some sample cards to illustrate the working of the charts and transitions. These stories can be deleted if necessary by a Project Administrator.