Skip to main content

Extreme Programming

Updated 2 min read

Share this page

Send the link, quote the definition with a link back, or show it as a card on your own site.

https://softwaredictionary.org/terms/extreme-programming

In short

Extreme Programming is an Agile method built on engineering practices such as pair programming, test-driven development, and continuous integration.

What is Extreme Programming (XP)?

Extreme Programming, usually called XP, is an Agile software development method that takes proven engineering practices and turns them up to the extreme. If code review is good, review code all the time by pairing; if testing is good, test constantly by writing tests first. Kent Beck created XP in the late 1990s while working on a payroll project at Chrysler and described it in the 1999 book Extreme Programming Explained. Its values are communication, simplicity, feedback, courage, and respect.

XP teams work in short iterations, often one week, and release small changes frequently. Core practices include planning with user stories, pair programming, test-driven development, continuous integration many times a day, frequent refactoring, simple design that avoids building for imagined future needs, collective code ownership so anyone can improve any code, and a sustainable pace without constant overtime. XP also asks for a customer or customer representative who is always available to answer questions and set priorities.

XP is like a professional kitchen where every cook tastes each dish as it is made, two chefs work on the most important plates together, and the menu is adjusted every week based on what diners say. It suits small to medium teams facing changing requirements, and many practices it popularized, such as TDD, continuous integration, and refactoring, are now standard even on teams that have never used the name XP.

Extreme Programming is often compared with Scrum. Scrum is a framework for organizing work, with roles, events, and a backlog, and it says nothing about how to write code, while XP focuses mainly on engineering practices. The two combine well, and many teams use Scrum to structure their process and XP practices to keep code quality high.

Key takeaways

  • XP is an Agile method centered on engineering practices.
  • Key practices include pair programming, TDD, continuous integration, and refactoring.
  • Iterations are short and releases are small and frequent.
  • Its values are communication, simplicity, feedback, courage, and respect.
  • XP complements Scrum, which focuses on organizing the work rather than writing code.

Readers ask

What is the difference between XP and Scrum?

Scrum defines how a team plans and organizes work through roles, events, and a backlog, but not how to write code. XP defines engineering practices such as pair programming and test-driven development, so many teams combine the two.

Who created Extreme Programming?

Kent Beck created XP in the late 1990s, working with Ward Cunningham, Ron Jeffries, and others. Beck described the method in his 1999 book Extreme Programming Explained.

Is Extreme Programming still used?

Few teams follow every XP practice by name, but its core practices, including test-driven development, continuous integration, refactoring, and pair programming, are now widely used across the industry.

See also

Spotted a mistake or something missing on this page?Suggest an edit

Read a random page
Open today's review
Switch to the dark theme
Read this page in Türkçe

More

Settings