Processes in Extreme Programming

Extreme Programming, or XP, is a software development methodology that takes Agile techniques to the next level. By working closely with the customer and designing, coding, and testing small pieces of the project quickly, a team delivers quality software extremely efficiently.

According to this article on c2.com, Extreme programming consists of four main processes. These processes repeat in short cycles with frequent releases to optimize productivity and be responsive to any changing requirements.

1. Listening

The development team pays close attention to the needs of the customer during the listening process. With the help of the team, the customer develops scenarios and stories describing how the software will work. Throughout the rest of the development process, scenarios and stories drive planning and testing, which make sure the code is doing what it should.

2. Designing

The design process is test driven and follows the principle of doing the simplest thing which passes the tests while solving the problem. This phase repeats, as with the other phases, through the process of refactoring, or restructuring, to better fit the needs of the project

3. Coding

Commonly, in Extreme Programming, developers do pair programming, where two programmers work together on the same code at once. Two sets of eyes make sure code is held to the highest of standards while passing all necessary unit tests.

4. Testing

After developers perform basic tests to make sure the code works, it is quickly integrated into the project and further acceptance testing occurs to make sure it is exactly what the customer wants.