Agile software development or the Waterfall framework?
The Waterfall framework and the Agile software development process are two competing software development approaches, and the two of them couldn't be more different.
Here are the important highlights to understand between Agile and Waterfall software development approaches.
Agile vs. Waterfall
Waterfall is the older of the two, with roots that date back to the 1950s in infrastructure, engineering and construction.
In contrast, the Agile Manifesto, which describes the Agile values and principles, was signed and published in 2001, largely in response to the Waterfall-based software development practices that were popular at the time.
The Agile software model is flexible, iterative and responsive to change. In contrast, Waterfall has a very rigid structure.
The Waterfall framework
Waterfall defines several specific phases in software development, such as planning, design, development and testing. When one phase ends the next phase begins, and there is no going back once a new phase begins. The flow is unidirectional -- like barrels falling over a waterfall.
Unlike Waterfall, Agile methodologies such as Scrum and Kanban, encourage change. One of the four founding Agile values is to encourage change rather than following a plan. One of the 14 key Agile principles is to welcome changing requirements, even late in development.

The Agile software development approach
Agile practitioners know that in the world of software development, things never go according to plan.
New technologies or even social trends can make requirements and designs outdated before development on them even begins. And wireframes and visual renderings don't always translate when you see the actual website in the browser, or the app running on the phone in your hand.
That's why Agile practitioners continuously deliver software to the end user, encourage feedback and respond to change. It's the smart way to do modern software development.

When does the Waterfall framework work?
So, when are the appropriate situations to apply Waterfall and Agile?
Waterfall works well in engineering and construction. For example, if you've poured the foundation for a small two-bedroom home, you don't let your client decide they'd prefer a six-bedroom mansion. But for software development, such rigidity to change isn't helpful.
So which methodology should you choose in the Waterfall vs. Agile debate?
In the software industry, an Agile approach to product development is preferred. Agile methodologies such as Scrum and SAFe are tailor-made for software development because they incorporate the ideas of early feedback loops and iterative development.
The most successful teams deliver software continuously to the client, gather feedback at regular intervals and respond to changing requirements as quickly as they can. It's the right way to develop modern software.

Darcy DeClute is a technical trainer and Agile coach who helps organizations apply Scrum-based principles to adopt a modern DevOps stack. She is a certified Professional Scrum Master, Professional Scrum Developer and Professional Scrum Product Owner as well as author of Scrum Master Certification Guide.