Monday, September 19, 2011

SDLC: Agile Processes

In the past few years, there's been a lot of interest in agile software processes.

Agile is an umbrella term that covers many processes that share a common set of values and principles as defined by the Manifesto of Agile Software Development (http://agileManifesto .org) . Examples of these processes are Extreme Programming (XP), Scrum, Feature Driven Development (FDD), Crystal, and DSDM
(Dynamic Systems Development Method).

In terms of our discussion, agile processes are strongly adaptive in their nature. They are also very much people-oriented processes . Agile approaches assume that the most important factor in a project's success is the quality of the people an the project and how well they work together in human terms. Which process they use and which tools they use are strictly second-order effects.

Agile methods tend to use short, time-boxed iterations, most often of a month or less. Because they don't attach much weight to documents, agile approaches disdain using the UML in blueprint mode. Most use the UML in sketch mode, with a few advocating using it as a programming language.

Agile processes tend to be low in ceremony. A high-ceremony, or heavyweight, process has a lot of documents and control points during the project . Agile processes consider that ceremony makes it harder to make changes and works against the grain of talented people . As a result, agile processes are often characterized
as lightweight . It's important to realize that the lack of ceremony is a consequence of adaptivity and people orientation rather than a fundamental property.