Extreme Programming, also referred to as XP, is a lightweight software development method. The basic concept of the methodology is to start simple, break the project into a number of iterations with each one ending in a thoroughly tested release that can work in a limited manner.
The iterations are then combined together in a particular structure that simplifies and expedites the development of the software. This methodology doesn’t use a complete structure that is developed through time-consuming and careful analysis.
XP focuses on team work and applies a basic but effective method for enabling groupware style development. A typical XP team is made up of developers, customers and managers, all of whom work together to deliver quality software. The teams rely on a simple planning and tracking method to determine the next course of action and calculate when the project can be completed.
The team is focused on the business value of the software. The system is developed in a chain of small but integrated iterations that have to pass all the tests. This helps the team to respond easily to the ever-changing requirements at any stage in the life cycle of the software.
The objective of extreme programming is to resolve productivity and work as a pathway for improvement. It is a style and discipline for software development. The primary goal of the methodology is to reduce the cost of change.
In conventional software development methods, the requirements are defined at the start of the project, and they remain fixed from the beginning. Thus the cost of any change in requirements in the future stages can be quite high due to the needed extra amount of work.
Extreme Programming recognizes 5 values. Initially, there were 4 values, but a new one was added in a later edition. These are communication, simplicity, courage, feedback and respect. Those who support this methodology claim that the only crucial product in the software development process is the code. Without it, there will be no functional product.