Knowledge Center
Navigation
Knowledge Center

Agile

An approach to software development focusing on continual delivery and flexibility to changing requirements
popularity

Description

Software Development Is A Creative Process

The manifesto for agile software development was written by a group of software developers in 2001. At a weekend retreat in Utah, this diverse group of individuals who were advocating differing approaches to software development, met to talk about the current state of software development. Despite their differences, the group agreed that the top-down, process centric, heavily documented, painfully deliberate style that many organizations followed was proving less and less successful. As Jim Highsmith writes on www.agilemanifesto.org, everyone agreed that “In order to succeed in the new economy, companies have to rid themselves of their Dilbert manifestations of make-work and arcane policies.”

Intense discussion from two days of meetings resulted in the creation of the manifesto for agile software development. To its signatories, the manifesto was a launching point from which they and other likeminded developers could unravel the damage done to software development by classic project management techniques and specifically, the waterfall development model.

The underlying premise of the waterfall model is that design and construction of some products can be defined in advance through construction of a detailed project plan. Development then becomes a largely mechanical process of staged execution according to the plan.

A fundamental flaw in applying the waterfall model to software development, say agile software practitioners, is that the act of designing and constructing software cannot be reliably defined in advance. Software development, they argue, is a creative process and due to its inherent uncertainty cannot be accurately planned in advance; product vision, customer need, target market, target technology and team dynamics among other things can vary considerably and unpredictably during development. For a creative process like software development, therefore, it is agility and adaptability that drives success rates to a greater degree than the intense upfront planning characteristic of waterfall development.

The Manifesto for Agile Software Development

Taken directly from www.agilemanifesto.org, the four values from the manifesto for agile software development read as follows:

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.

Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn
Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith
Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin
Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas

© 2001, the above authors this declaration may be freely copied in any form, but only in its entirety through this notice.

The writers of the manifesto acknowledge that software development will continue to rely on values traditionally associated with software development-described as the items on the right-while suggesting greater emphasis must be placed on the value people and communication play in a creative process.

Also part of the agile manifesto are a list of 12 principles that further emphasize the creative role of developers, communication, adaptivity, inclusiveness and objective progress metrics based on working software.

Common Agile Development Frameworks

Extreme Programming
Scrum

Page contents originally provided by Neil Johnson, principal consultant at XtremeEDA