Mark Suurmond has created a simulation, available on GitHub, that allows programmers and students to experience the difference between the waterfall design process and the agile process.
When the simulation first displays it is set to 40 iterations. The player has to guess where on the board the ships are located, but doesn’t find out until the last attempt is finished.
There is some success, but also a lot of wasted effort, much like we often experience when developing a project using the waterfall method.
On the second trial, the programmer gets feedback after every attempt. This would be like having the client at your side each time you wrote a bit of code. The finished product is much more “on target”, much like we experience when using agile methods.
The third and fourth trial is run, getting feedback every 5 iterations, and then every 10. Running this simulation the programmer can gain an appreciation of constant feedback vs. getting regular feedback after multiple iterations. It isn’t always possible to meet after every programming decision is made.
Here is a guide so you can implement this with your own students or programming team: lab: Battleship Waterfall vs. Agile
Photo courtesy of Wikipedia. US Navy 100530-N-2798F-011 Aviation Ordnanceman Airman Justin Stout and Aviation Electronics Technician Airman Anthony Bertolino spend their break playing the game Battleship aboard the Nimitz-class aircraft carrier USS Harry S.jpg