Essentials
“Software development fails to deliver, and fails to deliver value. This failure has huge economic and human impact. We need to find a new way to develop software.”
Extreme Programming (XP) is a lightweight, incremental method, influential not only as a highly successful process (for smaller projects) but for the innovative practices (tools and techniques) described and the agile philosophy espoused.
XP values
- communication,
- simplicity,
- feedback and
- courage.
“For small projects, Agile, extreme programming and high-level programming languages are key practices because coding is the dominant activity for small applications.”
XP believes in
- rapid feedback,
- assuming simplicity,
- incremental change,
- embracing change and
- quality work.
“The exact limits of XP aren't clear yet. But there are some absolute showstoppers that prevent XP from working — big teams, distrustful customers, technology that doesn't support graceful change.”
XP practices
- pair programming,
- the planning game,
- short releases,
- simple design,
- metaphor,
- testing,
- refactoring,
- collective ownership,
- continuous integration,
- 40 hour week,
- with (at least one) customer on-site and
- coding standards.
“We can drive ourselves crazy with expectation. But by preparing for every eventuality we can think of, we leave ourselves vulnerable to the eventualities we can't imagine.”
XP separates traditional project management into
“XP is a lightweight, efficient, low risk, flexible, predictable, scientific, and fun way to develop software.”