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---1112Having 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.1314It's a bit confusing to get up and running with, so I thought I should share some of my experiences.1516The 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).1718Backlogs 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.1920Once you have one or more project versions, you will see them pop up in the backlogs section.2122[](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzVMdvRIC2i1slvQb1zrR8S0eBithR3hw16q79Hu6nZX8th75o4hxORzeRH8dG1L-vOhYke2kclbeqWjMRB1deXZ2zg3Z34kSA33M3bANM1JnplnEpxvMH-HDepzYzUPtYygekQI6aDPc/s1600/1_backlogs.png) Backlogs View2324The 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.2526This view allows us to easily enter user points for estimation during sprint planning.2728I created an extra state called "Sprint Ready" which means that the user story has been fleshed out with a problem definition and acceptance criteria.2930[](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4em6jZ5wprF_t41EavwPNyYhrk2_c8gZpa4y_LLK81FGXfEhm24EIX7rxmGcWWtOHF9y0xexQ639nw0_wS5LCCs96CF8naT5w0gkgA3DzHxgA7hDPcoGqCpqW_IOMfK3ufbVrF8YA00g/s1600/2_tasks.png) Task Board3132Selecting the task view allows us to easily add work tasks and assign them to users. Estimation for these tasks is done in hours.3334I still haven't figured out how the burndown charts get created (it will probably become more obvious as I use the product more).3536They cop out a bit and reuse the wiki functionality to provide additional documentation about the sprint (such as velocity, definition of done etc).3738In 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).3940The user story export facility requires the user to create a template in yaml (they should really have some defaults!).Modules -> Administration -> Export Card Configs.4142I used the following YAML definition to create cards for my physical task board (2 pages per page A4 portrait):4344```45group1:46 has_border: false47 height: 1004849 rows:50 row1:51 height: 5052 priority: 15354 columns:55 id:56 has_label: false57 min_font_size: 1058 max_font_size: 2059 font_size: 2060 font_style: bold61 text_align: left62 minimum_lines: 263 render_if_empty: false64 width: 10%65 due_date:66 has_label: false67 font_size: 1568 font_style: italic69 minimum_lines: 270 render_if_empty: false71 width: 20%7273 subject:74 has_label: false75 font_size: 1576 font_style: italic77 minimum_lines: 278 render_if_empty: false79 width: 70%8081 row2:82 priority: 28384 columns:85 status:86 has_label: true87 indented: true88 font_size: 1589 font_style: normal90 minimum_lines: 191 render_if_empty: true9293group2:94 has_border: true9596 rows:97 row1:98 height: 8099 priority: 2100101 columns:102 description:103 has_label: true104 indented: false105 font_size: 15106 font_style: normal107 minimum_lines: 1108 render_if_empty: true109110 row2:111 priority: 2112113 columns:114 status:115 has_label: true116 font_size: 15117 font_style: normal118 minimum_lines: 1119 render_if_empty: true120121 row2:122 priority: 2123124 columns:125 custom_field_name:126 has_label: true127 font_size: 15128 minimum_lines: 1129130group3:131 rows:132 row1:133 height: 100134 priority: 2135136 columns:137 children:138 has_label: true139 has_count: true140 indented: true141 font_size: 15142 font_style: normal143 minimum_lines: 1144 render_if_empty: false145```146147```148149```150151[](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!152153[](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!).154155156