Extreme programming is a fast iterative approach:

  • new versions may be built several times per day
  • increments delivered every 2 weeks
  • all tests must run for every build
  • build is only accepted if tests run successfully

There are some key principles when doing XP:

  • incremental planning: user stories / cards for requirements; prioritisation for planning per release cycle; stories broken into dev. tasks by developers
  • small releases: minimum viable product; frequent, incremental releases
  • simple design: just enough design
  • test-first development: write tests before solution; automate test execution
  • refactoring: continuously refactor code to keep it simple and maintainable
  • pair programming: developers work in pairs
  • collective ownership: everyone can make changes everywhere; everyone is responsible for the quality of the whole code base
  • CI: regular releases, supported by powerful tooling for integrating and testing
  • sustainable pace: overtime is not considered acceptable
  • on-site customer: full-time end-user representative on team