Sunday, 13 September 2015

Managing a training programme using Scrum

TL;DR - use an agile methodology to provide structure, rapid feedback, visibility, focus and motivation to an on-the-job training programme.


Whilst preparing an internal software development training programme I decided to use Scrum to manage the process. My knowledge and experience of using Scrum comes from the world of software development, after all, I am a software developer! Scrum is often perceived as a software development methodology, but it is infact just a framework for managing a process. Given this, I thought it was well suited to providing some structure to a training programme.


Here is how I handle some of the key parts of process: -


Stories


Each training subject is captured as one or more stories. If a subject area is large it is split into many stories and grouped using the the concept of an “epic”. A story contains a description, acceptance criteria and tasks. The acceptance criteria is used to define the expected learning outcomes and the tasks are specified to give greater detail of what should be done to achieve those learning outcomes.


Backlogs


I maintain two backlogs, the overall training backlog and the sprint backlog. I write new stories when I can, add them to the training backlog and keep it prioritised. This gives me visibility over how much material is ready and gives the trainees visibility over what subject areas are coming up in the near future. During planning, stories are placed into the sprint backlog in the usual fashion.


Sprint planning


We work in one week sprints and therefore have a planning meeting, involving me and all trainees, before each sprint. During planning we try (time permitting) to go through all of the stories, in priority order, reading the description, acceptance criteria, tasks and discussing the story to gauge the complexity. Following the discussion we would size the story relative to others using the fibonacci sequence numbers.


Once all stories have been discussed and sized we start moving them into a sprint backlog. For the first couple of sprints it was hard to predict how many points to add to the sprint but this becomes easier.


Finally, I found that setting a goal for the sprint helped motivation, such as saying the main learning focus this sprint is hash maps.


Daily scrum


The daily scrum was carried out to do the usual “status update” type meeting, with each member of the team saying what they did yesterday, what they are doing today and raising any issues they may have. I found it helped to set a starting point for each day with renewed motivation for the training ahead. It also gives the trainees visibility over what I am doing on a daily basis.


Saying that, this is probably the part of the process that works least well, because the trainees work together on each story and I am involved answering question on a daily basis. I could see this becoming more useful if the number of trainees was larger and some worked at different speeds.


Sprint review


The sprint review is done in the form of a presentation from the trainees to myself and any other company employees who wish to attend. Preparing the presentation makes the trainees go over everything they learned in the sprint to ensure they are able to explain it adequately, resulting in a short revision period helping to cement the concepts.

This also allows the trainees to practice preparing and giving presentations to a group, outside of any real business situations. This helps to build their skills and confidence for when they are required to present to in a real scenario.


For me, the sprint review is an opportunity to assess how the trainees are getting on with the learning and think about any additional stories that might be required in the training backlog.


Sprint retrospective


Retrospectives are often overlooked but I believe they are one of the most important ceremonies in the scrum process. During our retrospectives we do activities such as WWW, 4L’s or the sailboat analogy. Whichever activity we do, the aim is to discover how the sprint went and raise any action points for making changes to improve the process. Talking about things that went well is just as important as talking about things that didn’t and I like to hear what the trainees enjoyed during the sprint.


Tools


There are many tools out there to aid the scrum process. For simplicity I decided to use Trello, with the Scrum for Trello chrome extension installed, to maintain the stories, backlogs and scrum board. Also for immediate visibility I use post-it notes with story headline and a basic scrum board on a whiteboard in the office to provide an indication of progress.


In conclusion using this process for managing the training programme works well. It improves focus, motivation and visibility, as well as putting a structure in place for reviewing learning outcomes and getting feedback during the training. 

Finally, in my case, it was a chance to introduce the the scrum process without doing it as a formal subject in training. This prepares the trainees for using the process used in real projects.


Have you ever used scrum for anything other than software development?


What other processes could be managed well using Scrum?