Continuous Integration (CI) with LEGO®
Demonstrate the problems that occur when we don’t integrate frequently enough.
Start with five teams, ideally split across tables so they can’t see what the other teams are doing.
If it's not possible to physically split the groups then try to group them so that the teams are staggered. For example, teams 1 and 3 at one table rather than 1 and 2.
We’re going to some exotic destination [it really doesn’t matter where] and when we’re there, we’re going to bring some gifts back and this group is going to help us do that.
- Team 1 will build the gifts to be brought back.
- Team 2 will build the container that the gifts will be put in.
- Team 3 will build the truck to hold the container.
- Team 4 will build the crane that will build the crane to lift the container from the truck to the ship.
- Team 5 will build the ship.
- Teams are given their instructions and told to start building. They have three minutes to build and at the end, we’ll integrate all the pieces.
- Teams will often ask if they are allowed to talk to the other teams and while we don’t say no, we want to make that unattractive. “I’m not sure if you have time for that”, “If you really want to” etc.
When the time is up, integrate all the pieces.
Do the gifts fit in the container? Does the container fit on the truck? Is the crane appropriately sized for the container? What about the ship? Have people stand up to move from one table to the next as we integrate the pieces. Have some fun with this - people should be laughing through the integration as they realize their mistakes.
Hold a quick retrospective. What went well? What needs improvement?
If they actually delivered and they don't call that out as something that went well, then point that out to them. Most groups won't deliver on the first round and some can't even deliver after three.
- Teams have mostly the same instructions. This time they have one minute to plan (not allowed to touch the LEGO® during this time) and then three minutes to build.
- This time if the teams want to talk to each other, we don't discourage it. We don't suggest it to them though.
- Hold a quick retrospective, same as before. Have they actually delivered anything yet? Remember that if gifts can't get as far as the ship, there is no value being delivered.
- Same rules as round two. If they had already had success in earlier rounds then this time they're just optimizing the process. If they haven't delivered gifts yet then this is their last chance.
- What did you notice? Any surprises?
- We've seen teams that deliver gifts on the first round and other groups that can't deliver even after three. Discuss how early they could deliver end to end.
- What did they do to improve?
- Typically, teams don't integrate until the end on round 1 and all work together, integrating continuously, by round 3. Did that happen here?
- Discuss checking into version control frequently.
- Discuss CI servers