Agile Software Development Article Index for
Agile
Website Links For
Agile
 

Information About

Agile Software Development




Agile software development is a conceptual framework for Software Engineering that promotes development iterations throughout the life-cycle of the project.

There are many agile development methods; most attempt to minimize risk by developing software in short , design, coding, Testing , and documentation. An iteration may not add enough functionality to warrant releasing the product to market, but the goal is to have an available release (without bugs) at the end of each iteration. Sometimes, however, software is released at the end of each iteration. This is particularly true of web-based software. At the end of each iteration, the team re-evaluates project priorities.

Agile methods emphasize face-to-face communication over written documents. Most agile teams are located in a single open office. At a minimum, this includes programmers and their "customers" (customers are the people who define the product; they may be product managers, business analysts, or actual customers). The office may include testers, interaction designers, Technical Writer s, and managers.

Agile methods also emphasize working software as the primary measure of progress. Combined with the preference for face-to-face communication, agile methods produce very little written documentation relative to other methods. This has resulted in criticism of agile methods as being undisciplined.


HISTORY

The modern definition of agile software development evolved in the mid 1990s as part of a reaction against "heavyweight" methods, as typified by a heavily regulated, regimented, micro-managed use of the Waterfall Model of development. The processes originating from this use of the waterfall model were seen as bureaucratic, slow, demeaning, and inconsistent with the ways that software engineers actually perform effective work.