What is Agile Software Development
Agile Software Development is the methodology that was created to allow organizations to respond quickly to change so that they can succeed in uncertain environments. The Agile Manifesto came out in 2001 and was initially for software development teams but has since been used in other industries as well.
Agile Values
Agile Software Development is based on values and principles outlined in the Agile manifesto and is an approach to get software done better and faster. The approach emphasizes these fundamental values:
- Individuals and Interactions over processes and tools
- Working Software over comprehensive documentation
- Customer Collaboration over contract negotiation
- Responding to Change over following a plan.
Why Agile?
Before agile, there was the waterfall methodology which is still used frequently today. Organizations who operated in the waterfall methodology would work in a systematic way that was not very fast or responsive to change.
In waterfall, requirements documentation is done way in advance, there is a lot of focus on documentation of the project before any code is ever written. Waterfall teams often work in silo and there often isn’t a lot of opportunity for collaboration between teams. The software developed in waterfall teams often didn’t meet the expectations of the clients and many times the final product did not match the documentation done up front causing a lot of rework.
Because of this, there was a need to find a better way to work. There were a number of methodologies that was invented in the 90’s and early 2000’s to tackle this problem. By combining these various solutions, the Agile Software Development Methodology was born.
Benefits of Using Agile
Using Agile Software Development, organizations can focus on the benefit to the user and deliver small functional pieces of the software at a time, rather than spending months -even years -working and delivering the entire software at once sometimes only to find out that it may not have met expectations.
Software projects that work in the waterfall methodology usually go over budget and changes cannot be easily made. With the Agile Software Development Methodology, organizations can respond more quickly to change and by collaborating more and talking more, they achieve greater shared understanding so the likelihood of delivering software that meet client expectation is increased.
Read my article on What Makes a Good User Story to learn more about the main artifact of the Agile Methodology: the user story.