Agile

From Systems Analysis Wiki
Jump to navigation Jump to search

Agile software development is an umbrella term for a set of approaches and practices based on the values of the Manifesto for Agile Software Development and its 12 underlying principles. Agile methodologies include Extreme Programming, DSDM, Scrum, FDD, BDD, and others.

Agile methods include, in particular, XP, DSDM, scrum, FDD, and BDD.

Most Agile methods aim to minimize risk by dividing development time into iterations (or periods)—relatively short time intervals. An iteration typically lasts two to three weeks and functions like a miniature software project, including all the tasks necessary for a small increment in functionality: planning, requirements analysis, design, programming, testing, and documentation. A single iteration is usually not enough to release a new version of the software, but it is expected that by the end of an iteration, a new version is ready for release. At the end of each iteration, the team re-evaluates development priorities.

Agile methods emphasize face-to-face communication. Most team members work in a single office, sometimes referred to as a bullpen. The office includes at least a "customer" (product owner)—the person commissioning the software or a representative who defines the software requirements. The role of the "customer" can be filled by a project manager, a business analyst, or the client. The office may also include testers, interface designers, technical writers, and managers.

Metrics in Agile methods are tied to the functionality of the software under development. Practitioners of Agile methods (compared to those of other methods) communicate more and write less documentation, for which they are sometimes considered less disciplined.