Agile vs Waterfall: Project Success
Are you a software development agency owner seeking for ways to run your projects more efficiently? Are you searching for a suitable methodology for your projects and trying to avoid failures? In this article, I’ll give a snapshot of Agile and Waterfall methodologies of software development and share my opinion on the factors leading to project failure or success.
What doesn’t work in Waterfall?
In the Waterfall methodology, the whole process of software development starts with Requirements documentation, followed by Design, Implementation, Verification, and Maintenance stages. In case of any change request, the process needs to be restarted from the first stage. As a result, a lot of reworks and refactorings might be required throughout the project making the whole process cost-prohibitive and dissatisfying for customers. Eventually, these factors can lead the project to failure.
Why was Agile introduced?
Around 20 years ago, seventeen software developers published the Manifesto for Agile Software Development. The key driver for the initiative was discovering more efficient ways of developing software. I have had the experience of working with both Agile and Waterfall methodologies during the 15+ years in the software development industry. Based on the experience, I believe there are 2 revolutionary things that Agile introduced: 1) avoiding complex documentation and 2) being open to change requests in the process. These contradict the Waterfall model, which was the most popular methodology before the introduction of Agile. The flexibility that Agile brought to teams and its contribution to the project success made the methodology much more popular.
Agile ≠ Chaos
Allowing flexibility and not requiring complex documentation doesn’t mean there shouldn’t be planning while using Agile methodology. Today, a number of Agile tools are available for project management that assist in planning project iterations and tracking progress. However, one critical component of project planning that teams usually undervalue is the estimation. Estimation might actually be the most “dangerous” part of the Agile model.
Why is estimation important?
A proper estimate is the foundation of the project development process. It not only determines the project cost or deadline but it also defines the project scope. If there is a lack of clarity on the project scope, this oftentimes leads to customer dissatisfaction.
Thus, I believe that, even if using Agile methodology, doing proper project estimation and communicating it with the client is of critical importance for avoiding failure.
In the upcoming articles, I’ll be covering project estimation in more details, sharing practical techniques as well as diving deeper into project planning and management. Stay tuned and consider sharing this piece with relevant people.