What is it?

Extreme Programming, also called XP, is an Agile methodology used for Software Engineering teams, which encourages incremental changes and fast feedback while maintaining software quality over the life cycle of the project.


Applying Extreme Programming

Extreme Programming is better suited for smaller teams working with dynamic software requirements, managing goals instead of activities and working together.

Software development in XP is based on Test Driven Development, with the objective of providing the better software possible. Pair programming also makes a huge impact, once it can prevent bugs from happening at the time its being coded. This makes it so that developers prove that the code works, instead of the customer proving the code is broken.


Life cycle of Extreme Programming

The life cycle of an XP project follows five steps:

  • Planning

    Clients define their needs in descriptions known as user stories. The development team then transform user stories to separate tasks, which each will have its own time and effort estimates.

  • Design

    The development team, based on the user stories, will decide which programming language, environment, framework and architecture so be used in the product.

  • Coding

    The development team will actually code. This is done in iterations of Test Driven Development, with regular testing and pair programming, with the objective of detecting bugs early in the process.

  • Testing

    The development team write automated tests to ensure that the code is working as expected. This guarantees that bad code is not delivered to the user.

  • Listening

    At this point, the software must be delivered to the customer, which will provide feedback and inputs to make it better.