
Agile is a philosophy that the best products are created by collaborative, empowered teams through the use of value-driven delivery, adaptive planning and continuous improvement practices. Agile processes are iterative in nature, and employ specific project management and engineering practices to sustain the rapid delivery of new product increments. This delivery style allows for the customer to inspect the product as its being built, capturing emergent requirements along the way. Additionally, agile focuses on building quality in versus inspecting it in; in other words, “QA” happens right alongside programming, or in some cases, precedes it, whereas traditional methods call for QA at the end of the development lifecycle. Keeping an eye on quality from day one of the project helps teams catch issues and defects early, thus lowering the cost of overall development of features. Rapid iteration also provides insight into the impediments that block teams and will help program stakeholders readily discover when risk isintroduced.
The AgileManifesto sums up the principles: “We are uncovering better ways of developing software and helping others do it. Through this work we have come to value: Individuals and interactions over process and tools, Working software over comprehensive documentation, Customer collaboration over contract negotiation and Responding to change over following a plan.
Scrum: Scrum is an iterative, incremental framework for project management often seen in agile software development, a type of software engineering. Although the Scrum approach was originally suggested for managing product development projects, its use has focused on the management of software development projects, and it can be used to run software maintenance teams or as a general project/program management approach. More from Wikipedia.
Extreme Programming (xp): Extreme Programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development, it advocates frequent "releases" in short development cycles (timeboxing), which is intended to improve productivity and introduce checkpoints where new customer requirements can be adopted. More from Wikipedia.
DSDM: Dynamic Systems Development Method (DSDM) is primarily a software development methodology originally based upon the Rapid Application Development methodology. In 2007 DSDM became a generic approach to project management and solution delivery. DSDM is an iterative and incremental approach that emphasizes continuous user/customer involvement. More from Wikipedia.
Lean Software Development: The term Lean Software Development originated in a book by the same name, written by Mary Poppendieck and Tom Poppendieck. The book presents the traditional Lean principles in a modified form, as well as a set of 22 tools and compares those tools to agile practices. Mary and Tom's involvement in the Agile software development community, including talks at several Agile conferences has resulted in such concepts being more widely accepted within the Agile community. More from Wikipedia.
Crystal Clear: Crystal Clear is a member of the Crystal family of methodologies as described by Alistair Cockburn and is considered an example of an agile or lightweight methodology. Crystal Clear can be applied to teams of up to 6 or 8 co-located developers working on systems that are not life-critical. Crystal Clear focuses on people, not processes or artifacts. More from Wikipedia.