Over a million developers have joined DZone.

Martin Fowler on Extreme Programming

DZone's Guide to

Martin Fowler on Extreme Programming

· Agile Zone
Free Resource

Speed up delivery cycles and improve software quality with TestComplete. Discover the most robust automated testing tool for end-to-end desktop, mobile, and web testing. Try TestComplete Free.

Extreme Programming (XP) is a software development methodology developed primarily by Kent Beck. XP was one of the first agile methods, indeed XP was the dominant agile method in the late 90s and early 00s before Scrum became dominant as the noughties passed. Many people (including myself) consider XP to be the primary catalyst that got attention to agile methods, and superior to Scrum as a base for starting out in agile development.

Kent developed XP over the course of his consulting to Smalltalk projects in the late 80s and early 90s. The full set of practices that came to be known as XP were first used together in the C3 project (where I worked with Kent and learned about it). The name "Extreme Programming" came later as the approach was described, first informally on the WikiWikiWeb and then later in a series of books. Various teams took the description in the WikiWikiWeb and implemented XP themselves, thus replicating the methodology and showing it could be used outside its original home.

Kent describes XP by a progression of ideas from broad and abstract values through principles, to concrete practices - a progression that I find useful to apply in many other contexts. It popularized many practices that have since been widely used in software development, including: continuous integration, refactoring, TestDrivenDevelopment, and agile planning. I particularly like its combination of technical and management practices, which make it a good fit for reaching two-star agile fluency [1].

Although, like most XPers, I don't think it's terribly useful to judge a team on whether they are doing XP or not; I would say that most ThoughtWorks projects operate in a style that is primarily influenced by XP.

Further Reading

The definitive description of Extreme Programming is Kent's white book.


1: a contrast to Scrum which intentionally only includes management practices, and is thus vulnerable to becoming FlaccidScrum

Release quality software faster with TestComplete. Discover how to decrease testing times and expand test coverage with the most robust automated UI testing tool. Try free for 30 days.


Opinions expressed by DZone contributors are their own.


Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.


{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}