Having recently completed the Certified ScrumMaster qualification (by the excellent guys at www.axisagile.com.au) I was keen to start using Scrum at work. Having recently installed Openproject I thought I should try out the Scrum (backlogs) plugin.
It's a bit confusing to get up and running with, so I thought I should share some of my experiences.
The first thing to note is that it simply maps scrum onto the existing openproject framework. Product Backlog Items and Tasks map to existing work package types (which are user definable).
Backlogs themselves are achieved by using the project versioning facility, for each backlog you have in a project, you create a new version. This is done in the project settings -> versions area.
Once you have one or more project versions, you will see them pop up in the backlogs section.
The backlogs view allows you to quickly create, order and transfer tasks between your backlogs. You can see here that I have four backlogs for my projects: the traditional Product and Sprint Backlogs (that are used for the actual scrum workflow), and two additional ones to deal with ad-hoc sysadmin and urgent bugs that need to be addressed immediately.
This view allows us to easily enter user points for estimation during sprint planning.
I created an extra state called "Sprint Ready" which means that the user story has been fleshed out with a problem definition and acceptance criteria.
Selecting the task view allows us to easily add work tasks and assign them to users. Estimation for these tasks is done in hours.
I still haven't figured out how the burndown charts get created (it will probably become more obvious as I use the product more).
They cop out a bit and reuse the wiki functionality to provide additional documentation about the sprint (such as velocity, definition of done etc).
In future versions it would be nice to bake these into the plugin (and provide metrics and reports - to determine team velocity based on previous sprints).
The user story export facility requires the user to create a template in yaml (they should really have some defaults!).Modules -> Administration -> Export Card Configs.
I used the following YAML definition to create cards for my physical task board (2 pages per page A4 portrait):
group1:
has_border: false
height: 100
rows:
row1:
height: 50
priority: 1
columns:
id:
has_label: false
min_font_size: 10
max_font_size: 20
font_size: 20
font_style: bold
text_align: left
minimum_lines: 2
render_if_empty: false
width: 10%
due_date:
has_label: false
font_size: 15
font_style: italic
minimum_lines: 2
render_if_empty: false
width: 20%
subject:
has_label: false
font_size: 15
font_style: italic
minimum_lines: 2
render_if_empty: false
width: 70%
row2:
priority: 2
columns:
status:
has_label: true
indented: true
font_size: 15
font_style: normal
minimum_lines: 1
render_if_empty: true
group2:
has_border: true
rows:
row1:
height: 80
priority: 2
columns:
description:
has_label: true
indented: false
font_size: 15
font_style: normal
minimum_lines: 1
render_if_empty: true
row2:
priority: 2
columns:
status:
has_label: true
font_size: 15
font_style: normal
minimum_lines: 1
render_if_empty: true
row2:
priority: 2
columns:
custom_field_name:
has_label: true
font_size: 15
minimum_lines: 1
group3:
rows:
row1:
height: 100
priority: 2
columns:
children:
has_label: true
has_count: true
indented: true
font_size: 15
font_style: normal
minimum_lines: 1
render_if_empty: false
This is what the card export looks like (when using the YAML above) Another thing I noticed was a lack of aggregation for sub projects - meaning that User Stories and Tasks did not seem to be aggregating correctly within the parent. I fixed this by flattening the whole project into one (which for our size was practical, but I could imagine others being frustrated by this). This might just be a bug or lack of understanding on my behalf - please comment below if you have figured this out!
So in a nutshell, it provides a pretty lighweight framework for managing scrum - it gets the basics right, although it could do with a bit more polish (and end user documentation!).

