keymodels
Menu
OperationsFramework / modelModelAccessible

Agile development

When and how should agile development be applied?

AccessibleOperationalIndividual3 min read
Contents

‘Agile development’ is a software development methodology that emphasises close attention to user needs, fast development cycles and small development teams.

Agile development is an approach to creating software through small teams, short delivery cycles and continuous attention to users’ needs. It contrasts with the traditional waterfall method, in which the full system is designed against a master specification before its components are built. Each approach has strengths and limitations, but agile has become the preferred model in many settings. Its principles now influence creative thinking and management practices well beyond software, including inside large organisations.

When to use it

  • To respond quickly as users’ needs emerge or change.
  • To let a software system evolve alongside its requirements.
  • To make development more participative and engaging for the people doing the work.

Origins

Before the 1990s, most software projects followed a waterfall, or cascade, process. The customer and developer agreed a high-level design; the design was decomposed into specified modules; the modules were coded and tested; and the completed parts were finally assembled and delivered. The discipline produced careful, precise plans, but it could also be slow, costly and resistant to users changing their minds. During the 1990s, several communities of developers began testing more adaptive methods. Seventeen practitioners met in Utah in 2001 and articulated the common ground among those approaches in the Manifesto for Agile Software Development. The manifesto gave the movement a shared identity and greater legitimacy, while specific methods under its umbrella—including Scrum—subsequently became widespread.

What it is

Waterfall organises development into five successive stages: requirements, design, implementation, verification and maintenance. That systematic sequence brought rigour and repeatability to projects; consultancies such as Accenture and Infosys built significant capabilities around applying it. Carnegie Mellon University’s capability maturity model offered a way to assess the discipline and maturity of software-development processes.

Agile arose because many developers found that sequential model too rigid for a world in which users rarely know every requirement in advance and often revise their needs after seeing the product. The 2001 manifesto at www.agilemanifesto.org expressed four preferences that define the movement:

  • put individuals and interactions ahead of processes and tools;
  • favour working software over comprehensive documentation;
  • emphasise customer collaboration more than contract negotiation;
  • value responding to change above simply following a plan.

The items on the right still matter; agile gives greater weight to those on the left.

Free account access

Read the full article.

Create your free KeyModels account to finish this article, save it to your library and keep your reading progress across devices.

Complete this articleSaves, notes and reading progressNo card required