• E
  • Extreme Programming

What is Extreme Programming?

Extreme Programming (or XP) was created as a method of rapid development to provide a flawless product while working 40 hours a week. The development team is formed around the customer, or a business representative who works in close contact with them daily. Developers work in pairs staying focused on the business value of the project and the correspondence of the code to the current needs. Every member of the team has access to each part of the code and is free to improve on it. All members of the team share the vision of the product and are equally responsible for the code.

The core practices of Extreme Programming explained

Whole Team

All team members sit in an open space: developers, analysts, testers, team coach or a Project Manager and the “Customer”. The customer is the source of requirements and priorities, the rest is on team.

Planning

At this stage, the team considers two main questions: what has to be done by the due date and what to do next. The main priority is on steering the project, and not the forecasting of what may or may not happen. According to this there exist two types of planning: Release Planning and Iteration planning.

  • Release Planning: the customer provides a list of desired features, and the team estimates the difficulty of implementing them. Being given the costs and the importance of these features, the Customer creates an approximate plan of the project, which will be revised later on a regular basis.
  • Iteration Planning: this works in two-week iterations, delivering a working software at the end of each. Each iteration that follows is estimated by the team based on the previous one.

Customer Tests

The team builds automation tests as defined by the Customer to prove that the desired features work as intended. Automation tests are used instead of manual tests, due to lack of time.

Small Releases

XP teams releases new working chunks of the product as frequently as possible.

Simple Design

The team builds simple software, suited for the current needs. Nothing extra.

Pair Programming

Developers literally work shoulder to shoulder so that the code is permanently reviewed and improved by another programmer. Sometimes the pairs switch to allow developers learn from each other and master new skills. Two heads are WAY better than one!

Test-Driven Development

Short cycles of work that include testing give immediate feedback on the quality of the code, and helps to avoid mistakes in the future. Any code is tested, and all the tests have to be run correctly.

Continuous Integration

Extreme Programming here is definitely extreme: it is OK for XP teams to release builds more than once per day. Don’t believe it? Read more in our “Continuous Integration” glossary article.

Collective Code Ownership

Any pair of coders can revise and improve any code any time. Extreme programming means that code is seen by many developers which helps to avoid lots of defects, and subsequently saves time for rework.

Coding Standard

There exists a code standard so that the code is consistent, familiar to each developer from the team and looks like the product of a single person.

Sustainable Pace

The team works in a way that helps to ensure maximum productivity, avoiding burnout.

Let's connect.

Book a call

Book a one-on-one consultation with our business consultants