Standard Article

Agile Software Development

  1. Laurie Williams,
  2. Mladen Vouk

Published Online: 14 DEC 2007

DOI: 10.1002/9780470050118.ecse008

Wiley Encyclopedia of Computer Science and Engineering

Wiley Encyclopedia of Computer Science and Engineering

How to Cite

Williams, L. and Vouk, M. 2007. Agile Software Development. Wiley Encyclopedia of Computer Science and Engineering. .

Author Information

  1. North Carolina State University, Raleigh, North Carolina

Publication History

  1. Published Online: 14 DEC 2007


Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible. Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan. Some examples of plandriven methods are various waterfall approaches and others such as the Personal Software Process (PSP) (2, 3) and the Rational Unified Process (RUP) (4, 5). An underlying assumption in plan-driven processes is that the requirements are relatively stable. On the other hand, iterative methods, such as spiral model-based approaches (6, 7), evolutionary processes described in Refs. (8, 11), and recently agile approaches (12) count on change and recognize that the only constant is change. The question is only of the degree and the impact of the change.

Beginning in the mid-1990s, practitioners began finding the rate of change in software requirements increasing well beyond the capabilities of classic development methodologies (1, 13). The software industry, software technology, and customer expectations were moving very quickly, and customers were becoming increasingly less able to fully state their needs up front. As a result, agile methodologies and practices emerged as an explicit attempt to more formally embrace higher rates of requirements change.

In this chapter, we provide background information on agile principles and an overview of three agile methodologies.


  • ahile mainfesto;
  • extreme prohramming;
  • softwere engineering