Technically, agile software development is a group of methods, not a single method, but we’re going to focus on the overall core methodologies of agile software development rather than pick apart each individual agile method.
History of the Agile Method
Many can trace the roots of the agile method back to a 1974 paper written by E. A. Edmonds, in which he introduced “an adaptive software development process.” However, the method didn’t really catch on until the mid-1990s when programmers reacted against what they called “heavyweight” software development methods, such as the waterfall model, which was seen as overly restrictive and regulating.
In response, programmers sought lightweight methods that promoted flexibility, control, and responsiveness. Some turned to the spiral model, but its specific framework caters more to large projects that require many years to see results. Programmers needed something freeing like spiral model yet small like the waterfall model.
In response, 17 software developers met in February of 2001 to create the Agile Manifesto.
Basically, the Agile Manifesto defines the core purpose as to why someone would want to use the agile method for software development.
In its entirety, the Agile Manifesto reads:
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
The items on the left were later expanded upon by Scott W. Ambler in his article Examining the Agile Manifesto:
- Individual and interactions – Most important are self-organization and motivation.
- Working software – Always present clients with working software samples rather than documentation.
- Customer collaboration – All project requirements cannot be collected at the immediate start, thus continuous interactions with customers or clients is necessary.
- Responding to change – Quickly respond to change and development alterations.
The original 17 software developers later went on to create the Agile Alliance, a non-profit organization dedicated to helping others learn, adapt, and use the agile method of software development.
How the Agile Model Works
All of the agile methods and models focus on promoting teamwork, adaptability, flexibility, collaboration, and developmental success.
In addition, agile methods break complex tasksinto smaller, more manageable ones, allowing for minimal planning and incremental phases that last anywhere from one to four weeks. Each phase involves a team of individuals ranging in background experience, including analysis, design, coding, testing, and so forth. At the end of the phase, the team presents their product to the client.
Face-to-face communication is crucial to the agile methods, even favored over documentation when team members are located in the location. The office environment will be open to allow for such communication, and team sizes are normally between five and nine individuals.
All agile methods are designed to focus on small teams working on small projects, with the intent of quickly and efficiently completing said projects. The team members verbally communicate their ideas and work in an open environment promoting workspace cohesion. It’s one of the few models taking the workspace into account, making it a revolutionary addition to the software development industry.