Extreme Programming (XP)

Extreme Programming (XP) is a process of Agile Development. Rather than a set of static processes, XP serves as an ethos created to increase productivity, and ensure the production of high-quality code.

The concepts of Extreme Programming are outlined by a simple set of rules related to five phases of software development:

  • Planning

  • Managing

  • Designing

  • Coding

  • Testing.

Since its beginnings in 1996, the concepts and principles of extreme programming such as communal code ownership are now standards for improving software development.

History

The Extreme Programming Project was born out of the ashes of the Chrysler Comprehensive Compensation System (C3), a payroll project at Chrysler spanning from 1993 to 1999.

The practice of Extreme Programming was defined by the approach implemented by the C3 development team. There were a number of influential software engineers that were responsible for shaping XP, including:

The Birth of Extreme Programming at Chrysler

Kent Beck coined the term "Extreme Programming" as a way to describe the methodology and practices used by the software engineers on the C3 project.

When Kent Beck was hired on as the lead developer of the C3 project in 1996, three years into the project, the program still didn't work. Despite over two more years of development time, and millions of dollars in costs, the C3 project was discontinued in 1999.

But, it was the C3 project's early success that sparked the rise of XP. The real breakthrough was the C3 team's ability to increase productivity — and code quality — by implementing principles of hardware manufacturing, ie Lean manufacturing, to the process of software development.

According to Martin Fowler:

The project began some serious development work, in Smalltalk, in 1995, but was not able to reach a stable state and was restarted under Kent Beck's lead in 1996. It was this rebooted project that first pulled together all the practices that became known as Extreme Programming (although Kent had used similar approaches on previous projects.)

Members of the C3 project continued to develop the XP project after the end of the C3 project was announced in 1999. XP as an ideology slowly gained traction over the next two decades. It's methods and principles would go on to be adopted by leaders in the software development community across the globe.

  • Extreme Programming 20 Years Later by Kent Beck: the creator of extreme programming speaks at the Lean IT Summit about the history of XP, and how it's changed since the beginning.

  • Agile Manifesto: this historically significant framework was part of a movement to create a set of criteria to improve software development methods. This manifesto is one of the most successful guides for software engineering.

  • Chrysler Comprehensive Compensation System (C3): this article outlines the details of the Chrysler C3 project, a payroll software development project that spawned the birth of Extreme Programming.

  • SmallTalk: this paper gives you an overview of the SmallTalk computer language, which played an important role in the story of software engineering, and XP.

  • The Vehicle Cost and Profit System (VCAPS): was a software project at Ford Motor Company that was improved due to the adoption of XP methodology.

  • Test Driven Development (TDD): TDD is central to XP. Learn about it here from Agile Aliance.

Resources

The links below will take you to resources related to Extreme Programming. We collected a variety of links to important websites, books, and community portals where you can learn more.

Online

Books

Communities and Classes

  • Extreme Programming: Don Wells' website has a wealth of information on XP.

  • Lean IT summit: an annual conference on applying the principles of Lean manufacturing to software engineering.

  • Hendrix On XP: this site has information on classes taught by masters in their field.

  • Thoughtworks: thoughtworks events feature presentations given by some of the most influential minds in the field.

  • Industrial Logic: an Agile consulting agency that specializes in teaching the fundamental principles of Agile.

XP Continues to Leave Its Mark

The principles and values introduced by extreme programming revolutionized software development. Many of today's best practices derived from the practice of XP.

While the practice of extreme programming has evolved over time and methodology may vary from project to project, the core concepts remain the same.

XP emphasizes test driven development, extensive code review, constant feedback, collaboration, and accountability. Even if the term "Extreme Programming" dies out, the imprint of its influence continues to iterate in today's best industry practices and standards.


Further Reading and Resources

We have more guides, tutorials, and infographics related to coding and development:

What Code Should You Learn?

Confused about what programming language you should learn to code in? Check out our infographic, What Code Should You Learn?

It not only discusses different aspects of the languages, it answers important questions such as, "How much money will I make programming Java for a living?"