What is Extreme Programming?
Extreme Programming (XP) is an agile software development framework that aims to produce higher quality software and higher quality of life for the development team. XP is the most specific of the agile frameworks regarding appropriate engineering practices for software development. XP is built upon values, principles, and practices, and its goal is to allow small to mid-sized teams to produce high-quality software and adapt to evolving and changing requirements.
Similar to other agile development, Extreme Programming aims to provide iterative and frequent small releases throughout the project, allowing both team members and customers to examine and review the project’s progress throughout the entire SDLC. XP model is very useful in small projects consisting of small teams as face to face meeting is easier to achieve. Projects involving new technology or Research projects face changes of requirements rapidly and technical problems. So XP model is used to complete this type of project.
How Does Extreme Programming (XP) Work?
XP, unlike other methodologies, is very opinionated when it comes to engineering practices. Values provide purpose to teams. They act as a “north star” to guide your decisions in a high-level way. However, values are abstract and too fuzzy for specific guidance. For instance: saying that you value communication can result in many different outcomes. Practices are, in some ways, the opposite of values. They’re concrete and down to earth, defining the specifics of what to do. Practices help teams hold themselves accountable to the values. For instance, the practice of Informative Workspaces favors transparent and simple communication.
Fundamental Values of Extreme Programming (XP)
Code Review: – Code review detects and corrects errors efficiently. It suggests pair programming as coding and reviewing of written code carried out by a pair of programmers who switch their works between them every hour.
Testing: – Testing code helps to remove errors and improves its reliability. XP suggests test-driven development (TDD) to continually write and execute test cases. In the TDD approach test cases are written even before any code is written.
Incremental development: Incremental development is very good because customer feedback is gained and based on this development team come up with new increments every few days after each iteration.
Simplicity: – Simplicity makes it easier to develop good quality code as well as to test and debug it.
Design: –Good quality design is important to create good quality software development. So, everybody should design good software daily.
Integration testing: –It helps to identify bugs at the interfaces of different functionalities. Extreme programming suggests that the developers should achieve continuous integration by building and performing integration testing several times a day.
These fundamental values provide the foundation on which the entirety of the Extreme Programming paradigm is built, allowing the people involved in the project to feel confident in the direction the project is taking and to understand their personal feedback and insight is as necessary and welcome as anyone else. XP is based on the frequent iteration through which the developers implement User Stories. User stories are simple and informal statements of the customer about the functionalities needed.