It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is the most adaptable to change. – Charles Darwin

Waterfall

This is a linear and sequential (non-iterative) approach to software design and system development. The waterfall model includes the following phases:

Normally the next step only starts when the previous step is finished. This means that all requirements have to be defined be fore the design phase will start and the implementation only starts when the design phase is completed.

Because of this approach it is hard to handle changes of the requirements in the middle of the process.

This is a plan driven & inflexible approach.
Having a strong upfront plan provides for considerable predictability & makes it easier to coordinate large numbers of teams. When requirements change also means that the plan has to be revised and parts has to be redone.

Agile

As an answer to the fast evolving requirements changes of these days and to be able to give results earlier to customers iter ative design process rapidly gain the preferable design to use.

What is Agile Software Development?

Agile Software Development is an umbrella term for a set of methods and practices based on the values andprinciples expressed in the Agile Manifesto. Solutions evolve through collaboration between self-organizing, cross-functional teams utilizing the appropriate practices for their context.

In the late 1990’s, several methodologies began to gain increasing public attention, each having a different combination of old and new ideas. These methodologies emphasized close collaboration between the development team and business stakeholders; frequent delivery of business value, tight, self -organizing teams; and smart ways to craft, confirm, and deliver code. The term “Agile” was applied to this collection of methodologies in early 2001 when 17 software development practitioners gat hered in Snowbird, Utah to discuss their shared ideas and various approaches to software development. This joint collection of values and principles was expressed in the Manifesto for Agile Software Development and the corresponding twelve principles.
The Agile Alliance was formed shortly after this gathering to encourage practitioners to further explore and share ideas and experiences.

From: https://www.agilealliance.org/agile101/what-is-agile