This exercise was developed as part of an Agile technical skills training class that we teach. For more details on this or other courses, contact us now. You are welcome to use these exercises yourself - more details here.

Simplicity in LEGO®

Intent

Demonstrate the value of keeping the design simple and the code small. We'll generally do this exercise before starting into any of the others as it's really foundational for all Agile technical practices.

1) Free form build

Each participant is given a pile of LEGO® bricks. Do not include mini-figures or anything that would dictate scale such as windows or doors. We don't want to bias the participants into creating anything in particular.

Instructions

Participants are asked to build a person and a house and are given three minutes. There are explicitly no other requirements at this stage and if anyone asks, it's just a person and a house.

Discussion

  • Did anyone build just the house or just the person? The requirement was for both therefore, there is no value delivered for only one.
  • Did anyone use all the bricks that were provided? Would you have done that if we'd given you more time?
  • If we had told you that every dot you used in a brick cost $1000, would that have changed your design? How would it be different?

2) Understand simplicity

Instructions

Each person should clear a space in front of them. Push all the LEGO® to the side.

Discussion

We are going to build something new. Declare that this empty space in front of them is the "perfect program" and ask the participants why that is. Valid answers could be:

  • It has no bugs
  • It satisfies all the requirements.
    Hint: there are no requirements at this point
  • It runs infinitely fast
  • It costs nothing
  • It was implemented in zero time
  • It's really easy to build on top of
  • It's really easy to understand and maintain

When we create a new project, we start with the perfect program and everytime we add something to it, we take it away from that ideal. We want to keep the software as simple and small as we possibly can to keep it closer to the ideal.

3) Free form build round two

Start from the same set of LEGO® bricks that they had in the first round.

Instructions

Once again participants are asked to build a person and a house although this time they're only given one minute. Remind them to keep the design simple and that all requirements must be satisfied but don't offer other clues.

Discussion

  • Did anyone build just the house or just the person?
  • Did anyone build something bigger or more complicated than what they did on the first round?
    Yes, this really happens even after the talk about simplicity
  • Who built something simpler than their first attempt?
  • Could the design be even simpler than what you have now?
    Almost always, the answer is yes
  • Could the person have been a 1x1 brick?
    Sometimes people will argue that no, it can't be because there are no arms or some other criteria. Remind them that there was no requirement for arms.
  • Could the house also have been a 1x1 brick.
    For those who argue, remind them again that while they might have thought it was important, it wasn't important for the business. We didn't say it was a house for a human - maybe it was a doll house.