Agile

The basics

Originating from the world of IT where the concept of Agile refers to a set of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. Nowadays, the principles of the Agile approach are also used in other domains, for example design & engineering, product development, manufacturing, etc.

Summary

Incremental software development methods have been traced back to 1957. ‘Lightweight’ software development methods evolved in the mid-1990s as a reaction against ‘heavyweight’ methods, which were characterized by their critics as a heavily regulated, regimented, micromanaged, waterfall model of development. Supporters of lightweight methods (and now Agile methods) contend that they are a return to earlier practices in software development.

Early implementations of lightweight methods include Scrum (1993), Crystal Clear, Extreme Programming (XP, 1996), Adaptive Software Development, Feature Driven Development, DSDM (1995, called DSDM-Atern since 2008), and the Rational Unified Process (RUP, 1998). These are now typically referred to as Agile methods, after the Agile Manifesto.

The Agile Manifesto was written in February 2001, at a summit of independent-minded practitioners of several programming methods.

Agile

The Agile Manifesto has twelve underlying principles:

1.   Customer satisfaction by rapid delivery of useful software

2.   Welcome changing requirements, even late in development

3.   Working software is delivered frequently (weeks rather than months)

4.   Working software is the principal measure of progress

5.   Sustainable development, able to maintain a constant pace

6.   Close, daily co-operation between business people and developers

7.   Face-to-face conversation is the best form of communication (co-location)

8.   Projects are built around motivated individuals, who should be trusted

9.   Continuous attention to technical excellence and good design

10.   Simplicity

11.   Self-organizing teams

12.   Regular adaptation to changing circumstances

Agile methods break tasks into small increments with minimal planning and do not directly involve long-term planning.

Iterations are short time frames. Team composition in an Agile project is usually cross-functional and self-organizing and team size is usually small (5-9 people). The Agile method encourages stakeholders to prioritize “their requirements on the basis of business value”.

The Agile approach is supported by the Agile Alliance, a not-for- profit organization that wants to see Agile projects start and help Agile teams perform. It is funded by individual memberships, corporate memberships, and by the proceeds from the Agile conferences. It is not a certification body and does not endorse any certification programmes.

 

Target audience

Anyone involved in an Agile development project team; including analysts, architects, developers, engineers, testers and business customer/users; anyone supporting or managing an Agile project team who requires a detailed understanding of the practices and benefits of Agile development.

Scope and constraints

Applicable to development environments. Improved quality; higher productivity; positive effect on business satisfaction.

Constraints:

•   Works less well in distributed development efforts where teams are not located together

•   Acceptance: forcing an Agile process on a development team that is unfamiliar with the approach

•   Exceptions: mission-critical systems where failure is not an option at any cost (e.g. software for surgical procedures)