To use Waterfall or to use Agile for my project – that is the question!
Without a doubt, the success of a project rides heavily on a well-chosen project management methodology. Using the right methodology maximizes the chances of a successful completion of a project.
The equation for a successful project can be summed up in this little equation:
(On time + Under Budget + Requirements fulfilled = Client Satisfaction)
However, the key question here is “What project management methodology is right for my project?” There’s a number of traditional and modern project methodologies to choose from, however Waterfall and Agile are generally the most popular choices.
Today we would like to arm you with a comparative analysis of Waterfall and Agile methodologies so that you can make an informed decision as to what would suit your project!
Also known as the Traditional Approach. The very fact that its name is Traditional Approach should be a bit of a give-away that this is not a methodology you want to use for very avant-garde projects. The Waterfall approach is a linear approach to projects, and would work generally like this:
- Gathering of document requirements
- Code and unit test
- Perform system testing
- Perform user acceptance testing
- Fix issues
- Deliver finished product.
As to any approach, there are always pluses and minuses with it. However there are a few key benefits to using a Waterfall approach. Some of these are:
- Developers and customers being able to agree on an early stage in the development lifecycle what is the goal of the project, what the requirements are and what will be delivered. This makes planning and designing more straightforward.
- Progress is easily measured. At every stage in the Waterfall process, each stage must be reviewed and approved by the customer, before the next stage can begin. No stage is completed simultaneously.
- Free resources in the development team are free to work on other projects, depending on the active phase of the project. Design as well, is completed in the early stage of the development cycle so everyone has a clear idea of how it will look.
- A customer’s presence is generally not needed, except for the beginning phrase and the requirements phrase. This works as well in an outsourcing environment, where are client does not physically need to be there, and can conduct reviews, and approvals remotely.
However, drawbacks to the Waterfall method can show itself in, problems with effectively gathering all requirements at the very beginning and completing the design in the very beginning of the development cycle, as sometimes requirements and design can change midway. As well, there is the question of what do you do if you complete every step of the requirements, design and development process, and the client decides towards the very end that the project simply doesn’t suit his requirements anymore.
The Agile approach is a team based approach to development. Here the focus is a quick delivery of an application in time components. All project work is time-boxed into “sprint” phases which comes with a defined set of deliverables and project duration, and is planned one “sprint” in advance. Deliverables are measured and defined by the business goals of the customer. If all project work is not completed in one sprint, then it is reanalyzed by the development team and the customer and used to define a new sprint activity. The work is constantly evaluated by the customer and the team, and this methodology requires a high level of customer involvement. Some of the positive features that speaks for the Agile approach are:
- The customer is able to see and approve the work being delivered, is allowed to make changes in every process of the development, without it affecting the workflow, and is able to approve every step of the way in compliance with their business goals – not at the end of a delivered project.
- Team members are totally dedicated to the project at hand – not busy with other simultaneous projects! This allows for total focus.
- Development is user-focused.
Drawbacks to the Agile approach can include the need for the team to work together onsite, not remotely, a high degree of customer involvement, lack of scheduled deadlines because of frequent reprioritization or sometimes, the developers and customer not being able to agree on the complete picture in the very beginning, leading to reduced quality.
As depicted by the infographics, both Waterfall and Agile have positive and negative features, which makes choosing the right methodology a real challenge. One of the possible resolutions to the problem is “Watergile” which is a combination of both Waterfall and Agile project management methods. Here the idea of combining traditional and modern approaches allows clear planning and flexibility at the same time.
However, a good rule of thumb is:
If the project is smaller, less complex, and allows for the customer to be present and there is a need for rapid time to deployment = USE AGILE
If the project is complex, based on a fixed budget and timeline, and there is a high level of integration with external systems, and the project does not demand constant customer presence and intervention = USE WATERFALL