Extreme Programming



  1. Planning
    • User Stories: User stories are written.
    • release plan: Release planning creates the release schedule.
    • release often: Make frequent small releases.
    • iterative: The project is divided into iterations.
    • iteration planning: Iteration planning starts each iteration.
  2. Managing
    • optimize: last Give the team a dedicated open work space.
    • steady pace: Set a sustainable pace.
    • stand-up meeting: A stand up meeting starts each day.
    • project velocity: The Project Velocity is measured.
    • move people around: Move people around.
    • Fix XP: Fix XP when it breaks.
  3. Designing
    • simplicity: Simplicity.
    • System Metaphor: Choose a system metaphor.
    • CRC cards: Use CRC cards for design sessions.
    • Spike solution: Creates spike solutions to reduce risk.
    • nothing early: No functionality is added early.
    • refactor: Refactor whenever and wherever possible.
  4. Coding
    • customer on-site: The customer is always available.
    • coding standard: Code must be written to agreed standards.
    • Test Driven Development: Code the unit test first.
    • pair programming: All production code is pair programmed.
    • serial integration: Only one pair integrates code at a time.
    • continuous integration: Integrate often.
    • continuous integration: Set up a dedicated integration computer.
    • collective ownership: Use collective ownership.
  5. Testing
    • unit tests: All code must have unit tests.
    • unit tests: All code must pass all unit tests before it can be released.
    • tests: When a bug is found tests are created.
    • acceptance tests: Acceptance tests are run often and the score is published.