Manifesto for Agile Software Development

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

Therefore, key agile principles became:

  • Deliver working software frequently
  • Working software is the primary measure of progress
  • The best architectures emerge from self-organizing teams
  • At regular intervals, the team reflects and adjusts

Design and architecture is a continuous activity that evolves with software.

Agile and CI enabled a new way to think about architecture.

Previously there were big, upfront, decisions:

  • Architects design the systems
  • Specs are handed off to developers
  • Architecture is frozen early
  • Changes and expensive Now:
  • Architecture emerged from development
  • Development is validated continuously by tests
  • Small changes are made and are frequently integrated
  • Architecture decisions can be revisited