Redmine关于敏捷Scrum的插件
这几年来,敏捷开发风靡全球,尤其是Scrum这股风。那么Redmine作为优秀的项目管理工具,是否支持Scrum流程呢?Redmine Sprints 正是在这种呼吁中应运而生。¶
借助于Redmine Sprints 插件,可以有效地将Scrum流程包含进Redmine的管理流程:
- 产品负责人(Product Owner)可以登录Redmine,在Backlog页面向产品Backlog中添加用户故事(User Story),并根据功能的重要程度,设置适当的优先级。
- 在Scrum计划会议上,登录Redmine,进入Backlog页面,根据User Story的优先级来确定即将开始的Sprint要完成哪些User Story,并将这些User Story挪到这个Sprint的Backlog中。
- Scrum团队成员可以登录Redmine,进入任务板页面,根据具体情况,将Sprint中的User Story划分成一个个小的功能模块(即任务),各个成员根据自己的能力来领取这些小任务。
- 接下来Scrum团队的成员就可以集中精力完成自己领取的任务了。并且应该每天都要在任务面板里更新自己的任务状态,同时燃烧曲线(BurnDown)会自动根据任务的完成情况发生变化,从而真实反映项目的进展情况。
具体细节请参考 http://www.ossxp.com/doc/redmine-plugins/redmine-sprints/
Comments
Added by Anonymous about 1 year ago
redmine-sprints这个插件哪里可以下载?
你可以到这里下载:https://github.com/software-project/scrum-pm
你好,我们现在在用redmine进行敏捷开发的项目管理,从你提供的链接下载的插件,安装后有一些问题想请教一下:
sprints插件对应的项目模块按钮是“任务”和“仪表版”,而不是“Backlog”和“任务板”;
新建用户故事的表单上在“预期时间”那里是“评估”,下拉框的选项还有?,跟用户手册上的不一样;
还有新建任务对话框加载很久都显示不了,等等。
请问一下这些是什么原因,谢谢!
To xiao xue:
关于你的问题,我已经邮件回复你了。
你好,我安装了这个插件发现在新建任务的时候会出现
Internal error
An error occurred on the page you were trying to access.
If you continue to experience problems please contact your redMine administrator for assistance.
Back
创建不了任务
请问一下这些是什么原因,谢谢!
你好,我安装了这个插件发现在新建任务的时候会出现
Internal error
An error occurred on the page you were trying to access.
If you continue to experience problems please contact your redMine administrator for assistance.
Back
创建不了任务
请问一下这些是什么原因,谢谢!
To liwei:
不好意思,最近比较忙,没来的及处理。
关于你遇到的问题,仅仅凭上述内容不足以判断出错原因。你最好能把后台日志发给我,这样我才能分析出错的原因。
请问上面朋友问的*Internal error*的问题解决了没有?我也遇到了同样的问题!
日志中显示的错误信息如下:
Processing IssuesController#create (for 192.168.1.139 at 2011-07-08 16:05:26) [POST]
Parameters: {"commit"=>"创建", "project_id"=>"movirit-design", "action"=>"create", "authenticity_token"=>"V/xFimAQFy7zZOJmBakNWCb3YiYbcwKqRYpqCgqk+iY=", "issue"=>{"start_date"=>"2011-07-08", "user_story_id"=>"1", "estimated_hours"=>"", "priority_id"=>"4", "parent_issue_id"=>"", "fixed_version_id"=>"2", "done_ratio"=>"0", "assigned_to_id"=>"", "subject"=>"sfsdf", "category_id"=>"1", "tracker_id"=>"1", "due_date"=>"", "status_id"=>"1", "description"=>"sfsdfsf"}, "controller"=>"issues", "attachments"=>{"1"=>{"description"=>""}}}
TypeError (can't convert nil into String):
lib/redmine/hook.rb:63:in `send'
lib/redmine/hook.rb:63:in `call_hook'
lib/redmine/hook.rb:63:in `each'
lib/redmine/hook.rb:63:in `call_hook'
lib/redmine/hook.rb:60:in `tap'
lib/redmine/hook.rb:60:in `call_hook'
lib/redmine/hook.rb:141:in `call_hook'
app/controllers/issues_controller.rb:134:in `create'
Rendering H:/programs/redmine/redmine-1.1.1/public/500.html (500 Internal Server Error)
在scrum-pm插件目录下,lib/hooks.rb文件中,
原来的代码如下:
def controller_issues_new_before_save(context = {})
context[:issue].user_story_id = context[:params][:issue][:user_story_id]
if context[:issue].user_story_id && context[:issue].fixed_version_id
context[:issue].redirect_to = url_for(:controller => :sprints, :action => "show", :id => context[:issue].fixed_version_id, :project_id => context[:issue].project.identifier)+"/"+context[:issue].id
end
end
其中的context[:issue].id为nil值,在处理时会出现问题,现在修改为:
context[:issue].redirect_to = url_for(:controller => :sprints, :action => "show", :id => context[:issue].fixed_version_id, :project_id => context[:issue].project.identifier)-+"/"+context[:issue].id-
这样可以解决我上面发现的问题。
编辑框中的删除线没有起作用,其它就是把最后的context[:issue].id删除,因为是新建的issue,所以还没有id ,如下:
context[:issue].redirect_to = url_for(:controller => :sprints, :action => "show", :id => context[:issue].fixed_version_id, :project_id => context[:issue].project.identifier)
又发现一个问题,这样修改后,在issue表中的redirect_to字段会设置一个值,这样在显示issue/id这个页面时,会自动跳转到sprint的仪表板页面,从而不能修改issue的信息,看来我上面那样修改还是有问题呀!
又发现一个问题,这样修改后,在issue表中的redirect_to字段会设置一个值,这样在显示issue/id这个页面时,会自动跳转到sprint的仪表板页面,从而不能修改issue的信息,看来我上面那样修改还是有问题呀!
Zhuo Jack同学所说的这个问题,解决方法如下:
编辑vendor/plugins/redmine_sprints/app/views/issue_sprints/_redirect_after_create.rhtml,内容为:
<script type="text/javascript"> Event.observe(window, 'load', function(){ if(<%= issue.redirect_to.nil? ? "false" :"true" %>){ window.location= '<%= issue.redirect_to %>'; <% issue.update_attribute(:redirect_to, nil) unless issue.redirect_to.nil? -%> } }); </script>就是在其中加入一行:
将redirect_to设置为nil,这样重定向就只会在最初创建任务时执行一次。以后重新打开这个任务,都不会发生重定向了。
已经测试过这个做法是可行的。