Agile Preferences and Practices

The Manifesto for Agile Development declares four preferences and twelve principles.

It may be a coincidence, but the principles seem to nest comfortably under the preferences.

The four preferences

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

The twelve principles

  • Individual and Interactions 

    • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
    • The most efficient and effective method of conveying information to-and-within a development team is face-to-face conversation.
    • The best architectures, requirements, and designs emerge from self-organizing teams.
  • Working Software 

    • Working software is the primary measure of progress.
    • Continuous attention to technical excellence and good design enhances agility.
    • Simplicity -- the art of maximizing the amount of work not done – is essential.
  • Customer Collaboration

    • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
    • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
    • Business people and developers must work together daily throughout the project.
  • Responding to Change 

    • Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
    • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
    • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.