Extreme Programming is a lightweight software develeping methodology. XP is the most popular of the 'Agile' development methodologies.
XP is an agile methodology for small to medium-sized teams developing software in the face of rapidly changing requirements.
XP consists of four parts: values, principles, activities, and practices.
XP is driven by a set of shared values that establish the tone for XP development.
The four values of XP:
Simplicity: We solve today's problems simply and trust tomorrow's will be solvable, too.
Communication: The focus is on oral communication not documents, reports, and plans. Without constant communication between all team members collaboration will wither and die.
Feedback: The nagging questions over the state of the system are answered by constant, concrete feedback.
Courage: courage is the confidence to work quickly and redevelop if required.
Five main Principles
Rapid Feadback: means developers use short feedback loops to quickly learn if their to-date product is meeting customers needs.
Assume simplicity: treating each problem as if it can be solved simply.
Incremental change: Sove problems with a series of small changes.
Embrace Change: Adopt a strategy that preserves options while solving pressing problems.
Quality work: XP elevates the importance of code and testing with test-first programming.
Activities: Listening, Testing, Coding, Designing
Practices: The planning games, Small releases, Metaphor, Simple design, Testing, Refactoring, Pair programming, Collective ownership, Continuous integration, 40 hour work week, On-Site customer, Coding standards.