Simulating a Waterfall Project In The Classroom

Creative Commons License Craig Murphy

The first simulation in my course about agile methodologies will be waterfall style. Here’s how I plan to do it.

Before we go into the details of the waterfall simulation, I want the whole group (around 20-30 people) to come up with requirements for the product to build: an online office suite (maybe the most boring but also the most well known thing in the world). I plan to gather the requirements upfront because I do not want to burden the first simulation with this additional task – all simulations should start mostly from the same starting point. The team will be free to document the requirements as they like, no special format required (those special formats of recording and managing requirements will be part of the individual simulations). When we have a good set of requirements, we’ll start with the first project waterfall style.

Splitting The Team

To simulate real world scenarios, I’ll split the team into four groups. Every group shall work on a sub-module of the online office suite. To simulate typical hand-offs between analysts and designers, etc. each group will first do the analysis of one module. Then the results of the first phase will be handed over to the next team for doing design. In the second phase, every team will do design another module as before. After the design stage, again the same story: Every team will hand over the design documents to the next group for development. And the same will happen for testing. That way every team will do every phase – but with a different module each time.

The Analysis Phase

In the first phase, the team will have two tasks:

  1. Write use cases based on the initial requirements
  2. Plan the project using a Gantt-Chart

I’ll hand out templates for the use case documents. The team will have to identify actors, come up with reasonable use cases and make sure they structure them by including and extending use cases and sub-use cases. The outcome will be a set of documents and a use case diagram.
After coming up with all the use cases, the team has to estimate the use cases and create a project plan with all dependencies and resource allocations. Of course, there will be “bottleneck” resources: a specialist team member, who is the only one to be able to do a certain type of tasks ;-). The output of this exercise will be a big, hairy Gantt-chart. I’m already looking forward to tell the teams to do a tiny, little change shortly before the end of the phase 😉

The Design Phase

Now every team has to hand over their use cases and project plan to the next team for designing a solution. In the design phase I’ll ask the teams to come up with class and sequence diagrams and a database model (in 3rd normal form, of course). The team will have to create a multi-tier SOA with a MVC based front-end. Just the common stuff 😉

The Implementation Phase

After yet another hand-off, every team will start implementing the design. They will write pseudo code on cards and draw screen scribbles. Later, a “user” can interact with the UI by announcing where he would click or what he would type. Then the “CPU” (just another team member) has to try to interpret the pseudo code.

The Test Phase

In the last phase, the development team and the test team have to interact to ensure, that the written pseudo code and the scribbled screens are correct.
A “user” and a “CPU” will try to run the pseudo code. The user will announce how he interacts with the screen and the CPU will try to do what is written in pseudo code and come up with the required changes in the UI and data. If the CPU cannot execute a piece of pseudo code or the result is not what the user expects, there will be an “exception”. For every exception there will be a trouble ticket and the “developers” of the feature have to fix it.

End of The Waterfall Simulation

When every module has ventured through all four phases, we will do a “post-mortem” analysis of the problems and the achieved goals and record some key learnings. Documenting the experiences of every simulation is essential to be able to compare all three approaches.

What do you think about my approach on simulating a waterfall project in a class setting? Do you have any questions or ideas on how to improve it or what could go wrong? I would be very grateful for your feedback. Just leave a comment below.

3 thoughts on “Simulating a Waterfall Project In The Classroom

    1. It failed miserably. The students did not at all get why they should go through all this. As they had no idea were all this should lead to they were demotivated and lost.
      I cancelled the simulation and went back to presentation mode…


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.