Using Lego to Teach Technical Practices
Explaining Craftsmanship techniques is hard, especially to Senior Management and Executives. Since understanding is usually key to a mindset shift and technical practices are the way to develop good quality software, it's very important to explain them. Mike Bowler facilitated a workshop on how to use Lego for technical practices during the 7th Agile Games Conference.
The Agile Games Conference 2016 took place in Cambridge, MA, April 28-30. InfoQ FR is covering the event with Q&A and articles. This news item outlines the main practices Mike facilitated. He was kind enough to answer some question about the use of Lego to teach technical practices, what kind of feedback you could hope to see from doing such workshops, how it helps teams and the whole organisation, and perspectives on other tools and games he finds interesting.
The workshop Mike Bowler did is the same one used by Bryan Beecham. They usually present it together. The workshop is quite easy to lead if you understand the practices, it's cheap (you only need some Lego), and very effective: you can go through the main practices in less than 1 hour. The main practices explained are :
- Pair Programming
- Technical debt
- Continuous Integration
The workshop is not a Lego Serious Play (R) one[LSP]. You can find the instructions on Mike's website (except for TDD which should be coming soon).
The workshop runs like this:
- A little bit of warm up building a person and a house: it's a mandatory part of LSP and helps create a feeling of safety and engagement.
- The first question is about the cost of the house or the person: how many bricks do you have? How many do you really need? This part is really all about Lean Thinking and "just enough".
- Then Mike introduces TDD + Pair Programming: pairing, one has to write test, the other to build, make the test pass.
- The next phase consists of adding refactoring: the pair throw away the last tests, and do them again, refactoring has they go.
- The part about Technical debt was probably the funniest: Mike tosses tests one after the other, and you have to make the tests pass, but without removing any of the bricks you have used so far. The result is... well not good. To understand the difference, Mike does it a second time, removing the constraint. The photograph below shows the difference between the two rounds.
- The Continuous Integration part is possible only with more than three teams (and a good stack of Lego): each team has to build something that has to encapsulate the work of the previous team. Inevitably the first product is inadequate, and it's better to do it at least twice.
InfoQ : Mike, thank you for this workshop. Why are you using Lego to explain technical practices?
The original intent was to teach technical concepts to non-technical people and that means that we couldn’t jump straight into code. There needed to be some non-technical abstraction that we could use to illustrate the concepts. Bryan Beecham had built the TDD exercise using LEGO and it was so successful with everyone that we continued using that format for all the other exercises. LEGO brings out everyones playful side and that makes them more willing to learn and try.
InfoQ : What is your target audience for such a workshop? Can anyone attend it?
We use the exercises in several ways. When talking to managers, we’ll just focus on the LEGO and the concepts. When teaching developers, we’ll mix the LEGO exercises in with actual coding exercises. We’ll first introduce the concept in LEGO and then dive into code to reinforce the lesson.
InfoQ : Seeing the build after the first refactoring activity, I was a little bit shocked. What kind of feedback do you hear during and at the end of such a workshop?
The first thing we hear is how much fun the attendees had. Then we’ll hear about the concepts and the lessons that they picked up along the way. Almost everyone has at least one takeaway - one thing that they learned that they can apply on their real work.
InfoQ : This workshop is quite easy to use. How is this workshop helping teams or organizations in the long term?
The point of these is to help people understand the concepts. In order to help the team over the long term, they need to apply the concepts in their own work.
We do encourage people to take pictures of the things they built, partially because it adds to the fun to show your friends and partially because now you have a reminder of the lessons. Something to reinforce the concept.
InfoQ : Some organizations are not ready to play "games". On those occasions, would you share some ideas about how to convince them?
I don’t talk about playing games. I talk about teaching concepts and the fact that I do it with games is largely irrelevant. Even in the most serious organizations, nobody has ever told me to put the LEGO bricks away once I’ve brought them out.