Many people have seen and appreciate the elegance and practicality of agile methodologies. Sadly there is still not widespread adoption. There is still push back from many directions and from many different sources.
- Some people don't understand how it is supposed to work.
- Some people don't believe that it could possibly work.
- Some people mistakenly believe that it is just code for a lazy project team trying to wiggle out of structure
- Some people mistakenly believe that it can work only with a very small highly trained team
- Some people are afraid of the control that they feel they will be losing.
I have seen some people try to merge agile and water fall hoping to achieve the best of both worlds. Unfortunately, the reality is that you end up with the worst of both worlds. And they both can get pretty bad.
Another Sad Reality
Some people in an effort to get buy in for following an Agile Methodology have attempted to merge these two practices. Sometimes this may stem from trying to assuage individual fears that they are not losing relevance. Sometimes it may be to meet contractual obligations or to fulfill regulatory requirements. Sometimes may not know better.
These two approaches to software development cannot coexist on the same project.
Let's review the main tenants of the Agile Manifesto:
- 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.
Meanwhile the main tenants of the Waterfall Approach could be summarized as:
- Processes and procedures over individuals
- Comprehensive documentation proves that the software works
- Well defined contracts and negotiations protects the customer relationship
- If the plan is made right, there should be no change
Merging these two approaches will always end badly.