A Taste of Extreme Programming

Agoda Engineering
Agoda Engineering & Design
2 min readAug 26, 2022

by Joel Dickson

Extreme Programming is a software development process designed to help developers create a high-quality product. The process is broken down into simple steps, making it easy to follow. Although the name implies that it is an extreme method, it is very disciplined and customer-centric.

In our last tech talk, Joel Dickson, Director of Engineering at Agoda, talked about extreme programming. Watch the video below for the full talk.

What is Extreme Programming (XP)

Extreme Programming (XP) is an agile software development framework that aims to produce higher quality software and higher quality of life for the development team. XP is the most specific of the agile frameworks regarding appropriate engineering practices for software development.

XP is not only a set of best practices to help you manage projects but also a set of values that will help your team work faster and collaborate more effectively.

Values and Principles of Extreme Programming

Extreme programming is characterized by a set of values and principles Ken Beck described in the late 1990s. These values and principles also promote more effective teamwork and better product quality.

Extreme programming values include communication, simplicity, feedback, courage, respect, etc.

A principle is a bridge that shows you how to connect to your values and practices. Principles include humanity, failure, economics, diversity, baby steps, accepted responsibility, mutual benefit, etc.

Some of the practices include;

  • Sit Together
  • Whole team
  • Informative Workspace
  • Energized Work
  • Pair programming
  • Stories
  • Weekly Cycle
  • Quarterly Cycle
  • Slack
  • Ten-Minute Build
  • Continuous Integration
  • Test-First Programming
  • Incremental Design

Extreme Programming vs. Scrum

Extreme programming, by nature, has a lot in common with other agile methodologies, but it’s also unique among them.

Scrum is a lightweight framework that helps people, teams, and organizations generate value through adaptive solutions for complex problems.

Scrum implements the scientific method of empiricism. It replaces a programmed algorithmic approach with a heuristic one, with respect for people and self-organization to deal with unpredictability and solve complex problems.

The difference between XP and scrum is that it starts with values. XP has values and principles that help you connect the practice to the principles. The engineering practices are what XP is commonly known for (Example Pair Programming).

XP’s primary contribution to the software development world is an interdependent collection of engineering practices that teams can use to be more effective and produce higher-quality code.

References

Extreme Programming by Kent Beck

Watch other Tech Talks on YouTube here.

--

--

Agoda Engineering
Agoda Engineering & Design

Learn more about how we build products at Agoda and what is being done under the hood to provide users with a seamless experience at agoda.com.