Agile software development is a set of software principals that helps to manage IT development teams and projects.
The ‘agile’ part of software development was introduced in 2001, when different personalities, including Jon Ken, Jeff Sutherland and Martin Fowler, signed the Agile Manifesto based on 12 principals.
Some of those principals stipulate that business people and developers must work together daily throughout the project, the most efficient and effective method of conveying information to and within a development team is face-to-face conversation, and working software is the primary measure of progress.
Agile development software is also based on a vast list of different methods or process frameworks. For example, feature-driven development (FDD) is an iterative and incremental software development process which has the capability to generate software within the right time frame based on business needs.
Another method is agile unified process (AUP) designed by Canadian software engineer Scott Ambler. AUP is used to build business application software and is a simplified version of rational unified process.
It has seven different disciplines: model, implementation, test, deployment, configuration management, project management, and environment.
Adaptive software development (ASD) is another method for agile software development. ASD is a software development process focused on the rapid creation and evolution of software systems.
Its working environment is based around repeating a series of learning methodologies and cycles of repetition, collaboration and learning cycles.
In addition to the above methods, there is also extreme programming (XP) created in 1996. XP improves a software project in five different ways: communication, simplicity, feedback, respect, and courage.
The XP method itself is also based on a set of 12 principals. These include the planning process, small releases of the software, common metaphors, simple design, testing, refactoring, pair programming, collective ownership of every line of code, continuous integration, constant customer relationship, and the respect of a coding standard which stipulates that all coders have to write in the same way.
Elsewhere, another agile software development method is dynamic systems development (DSDM). The DSDM Philosophy is that any project must be aligned to clearly defined strategic goals and focus upon early delivery of real benefits to the business, according to the DSDM Consortium.
DSDM is vendor-independent, covers the entire lifecycle of a project and provides best practice guidance for on-time, in-budget delivery of projects, with proven scalability to address projects of all sizes and for any business sector.
Other methods for agile software development include agile modeling, business analyst designer method (BADM), crystal clear methods, disciplined agile delivery, and lean software development.