Some say that Waterfall stinks and others think that Agile is The Thing. But it’s never that cut and dry.
I got a good handle on what has worked for me.
People oftentimes hesitate about what software methodology to implement after having used the classical waterfall model for software development. I’d like to recommend Scrum Agile methodology which statistically has been proven to increase productivity in software product development. Key to its success is that it makes development incremental and iterative.
Advantages of Scrum
Among the advantages is the response capacity that designers, programmers, and testers have to the changes in business requirements (Sprints).
Through continuous revisions and feedback, every demo helps the product owner and other stakeholders visualize how the application is coming together.
Another advantage of the Scrum model is that when the desired product idea is not well defined, this process refine requirements, designs, and specific functionalities that had not been discovered.
A lot of Scrum’s success lies in constant communication and teamwork.
Disadvantages of Scrum
One of the disadvantages of Scrum is its fluidity.
During the Sprint planning sessions efforts are estimated as Story Points. But then, as the Sprint progresses the real weight of each Story may change the effective hours spent on it. This leads to changes and renegotiations to keep the Sprint time-boxed.
During a Sprint questions might arise as to how to develop certain modules. This is a good time to realign the requirements and expectations among the team. Better this now than re-work later.
Advantages of Waterfall
In Waterfall, the upfront project administration, analysis, and design gives a sense of greater certainty to the team.
This works if everybody involved in the project is kept really well informed throughout the project.
Disadvantages of Waterfall
Waterfall is quite rigid and it can compromise expectations. As changes come in, it compromises the budget, deadlines, the final results.
The testing and feedback stages on the user or client’s end is done at the end of the project. At this stage, important errors are spotted, including usability problems. By then it is very expensive to make these changes.
Which One Is Best?
I don’t think that either methodology is absolutely better than the other.
In the case of a limited project to do a well-known task, Waterfall may work.
In the case of products or business processes that start with a concept but not with defined guidelines, Scrum is the way to go. Mostly likely, significant changes will happen during development and these changes in turn will influence user’s expectations. Scrum is better for software that is evolving as it’s being built.
And the Winner Is …
Bottom line is, when the time comes to choosing a method, there is really not a right or wrong choice. You just need to understand which method is better suited to your project and your needs.