Agile software development aims to solve the problems inherent in the waterfall model, which was popular before Agile, where due to big upfront planning and design it becomes difficult to incorporate changes later. Agile methodologies solves this problem by building software iteratively and incrementally. In the iterative approach first delivery may have some incomplete parts, which gets refined in the subsequent iterations. In the incremental approach software is delivered in parts, each increment represents a complete feature, which is fully tested.
One thing that separates Agile from other approaches to software development is the focus on the people doing the work and how they work together. Solutions evolve through collaboration between self-organizing cross-functional teams utilizing the appropriate practices for their context.
Agile is a mindset informed by the values and principles mentioned in the Agile Manifesto. What matters is embracing a flexible mindset and continuously seeking ways to improve how work is done so you can maximize the value you give to your customers.
Goal of Agile is to continuously deliver value to the customer, provide visibility, reduce risk and maintain adaptability.
Popular Agile Methodologies
- Scrum
- Kanban
- XP
- DevOPs
- Lean
References
- http://agilemanifesto.org/
- https://scrumguides.org/scrum-guide.html