Before Agile came into the picture, we had the Waterfall model of software development. The waterfall model can be defined as a sequential process in the development of a system or software that follows a top-down approach. This model was a straight forward and linear model. The waterfall model had various phases such as Requirements Gathering, Software Design, Implementation, Testing, Deployment, and Maintenance.

This model however suffered a few drawbacks such as follows:
- This model was too time-consuming. Unless you complete a particular stage, you cannot proceed to the further stages.
- This model was suitable only for projects where requirements are stable.
- The working software is delivered only after completion of the final stage of the model.
- It is very difficult to go back to the previous stages and make some changes that you had not thought about in the initial phase.
Due to the above-mentioned drawbacks of the Waterfall model, the leaders from the different development methodologies decided to meet to find a way forward through these problems. These leaders agreed upon a lightweight development method and they were also able to give wordings for the same in the form of a manifesto. It was called ” The Manifesto for Agile Software Development”. This manifesto contains 4 Values and 12
principles.
What is Agile methodology?
Now let us try to understand What exactly is Agile. Agile Software development is an approach under which requirements and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and their customer(s)/end user(s). It advocates adaptive planning, evolutionary development, early delivery, and continual improvement, and it encourages rapid and flexible response to change.

Agile software development allows the team to work together more efficiently and effectively to develop complex projects. It consists of practices that exercise iterative and incremental techniques that are easily adopted and display great results.
The 4 values of the Agile Manifesto are as follows:
- Individuals and Interactions over processes and tools
- Working Software over comprehensive documentation
- Customer Collaboration over contract negotiation
- Responding to Change over following a plan
The 12 principles that are mentioned in the Agile Manifesto are as follows:
- Customer satisfaction by early and continuous delivery of valuable software.
- Welcome changing requirements, even in late development.
- Deliver working software frequently (weeks rather than months)
- Close, daily cooperation between business people and developers
- Projects are built around motivated individuals, who should be trusted
- A face-to-face conversation is the best form of communication (co-location)
- Working software is the primary measure of progress
- Sustainable development, able to maintain a constant pace
- Continuous attention to technical excellence and good design
- Simplicity—the art of maximizing the amount of work not done—is essential
- Best architectures, requirements, and designs emerge from self-organizing teams
- Regularly, the team reflects on how to become more effective and adjusts accordingly
Advantages of Agile methodology
The various advantages offered by AGILE methodology are as follows:
- In AGILE, the delivery of the software is persistent.
- After every Sprint, working feature(s) is/are delivered to the customer. This increases the level of satisfaction in them.
- Customers can have a look at the developed features and check if they meet their expectations.
- If the customers have any feedback or they want any changes in the features, then it can be accommodated in the current or maybe the next release of the product.
- Changes can be made even in the later stages of the development of the product.
- In AGILE, the business people and the developers of the product interact daily.
- A significant amount of attention is paid to the design of the product.
