Extreme Programming (XP)

Extreme Programming (XP)

Introduction

Extreme programming (XP) is a software development methodology that is a part of an agile methodology. It frequently responds to changing customer requirements.

Extreme programming (XP) is the widely used agile process that was proposed by Kent Beck in the 90s. XP aims to produce high-quality software and quality life for the development team. It is one of the most appropriate practices for software development. It is developed the problem of frequent software change. Extreme programming supports frequent software release in short development cycle.

It is necessary to improve it further by accepting feedback from the customers. After receiving the feedback, the development team again works on it and provides a new software release until the customers is satisfied. It is named Extreme because it increases efficiency. It is a lightweight methodology where customer can involve throughout the project. It ensures the application of principles and values in an effective manner.

extreme programming

When to use extreme programming?

  • If the system’s features expect to change.
  • If the customer wants to track his system being developed.  
  • When there are tight deadlines.
  • If there are small development teams with few developers.

The five values of Extreme programming (XP)

Communication

Communication is one of the most important parts of any project. Proper communication leads to proper development. Miscommunication can lead the project to the wrong path and cause disasters. Without communication a customer cannot get the software he wants. There must be proper communication with the development teams in order to plant and work on the project.


Simplicity

Extreme programming follows KIS (Keep it simple) principle. The easiest way to understand the project is to keep it simple that can be understood by both customers and developers. Simplicity maximizes the value for investment. Also, the developers and testers can easily understand simple code and design.


Feedback

Feedback helps you to improve the system being developed. It works as the guidelines for the project. If the customer does not provide feedback about the software release, the developer team does not improve the system believing that the customer is satisfied. Feedback is necessary and should be provided to the development teams.


Courage

Courage is to provide the confidence to the developers to take bold decisions. If the programmer gets the confidence, they can reuse the code when needed to improve the system. It supports lead developers in deciding to make the rest of the developers work more efficiently. If a programmer is stuck in a problem, he needs a courage to solve it quickly the other day. 


Respect

Respect is the most valuable thing in this universe. Everyone must respect each other. In extreme programming, everyone is working hard to finish the project before the tight deadline. We must give respect for their hard work for our system development. Everyone contributes value.


Benefits

  • Follows the KIS (keep it simple) principle.
  • It reduces the risks related to programming.
  • XP influences the power of simplicity.
  • It allows developer to focus on coding instead of paperwork that reduces the cost.
  • Customer feedback is take in each iteration.
  • It contributes increasing employee satisfaction and retention.

Drawbacks

  • XP focus on coding rather than design.
  • Lots of pressure on working with tight deadlines.
  • Requires customer interaction for functionality implementation.
  • It does not measure code quality assurance.
  • It is not suitable if programmers are distributed in different places.
  • Lack of documentation may lead to occurrence of smaller bugs.