A simple IF statement I use to determine which of agile or waterfall is best suited for a particular project.
IF the end picture is not clear & you don’t know how to achieve it:
- without continuous feedback
- most variables unknown
- few if any requirements set
- has complexity and novelty
- defined deadline, scope, and budget not critical
- team is high-performing, self-organized, allowed great deal of flexibility, and overlapping skillset.
Waterfall – there is nothing to be agile about i.e. no flexibility and almost everything already defined
It is a similar method to the agile manifesto where we value items on the left more. Many may not like me saying it but the further to the right the closer we are to waterfall. It could even be waterfall itself.
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
The IF statement shows how far we are to the right before we have started. There could be many reasons for being nearer to waterfall than agile.
- A customer already has a comprehensive idea of what they need
- It is mission critical or scientific making any process fixed, and must practice being risk averse
- There is simply to much information for the users to provide the software engineers daily that it must be documented
- It is a re-engineering project and the existing software is in itself comprehensive documentation.
Likewise, the nearer we are to agile there can be many reasons
- A customer only has a summarized idea of what they want
- They can afford to be risk tolerant
- Information can be given on-going and in drips
- It is a new product, nothing exists yet.
Don’t close your mind
There is nothing in the agile manifesto or principles that says do not do waterfall – and nothing in waterfall that says don’t do agile. The agile manifesto indicates if you are all the way to the right you are waterfall anyway. If both are kept as simple a process as they need to be then both can produce great results.
I often think that if we didn’t formally name if we were doing waterfall or agile there would not be so much fuss over it. Some Software Development Managers & Engineers are believers of one but skeptical of the other…
- and believe only Agile can work for everything whilst…
- others believe only Waterfall can work for everything
…but what I have found is not many have used the other – or didn’t use it well.
Great Software Development Managers and Engineers know both waterfall and agile and will select the most suitable. If they make the wrong selection of tool, process, or technology they will adapt and get on with it. Great Software Development Managers and Engineers know when to press the reset button and admit when wrong.