"Approximately two-thirds of large organisations working with Forrester are adopting (overtly or inadvertently) some form of Agile process for their internal application development efforts."
Adopting Agile Development Processes Forrester Research, Inc, March 2004
The Agile process refers to a group of processes that have emerged since 1990, which centred on two key principles: close involvement and frequent communication between the project team and business experts, and regular delivery of production quality functionality.
Agile takes a fluid, flexible approach to development. A high priority, according to the principles drawn up by the Agile Alliance, is "to satisfy the customer through early and continuous delivery of valuable software". Also at its foundation is the knowledge that business requirements will change over the course of the development process; that people are a more important part of the development than processes and tools; and that the project customer must be involved along the entire process.
Agile does not call for every requirement to be written down in stone before starting design, coding and testing. Instead Agile teams liaise with the customer throughout the development life cycle to ensure their work responds to changes in business needs. In anticipation of changing requirements, Agile processes calls for projects to be broken down into smaller, bite-sized modules, or iterations, each of which is worked on as a separate entity. The customer is also tapped for knowledge along the way to ensure that any changes in requirements can be applied at the earliest stage.
There are various development methods that fall under the Agile banner, including DSDM, Extreme Programming (XP) and Scrum. The focus of Agile methodologies is on business value, early return in investment and software development through incremental and iterative delivery steps.