Agile

Sub Topic
Knowledge Work Industrialization

Overview

  • Collaborative effort of self-organizing and cross-functional teams with their customer(s) /end user(s)
  • Adaptive planning
  • Evolutionary development
  • Early delivery
  • Continual improvement
  • Flexible responses to changes in requirements, capacity, and understanding of the problems to be solved.

Agile Values

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

Agile Principles

  1. Customer satisfaction by early and continuous delivery of valuable software.
  2. Welcome changing requirements, even in late development.
  3. Deliver working software frequently (weeks rather than months)
  4. Close, daily cooperation between business people and developers
  5. Projects are built around motivated individuals, who should be trusted
  6. Face-to-face conversation is the best form of communication (co-location)
  7. Working software is the primary measure of progress
  8. Sustainable development, able to maintain a constant pace
  9. Continuous attention to technical excellence and good design
  10. Simplicity—the art of maximizing the amount of work not done—is essential
  11. Best architectures, requirements, and designs emerge from self-organizing teams
  12. Regularly, the team reflects on how to become more effective, and adjusts accordingly

History

  • 1957: Iterative and incremental software development methods [10] 1970s (early): Evolutionary project management[11][12]  and adaptive software development[13][14]
  • 1991: rapid application development (RAD), from 1991;[15][16]
  • 1994: the unified process(UP) and dynamic systems development method (DSDM),
  • 1995: Scrum
  • 1996: Crystal Clear and extreme programming  (XP)
  • 1997: feature-driven development (FDD)
  • 2001: 17 software developers met at a resort in Snowbird, Utah to discuss lightweight development methods and together published the Manifesto for Agile Software Development. They were: Kent Beck (Extreme Programming), Ward Cunningham (Extreme Programming), Dave Thomas (Ruby), Jeff Sutherland (Scrum), Ken Schwaber (Scrum), Jim Highsmith (Adaptive Software Development), Alistair Cockburn (Behavior-Driven Development), Robert C. Martin (SOLID), Mike Beedle (Scrum), Arie van Bennekum, Martin Fowler (OOAD and UML), James Grenning, Andrew Hunt , Ron Jeffries (Extreme Programming), Jon Kern, Brian Marick (Ruby, TDD), and Steve Mellor (OOA).[5]
  • 2005: a group headed by Cockburn and Highsmith wrote an addendum of project management principles, the PM Declaration of Interdependence,[19] to guide software project management according to agile software development methods.
  • 2009: a group working with Martin wrote an extension of software development principles, the Software Craftsmanship Manifesto, to guide agile software development according to professional conduct and mastery.
  • 2011: the Agile Alliance created the Guide to Agile Practices (renamed the Agile Glossary in 2016),[20] an evolving open-source compendium of the working definitions of agile practices, terms, and elements, along with interpretations and experience guidelines from the worldwide community of agile practitioners.

Although these all originated before the publication of the Agile Manifesto, they are now collectively referred to as agile software development methods.[7] At the same time, similar changes were underway in manufacturing[17][18] and management thinking.

Related

  • Scrum
  • Kanban