Agile was born in 2001 when 17 software development enthusiasts with different development methodologies background met and brainstormed for 2 days to find an alternative software development model that is less rigid and less documentation heavy compared to the existing traditional software development model.
The end result of this meeting was a formal document what they called the “Agile Manifesto” that defined the 4 core values and the underlying 12 principles for software development.
The existing Waterfall development techniques were too cumbersome and rigid and there were too many drawbacks such as no possibility of changes to requirements at a later stage in the project, customer will see the working software only as a final product and nothing during the course of development, no possibility of incorporating customer feedback and no scope for course correction during the course of development, heavy documentation etc..
Agile software development is a solutions to all the above drawbacks.
What exactly is “Agile” ?
‘Agile’ is not a set of rules or guidelines. It is a mindset. Dictionary meaning is “able to move quickly and easily”. In line with this meaning, ‘Agile’ in software development could be defined as the ability to develop software easily, quickly, and with quality. Agile is a set of principles that encourage better interaction among team members, showcasing working software frequently, flexibility and adaptability to changes during the course of project.
Agile software development consists of practices that exercise iterative and incremental techniques which can be easily adopted. It allows a team to work together more efficiently and effectively in developing complex projects.
Agile is the ability to create and respond to change. It is a way of dealing with, and ultimately succeeding in, an uncertain and turbulent environment.
Agile is a software development approach where requirements and solutions evolve as a collaborative effort of self-sufficient and cross-functional teams and their customers/end-users. It advocates adaptive planning, evolutionary development, continuous deliveries through iterations, continual improvement, and rapid and flexible response to change.
How is Agile Practiced ?
As we already discussed, ‘Agile’ is a mindset and a philosophy, its core values and principles are defined in the ‘Agile Manifesto‘. To apply these values and principles, we have various methods and methodologies. These are also called Agile frameworks.
Various popular Agile Methodologies are:
- Test Driven Development (TDD)
- Feature Driven Development (FDD)
- Dynamic Systems Development Method (DSDM)
- Extreme Programming (XP)
- Crystal Clear
- Large-scale Scrum (LeSS)
- Continuous Integration (CI)
- Continuous Delivery (CD)
- Disciplined Agile Delivery (DAD)
‘Agile’ is an umbrella term for all the methods and methodologies that follow the values and principles described in the Agile Manifesto. Organizations can be agile by using any of the available Agile methodologies (Frameworks) described above. The below is a depiction of the Agile Umbrella.