Understanding Extreme Programming (XP) and Its Core Values

Extreme Programming (XP), also abbreviated XP, is one of the most popular software development practices and methodologies that fall under the Agile umbrella.

XP was invented by Kent Beck in the early 1990s.

It's a lightweight software development discipline for the team that helps organizations produce high-quality software.

Core Values

XP has five core values -- Courage, Feedback, Respect, Communication, and Simplicity.

XP values

Let's dig deep into the core values.

Communication

Communication is the key factor in any project to be successful. Communication is important between your XP team and customers. It will make a smooth collaboration among team members.

For example, a face-to-face conversation between the team is much more effective than sitting down and sending emails back and forth.

The following are the success rates of communication strategy as per one study. You can compare how powerful face-to-face communication is.

Communication strategy

Effectiveness of communication strategies on Agile development teams, http://agilemodeling.com/essays/communication.htm.

Simplicity

Before I explain this, let me know which one is your favorite search engine, Google or Yahoo? Google, right?

Google or Yahoo
Image source: Google

A study shows that half of the features and requirements we build are never used by actual users. it will directly impact the cost of the project. 

Functions
Image source: Henrik Kniberg - crisp

XP Projects are characterized by easy layout and code that is flexible enough to accommodate changes as the necessities evolve.

This is like eliminating the complex architecture and design the approach is also known as the “You aren’t gonna need it” (YAGNI) approach to make sure that there is minimum to no waste of effort.

Feedback

In XP we have a shorter iteration, generally 1-3 weeks, and this allows the opportunity to review the product and get feedback from the users.

Rapid feedback from business stakeholders and end-users maintains the improvement team targeted at the solution's intended goals and helps make certain they supply high-value features. There is continuous build, integration, and running of automated test cases. It also follows the concept of fail-fast and fail-early, which works particularly well when the requirements are evolving.

Courage

The team is working together and has ownership so they feel supported, courageous, open, and challenged to go beyond their capabilities.

The team is courageous to tell what they will focus on in the code and design that is relevant to today's business needs and not think far ahead in the feature.

For telling the truth one needs courage.

Respect

Respect means as we work together, sharing success and failure, we respect each other, our agreements, and our commitments.

Respect is a key value when XP teams work together and respect variations and diversity. XP teams have collective ownership of code, design, and system architecture and hence everybody has accountability for the design, code, deployment, and build or the passing of a regression.

Summary

XP projects have shorter iterations. The shorter iteration not only helps to maintain discipline and focus but also practices efficiency with development practices like pair programming and test-driven development(TDD).

XP is found to work best in scenarios where the technology and project environment are uncertain requirements are unclear or frequent changes are there.

It will also help when the team is working with a new domain or technology and has to deliver working software frequently.

I hope you like this article. Knowledge doubles if you share it, so please share if you like this article.