This document describes a Jenga game activity used to demonstrate the benefits of test-driven development. The activity involves building a 3-story Jenga tower with blocks, some of which contain defects. Participants undergo three iterations with different testing procedures: in the first, defects are found after building; in the second, defects are found every 10 blocks; in the third, defects are known for each individual block. The goal is to understand how rework effort decreases when testing occurs earlier in the development cycle rather than later.
2. What is this all about
A game to help us understand the benefits of reducing test cycles
Teaches us good design
Helps us understand continuous integration
3. The Rules
Each team will be given 30 Jenga blocks, numbered 1 to 30
Each team is required to build a 3 Storied(3 floor) Structure using ALL the
blocks given to them
Some of the blocks given to the teams will have defects
The team is unaware of these defective blocks
At the end of the iteration, teams are expected to have the ready structure
4. Iteration 1
5 Minutes
Once the team has built the structure, the team is informed about the
defective block
Teams need to remove the defective blocks(bugs) from the tower
5. Iteration 2
5 Minutes
After every 10 blocks you place, you are told about one defective block
At the end of 5 minutes, teams need to have the ready structure
6. Iteration 3
5 minutes
With every block the team proposes to place into the structure, the team is
informed weather or not the blocks is defective
At the end of 5 minutes, teams need to have the structure ready
7. Learning
Rework effort when tests are known late in the cycle
Uncertainty increases with every piece of untested code goes into the
repository
Right design
The one that exposes bugs(if any)
The one that does not make the structure very brittle
Blocks are not tightly coupled with each other or the structure
Test First RED-GREEN-REFACTOR