login as:
~/abapcraft.dev — code, crafted in SAP
florin@abapcraft:~/abap/posts/book-extreme-programming-explained $ cat README.md

Extreme Programming Explained — Kent Beck

The manifesto for XP — a development methodology built on values, principles, and practices that prioritise human connection, feedback, and continuous improvement over process and documentation.

What the book is about

Written by Kent Beck, Extreme Programming Explained is the book that introduced XP — Extreme Programming — to the software world. First published in 1999 and revised in a second edition in 2004, it is not a process manual or a framework specification. It is an argument for a different way of thinking about software development: one that starts with values, derives principles from those values, and grounds practices in those principles.

Beck’s central claim is that the practices of XP are not arbitrary rules — they are a coherent response to the nature of software development. Software requirements change. Teams learn as they build. The practices of XP are designed to make change cheap and learning fast.

Values

XP is built on five values that inform every practice:

Communication — most problems in software development are communication problems. XP structures the work to maximise communication: between developers, between developers and customers, and between the code and its readers.

Simplicity — do the simplest thing that could possibly work today. Do not build for a future you cannot see. Simplicity is not laziness — it is the discipline of solving the problem in front of you without adding complexity for problems that have not arrived.

Feedback — short feedback loops at every level. Tests give feedback on code. Releases give feedback on the product. Retrospectives give feedback on the team. The faster the feedback, the faster the learning, the cheaper the correction.

Courage — the courage to refactor code that works, to delete code that is no longer needed, to tell a customer that a deadline is not realistic. Courage without the other values is reckless. With them, it is what makes improvement possible.

Respect — every member of the team matters. Every contribution has value. Practices that treat developers as interchangeable resources or customers as obstacles undermine everything else.

Key practices

Test-Driven Development — write a failing test before writing any production code. The test defines what done looks like. The production code satisfies the test. Beck developed TDD as part of XP; TDD by Example is the deeper treatment of this single practice.

Pair programming — two developers, one keyboard. One writes code, the other reviews in real time. Roles rotate. Knowledge spreads across the team rather than concentrating in individuals. Defects are caught at the moment they are introduced, not weeks later in review.

Continuous integration — integrate code changes frequently — multiple times per day — and run the full test suite on every integration. Long-lived branches accumulate divergence and integration risk. Short integration cycles keep the codebase healthy.

Refactoring — continuously improve the internal design of the code without changing its behavior. XP does not treat refactoring as a separate phase — it is part of every development session, made safe by the test suite.

Small releases — release working software frequently, in small increments. Every release is an opportunity for real feedback from real users. Small releases reduce the risk of building the wrong thing for a long time.

The planning game — customers and developers collaborate on what gets built next. Customers define the value; developers estimate the cost. Decisions are made with both perspectives in the room. The plan is always provisional and always revisable.

Sustainable pace — XP explicitly rejects heroics and crunch. A team that works at a sustainable pace maintains quality, avoids burnout, and delivers consistently over time. Overtime as a permanent state is a warning sign, not a strategy.

The relationship to TDD by Example

TDD by Example and Extreme Programming Explained are companion books. XP defines the methodology; TDD is one of its central practices, examined in depth. Reading both together gives the full picture: XP explains why the practices exist and how they fit together; TDD by Example shows what one of those practices looks like in action, step by step.

Personal statement

Extreme Programming Explained is a short book with a large idea: that software development works better when it is humane, feedback-driven, and continuously improving. The practices are specific and actionable, but they are derived from values — which means they can be adapted to context rather than followed blindly.

What stays with me is the coherence of it. Each practice reinforces the others. TDD makes refactoring safe. Refactoring keeps the code simple. Simplicity makes pair programming productive. Continuous integration surfaces the feedback that the tests provide. The system is designed to hold together.

Among the books in this series, it is the one most concerned with the team and the process rather than the code. Read alongside TDD by Example and Growing Object-Oriented Software, Guided by Tests, it completes the picture of how test-driven, iterative development actually works in practice.