Openproject - Scrum plugin Source

1---
2title: 'Openproject - Scrum plugin'
3date: '2014-09-03'
4published_at: '2014-09-03T17:53:00.002+10:00'
5tags: ['agile', 'backlogs', 'management', 'open source', 'openproject', 'scrum']
6author: 'Gavin Jackson'
7excerpt: '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 thou...'
8updated_at: '2014-09-03T19:45:09.685+10:00'
9legacy_url: 'http://www.gavinj.net/2014/09/openproject-scrum-plugin.html'
10---
11
12Having recently completed the Certified ScrumMaster qualification (by the excellent guys at [www.axisagile.com.au](http://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.
13
14It's a bit confusing to get up and running with, so I thought I should share some of my experiences.
15
16The 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).
17
18Backlogs 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.
19
20Once you have one or more project versions, you will see them pop up in the backlogs section.
21
22[![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzVMdvRIC2i1slvQb1zrR8S0eBithR3hw16q79Hu6nZX8th75o4hxORzeRH8dG1L-vOhYke2kclbeqWjMRB1deXZ2zg3Z34kSA33M3bANM1JnplnEpxvMH-HDepzYzUPtYygekQI6aDPc/s1600/1_backlogs.png)](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzVMdvRIC2i1slvQb1zrR8S0eBithR3hw16q79Hu6nZX8th75o4hxORzeRH8dG1L-vOhYke2kclbeqWjMRB1deXZ2zg3Z34kSA33M3bANM1JnplnEpxvMH-HDepzYzUPtYygekQI6aDPc/s1600/1_backlogs.png) Backlogs View
23
24The 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.
25
26This view allows us to easily enter user points for estimation during sprint planning.
27
28I created an extra state called "Sprint Ready" which means that the user story has been fleshed out with a problem definition and acceptance criteria.
29
30[![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4em6jZ5wprF_t41EavwPNyYhrk2_c8gZpa4y_LLK81FGXfEhm24EIX7rxmGcWWtOHF9y0xexQ639nw0_wS5LCCs96CF8naT5w0gkgA3DzHxgA7hDPcoGqCpqW_IOMfK3ufbVrF8YA00g/s1600/2_tasks.png)](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4em6jZ5wprF_t41EavwPNyYhrk2_c8gZpa4y_LLK81FGXfEhm24EIX7rxmGcWWtOHF9y0xexQ639nw0_wS5LCCs96CF8naT5w0gkgA3DzHxgA7hDPcoGqCpqW_IOMfK3ufbVrF8YA00g/s1600/2_tasks.png) Task Board
31
32Selecting the task view allows us to easily add work tasks and assign them to users. Estimation for these tasks is done in hours.
33
34I still haven't figured out how the burndown charts get created (it will probably become more obvious as I use the product more).
35
36They cop out a bit and reuse the wiki functionality to provide additional documentation about the sprint (such as velocity, definition of done etc).
37
38In 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).
39
40The user story export facility requires the user to create a template in yaml (they should really have some defaults!).Modules -> Administration -> Export Card Configs.
41
42I used the following YAML definition to create cards for my physical task board (2 pages per page A4 portrait):
43
44```
45group1:
46  has_border: false
47  height: 100
48
49  rows:
50    row1:
51      height: 50
52      priority: 1
53
54      columns:
55        id:
56          has_label: false
57          min_font_size: 10
58          max_font_size: 20
59          font_size: 20
60          font_style: bold
61          text_align: left
62          minimum_lines: 2
63          render_if_empty: false
64          width: 10%
65        due_date:
66          has_label: false
67          font_size: 15
68          font_style: italic
69          minimum_lines: 2
70          render_if_empty: false
71          width: 20%
72
73        subject:
74          has_label: false
75          font_size: 15
76          font_style: italic
77          minimum_lines: 2
78          render_if_empty: false
79          width: 70%
80
81    row2:
82      priority: 2
83
84      columns:
85        status:
86          has_label: true
87          indented: true
88          font_size: 15
89          font_style: normal
90          minimum_lines: 1
91          render_if_empty: true
92
93group2:
94  has_border: true
95
96  rows:
97    row1:
98      height: 80
99      priority: 2
100
101      columns:
102        description:
103          has_label: true
104          indented: false
105          font_size: 15
106          font_style: normal
107          minimum_lines: 1
108          render_if_empty: true
109
110    row2:
111      priority: 2
112
113      columns:
114        status:
115          has_label: true
116          font_size: 15
117          font_style: normal
118          minimum_lines: 1
119          render_if_empty: true
120
121    row2:
122      priority: 2
123
124      columns:
125        custom_field_name:
126          has_label: true
127          font_size: 15
128          minimum_lines: 1
129
130group3:
131  rows:
132    row1:
133      height: 100
134      priority: 2
135
136      columns:
137        children:
138          has_label: true
139          has_count: true
140          indented: true
141          font_size: 15
142          font_style: normal
143          minimum_lines: 1
144          render_if_empty: false
145```
146
147```
148
149```
150
151[![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjucyPzTJtKj6vIj3AaOFK0Jjz5_cTKnrK2YNZPqlEMyBAd4PyUXGx6aruyZvh3HZ0TQHS3NXY2jW3yI2MaVM2i8Oo0RU4bbPOsttaJMhEIuji4mKuSUx4-chqMBomystCdFlVmsFdT6xY/s1600/3_export.png)](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjucyPzTJtKj6vIj3AaOFK0Jjz5_cTKnrK2YNZPqlEMyBAd4PyUXGx6aruyZvh3HZ0TQHS3NXY2jW3yI2MaVM2i8Oo0RU4bbPOsttaJMhEIuji4mKuSUx4-chqMBomystCdFlVmsFdT6xY/s1600/3_export.png) 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!
152
153[](https://www.blogger.com/blogger.g?blogID=604531558151037478)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!).
154
155
156