Next: , Up: Code the Unit Test First   [Contents][Index]


9.2.4.1 Extreme Programming—A gentle introduction

../resources/images/project

Extreme Programming is successful because it stresses customer satisfaction. Instead of delivering everything you could possibly want on some date far in the future this process delivers the software you need as you need it. Extreme Programming empowers your developers to confidently respond to changing customer requirements, even late in the life cycle.

  1. Simple Rules
    1. Planning
      • User Stories
      • Release Planning—Release Schedule
      • Frequent small releases
      • Project divided into iterations
      • Iteration planning starts each iteration
    2. Managing
      • Open work space
      • Sustainable pace
      • Stand-up meeting to start each day
      • Project Velocity is measured
      • Move people around
      • Fix XP
    3. Designing
      • Simplicity
      • System metaphor
      • CRC cards
      • Spike solutions
      • No functionality is added early
      • Refactor
    4. Coding
      • Customer is always available
      • Code to agreed standards
      • Code the unit test first
      • Production code is pair programmed
      • One pair integrates code at a time
      • Integrate first
      • Dedicated integration computer
      • Collective ownership
    5. Testing
      • All code must have unit tests
      • All code must pass all unit tests
      • When a bug is found, tests must be created
      • Acceptance tests are run often