eXtreme Programming
eXtreme Programming (XP) is one of the new breed of Agile Methodologies. XP advocates a set of practices that generates very rapid development cycles and high quality code. An XP usually comprises 8 to 12 developers working in pairs.
Some of the most important principals and practices of XP are detailed below:
- Planning Process. Requirements are recorded on Story Cards and the Stories to be included in a release are determined by the time available and their relative priority. The developers break these Stories into development Tasks.
- Small Releases. The minimal useful set of functionality that provides business value is developed first. Releases of the system are frequent and incrementally add functionality to the first release.
- Simple Design. Enough design is carried out to meet the current requirements and no more.
- Test first development. An automated unit test framework is used to write tests for a new piece of functionality before that functionality itself is implemented.
- Refactoring. There is an onus on all the developers to refactor the code continuously as soon as possible refactorings are found. This keeps the code simple and maintainable.
- Pair Programming. Developers work in pairs, checking each others work and providing the support to always do a good job.
- Collective Ownership. The pairs of developers work on all areas of the system, so that no islands of expertise develop and all the code is owned by all the developers. Anyone can change anything.
- Continuous Integration. As soon as work on a Task is complete it is integrated into the whole system. After any such integration, all the unit tests in the system must pass.
- Sustainable pace. Large amounts of over-time are not considered acceptable as the net effect is often to reduce code quality and medium term productivity,
- On-site Customer. A representative of the end-user of the system (the Customer) should be available full time for the use of the XP team.
For a more detailed explanation of XP, see: