Here at Apcurium we consider ourselves to be agile enthusiasts and we practice the Scrum project management technique. As a continuation of our commitment to internal training we decided to run a team building exercise that I dubbed: “The Lego Challenge”. The Challenge is designed to teach Scrum by using Lego Blocks rather than plain old C# to build a project.
They say that good Artists copy and great Artists steal, so I stole the idea from Alexey Krivisky (lego4scrum.com)
This exercise took our development team only 90 minutes to run to completion. I played the role of the Project Owner with a vision of a Lego City and the Apcurium development team acted as my Scrum team of Lego Developers (the Devs). As Lego experts they were tasked with making my vision a reality using the tools at their disposal.
I will be taking you though the game and how it played out for us. Here is The Lego Challenge, the presentation I used throughout this exercise. But before we begin here is your Scrum basics cheat sheet:
- Scrum is an agile methodology that can be applied to nearly any project; however, the Scrum methodology is most commonly used in software development
- Scrum is an iterative process, each development cycle is called a Sprint
- Sprints can be separated into 3 phases: Sprint Planning, Sprinting and Sprint Review
- Scrum uses the concept of User Stories to define the work to be done, user stories are objectives for a particular user.
- Each user story is given a weight in what is called Story Points.
For more specifics about the Scrum Methodology: Chck it out on Wikipedia
The setup (30mins)
To setup the project I decided to sketch out my Lego City on a pad of paper. The city consisted of a main square with three principal buildings: The Town Hall, Fire Station and Ice Cream Shop. In the middle of a city there was to be a large tree and and a car driving around and to the west of the main square was The Suburbs a collection of large and small houses.
I made post-its for each of the structures in My Town:
- 3 Small house
- 4 Large House
- Fire Station
- Town Hall
- Ice Cream Shop
- Main Street
- Road (Suburbia)
Each of these post-its represents a User Story, in Scrum a user story typically takes the following form “As a <role>, I would like to <goal>” in my case my post-it “Fire station” is to be read as “As a City planner, I want my city to contain a Fire Station”.
I also took 5 minutes to prepare the white-board in the conference room: Sprint Swim lanes, Burn-down chart and a story point estimation table. This will be shown a bit further.
Organizing Scrum Teams – 5 mins
To encourage self organization I had the dev team split themselves into teams of 4-6 people, in our case two teams of five. The teams had to setup their workspaces and come up with team names “Windows 10” and “M3” before we were ready to get started.
Scrum Project Chartering – 10 mins
This was the project Kick-off, I presented myself as the Product Owner and explained my vision of building a city. I informed the teams that they were been tasked with building My Town and that I have been assured that it would only take three sprints of 7 minutes to do it. It was important to stress that this was a collaboration not a competition, all teams are building a single product. The product is a City with certain features, the main tools to be used are LEGOs (but anything can be used), I am the decision maker of the product – it is my city, I am involved in the development process and I will answer any questions they may have.
Building the Project Backlog (Scrum 101) – 15 mins
This is where I presented the teams with the my ‘gorgeous’ sketch and explained the layout of my City and the various components. Each component was written on a post-it and the main buildings had a little diagram on them. I was intentionally limiting the presentation to an overview, it will be up to the teams to “ask the right questions” during the estimation.
Estimating – 20 min
Storypoints represent a relative weight of a user story (post-it). For example the Fire Station will carry a higher level of complexity than say a Small house. The goal of the estimation exercise is to assign values to each of our stories. We used the “swimlane sizing” technique of estimation:
I had each team estimate the user stories in alternation. Each story was presented and then put into a the column with an appropriate value in story points. It was important that the dev’s ask the right questions, because I had specific requirements in mind for each of the building types. For example the Devs uncovered the following:
- Fire Station : Needs to be red and black, wth a big door and two towers.
- Town Hall: There must be a big dome and first floor is 2x the floor hight of a house.
- Ice Cream Shop: I made up all the requirements on the fly ?
- Inter-story requirements: Town Hall is bigger than the Fire Station which is bigger than a large house with is bigger than a small house.
In this senario I made it clear to the teams that effectively understanding the requirements of a User Story was their responsibility. A very common problem with project estimation is that the Client or in our case the Project Owner (me) doesn’t communicate or hasn’t yet decided what the requirements are for the project. So imposing this responsibility on the Dev team is very important, it helps them develop the reflex to challenge the stories before committing to them in a sprint.
Sprint 1: Planning – 3min
On the white board I had drawn a grid 2 teams and 3 sprints, each team was given 3 minutes to plan their sprint by selecting stories and placing them into their box. This is their commitment for the sprint, as Product Owner I expected my Lego Consultants to complete each story they had selected for the sprint.
Team “Windows 10” committed to 10 story points: The Town Hall and a Small House.
Team “M3” committed to 8 story points: The Fire Station and a Large House.
Sprint 1: Sprinting – 7 mins
Each team had their work cut out for them and on top of it there was a giant stopwatch on the projector counting down from 7 minutes. To increase the agitation level I would callout the time when there was only 1 minute left.
Sprint 1: Reviewing “Where is my city!?” – 5min
The Devs had worked really hard and it was time for a Demo. I had also noted to to the groups that it seems they weren’t communicating with each other, a common problem with sharing work between teams.
We started with “M3” they had made excellent progress on the Fire Station, except it wasn’t symmetrical and … there was no door, just a big opening! They had made a Large house, except it was as big as the Fire Station and it didn’t have a roof. Team “Windows 10” had an almost perfect Town Hall, except it was smaller than the M3 Fire Station. Also I had a note in my sketch that Luke needed to be on the roof. As for the Large House they had committed to building, they had build it without any doors!
New Requirements uncovered
- I like Symmetry!
- I expect all buildings to have doors.
- Colours have to be consistent, no building should have patches of different colour bricks
- Luke (Skywalker) needs to be on the roof of the Town Hall.
Unfinished work was put back into the backlog, and the Burn-down chart was updated for sprint 1.
After sprint 1 the Dev’s realized that I had hidden requirements up my sleeves so they started double checking with me before starting construction on new buildings and trying to foresee the next “gotcha” I was so proud! Windows 10 had completed the Town Hall, a Small house and a Suburban Road. M3 finished their Fire Station and started the Big Tree – wasn’t green enough ;-). They had converted their Large House into the Ice Cream Shop except I wanted a counter and a second floor.
- No two houses should be identical
- Ice Cream Shop needs a counter to order from.
- Tree needs more Green
During the planning phase some of the Devs expressed a concern that there was too much work left over. I had ‘begrudgingly’ removed a small house and a large house from the scope of the project. I also started touring around and showing them what their buildings were missing before the end of the sprint.
Windows 10 failed to produce the final Large House and M3 had completed the exact number of story points they had planned. Overall I was satisfied with my final City and my Team!
- What did you observe?
- How did it feel being a scrum team?
- How did the short iterations go?
- How accurate were the estimations?
- What does a product owner do?
- What would you do if the PO (product owner) wasn’t present during sprints.