Waterfall vs. Agile Software Development


Having been in the software development business for the past 15 years, I have seen firsthand the rise of the Agile methodologies in software development and the sudden distaste against what is colloquially called the “Waterfall” model of software design.

The Agile development values proclaim the following:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

However, what we realized as we moved forward is that many managers and senior executives have misinterpreted the word over as versus.

Suddenly, even the mention of the need for a specification document was met with blank stares. People assumed that this would confine the development process into a rigid framework of difficult to change requirements that would hinder its progress. Or even worse, a specification document was provided but it was loosely written and, in most cases, had glaring omissions and even more striking contradictions.

The idea behind the Agile methodologies was to enhance the existing processes and shift the focus to the product itself rather than the processes that make the product. Nevertheless, dismissing the need for a good plan with clear targets is a fool’s game and many products have failed because of it.


The 7L way

That is why in 7L we believe that the “Waterfall vs Agile” argument is a false dichotomy. Our experience so far has shown that our clients value our specification-based approach, because it saves them time and money down the line. At the same time, we have a flexible change management process in place which keeps the product adaptable to client feedback and the changing requirements of an ever evolving market.

We thank Design Rush for asking us to write our opinion on this matter regarding Waterfall vs. Agile Software Development


Tags

  • Agile
  • software development
  • waterfall

Thanasis Politis

CTO and Systems Architect