Main Page | See live article | Alphabetical index

Agile process

In software engineering, agile processes are low-overhead processes that accept that software is difficult to control. They minimize risk by ensuring that software engineers focus on smaller units of work.

One way in which Agile software development is generally distinguished from "heavier", more process-centric methodologies, for example the waterfall model, is by its emphasis on values and principles, rather than on processes.

Typical cycles are one week or one month, and at the end of each cycle they reevaluate the project priorities - a feature it shares with incremental engineering methodologies, and most modern theories of project management.

Table of contents
1 History
2 Reducing Weight
3 External Link

History

Agile processes evolved in the mid 1990s as part of the reaction against high ceremony processes, like CMM and ISO 9000. These processes were seen as bureaucratic, slow, demeaning, and contradicted the ways that software engineers actually work.

Extreme Programming is considered the first established agile process after some common tactics are popular among computer programmers. Given the popularity, the term agile process often is used to mean Extreme Programming specifically.

The term agile process was chosen as an improvement over the term lightweight process, which had been widely used in the 1990s.

Reducing Weight

In general, agile processes impose as little overhead as possible in the form of rationale, justification, documentation, reporting, meetings, and permission. Replacing before-the-fact permissions with after-the-fact forgiveness is one of the key elements of reducing overhead.

The WikiWiki (of which the wikipedia is an example) demonstrates this by permitting anyone to edit an article - and anyone to quickly undo changes or raise objections. Not surprisingly, the creators of Extreme Programming are also the creators of the first Wiki software.

Agile processes include

Examples of agile processes applicable beyond the realm of software include See Also: Software engineering

External Link