Agile, Waterfall and You

When it comes to software development, most firms have the choice to go Waterfall or Agile. However, from a client’s perspective, Which methodology better suits the project requirements?

Here’s a scenario; you have requirements for the development of a website or mobile app for your business. You create a list of prospective candidates and narrow it down till you find the perfect firm for your development needs. You discuss your requirements with them, they analyze your requirements, provide you with a delivery schedule and budget and everything is fine and dandy. Your project is a go and you’re now waiting to see what the resultant offering will be.

Now in this scenario, did you stop and think about the firm’s development methodology? Maybe you did and maybe you didn’t. If you did think of the methodology the firm would use, you would have made a choice based on whether you prefer the Agile or the Waterfall methodology for your project. If you didn’t think of this factor, I’m here to tell you that you should have. It is important.

Before we get to the chewing gum inside the methodology lollipop, here’s a brief on the Agile and Waterfall methodologies.

Waterfall Methodology

 The Waterfall methodology can most readily be described as a sequential design and development process. In essence, it means that the work is carried out by the developers in a sequential pattern, where they divide the work into a sequence of phases. Only after work is finished on a previous phase, does work on the next phase begin. Considering that the process is sequential one, developers cannot work on a phase once it is completed.

If the client does call for such a change, the entire project has to be scrapped and work would have to once again begin from scratch. Waterfall is defined by the rigidity of its development process and work has to be carried out with utmost care to avoid delays or resets.

Agile Methodology

The Agile methodology is a newer concept that was engineered in response to the shortcomings of the Waterfall methodology. To combat the rigidity of the Waterfall design, Agile focuses on a more incremental approach. The developer divides the work into small modules and work is carried out on them in short weekly or monthly bursts. Upon completion of a module, the project is tested and scrutinized on the basis of the projects requirements. This allows the developer to discover bugs early on while at the same time gives the client a chance to look over the result and provide his/her feedback, which can then be incorporated into the design.

Now to the benefits and drawbacks of both these methodologies and which one you should be adopting.

Waterfall – The Benefits

  1. With Waterfall, the client knows exactly what he wants and that is exactly what he gets, thanks to the rigidity of the work process.
  2. Due to the diligent documentation, the developer always has access to prior work which can be used as a bar of standard for future projects.
  3. Security. Thanks to the extensive documentation, in the case of a developer dropping out, the work can be carried out by a replacement as the plan and documentation provides a full set of guidelines.

Waterfall – The Drawbacks

  1. Upon completion of a stage or phase in the process, it can be a nightmare to make any kind of changes to the project. The rigidity of Waterfall simply does not allow it.
  2. Waterfall works on the concept that the initial requirements, planning and assessment are accurate. If these turn out to be inaccurate, the project is doomed to failure.
  3. Waterfall does not allow for the evolution of a client’s requirements. If at any stage in the development process, a client demands changes, this will have a massive impact on both the delivery schedule and the project cost.
  4. In case of an error in the initial requirement assessment, the entire project has to be scrapped and started anew requiring new code.
  5. With Waterfall, the product is tested properly only after completion, which means that if the developer wrote bad code at the beginning, it may have affected the later code. This creates a lot of delay in the delivery.
  6. Waterfall does not allow for speedy delivery of the project. It is more suited for projects where definition, not speed is of greater importance.

Agile on the other hand does offer more benefits and fewer drawbacks as compared to Waterfall.

Agile – The Benefits

  1. Agile allows for the division of work into small modules. This lets developers work on small segments of the project and test them upon completion. If errors are found, they are dealt with there and then.
  2. Agile is based on the clients evolving needs. If at any stage in the process the client requests changes, the developers do not have to go to much trouble to oblige.
  3. Due to the flexible nature of the methodology, bugs are caught early on in between the work sprints and are fixed within the development cycle.
  4. Agile provides a greater chance of meeting the delivery deadline as the products are tested in such a stringent manner in the development cycle, the developers do not have to waste much time testing at the end of the cycle.
  5. Agile is particularly helpful for long term projects or for projects that cater to a fast paced industry. The client can request changes based on any new development in their industry, which makes for a stronger product at the end of the development cycle.
  6. While Waterfall ensures a clearly defined product, Agile provides greater speed and is more adaptable to change.

Agile – The Drawbacks

  1. Agile requires strong and focused leadership from the project leader. In the hands of a less competent leader, the project may face issues with budget and delivery schedule.
  2. Since Agile is not based on a rigid project definition, the end result may differ vastly from what the client envisioned.

And there we have it, everything you need to know about the Waterfall and Agile methodologies. While it would be wrong to say that Agile is better than Waterfall, it is true that most firms prefer Agile for its flexibility and scope for greater client satisfaction. At the end of the day however, it is always better to conduct an analysis of exactly what your project requires and which methodology would be more beneficial to you.

By: [googleplusauthor]

About Author

Manish Jain

Manish Jain is the co-founder and Managing Director at Konstant Infosolutions. He is responsible for the overall operations of the company and has played a major role in bringing Konstant up from its humble beginnings and, with his immense energy and drive, transforming it into a globally trusted name in IT solutions.



Leave a Reply

Your email address will not be published. Required fields are marked *

Get a perfect quote

We’re eager to work with you. Please share your project goals and contact information. We respond to 97% of messages within 1-2 business day. Really!

Or send us an email at: [email protected]