EXTREME PROGRAMMING

To improve the quality standards of the life of the development team and also production of a high-quality software product we use Extreme Programming (XP). Extreme Programming is an agile software development framework. It is used for improving the software quality which meets the customer requirements. It provides values and principles to guide the team behaviour. It recommends taking the best practices that have worked well in the past, analysing the program development projects to extreme levels. 

RULES OF EXTREME PROGRAMMING: 

These are the values to be followed to guide the team: 

1.Communication 

2.Simplicity 

3.Feedback 

4.Respect 

5.Courage 

PRINCIPLES OF EXTREME PROGRAMMING: 

1.Rapid Feedback: 

To receive feedback, understand it and respond to it in the right way. Responding to the feedback as quickly as possible making sure it doesn’t take much time. It should be responded within seconds or minutes but not days. 

After the developer’s design, implementation and testing of the product, the review of the feedback by the customers after checking it takes place and ends within days or week. 

2.Quality work: 

A valuable product is only produced when the team works well. Team co-ordination is very important. Bringing out an excellent product is that, producing a valuable quality product. The developers should enjoy their work, work well and feel proud of it. 

3.Incremental Changes: 

Large changes made in the problem will not work. Small changes made will be effective. Step-by-Step changes will help in improvement of the product rather than bigger changes made at once. 

4.Simplicity: 

Developers should concentrate more on YAGNI (You Ain’t Gonna Need It) and DRY (Don’t Repeat Yourself) principle. Easily refactor the code to do additional unit tests by using good unit tests.  

Avoid having multiple copies of similar code and redundant copies of information. By focusing on what is important today and trying solve the issues within today itself will solve the complexity. 

5.Embracing Change: 

According to the client needs, the product should be modified and the programmers should plan before head for the implementation with new requirements given by the clients and should come up with a decision. 

APPLICATIONS OF EXTREME PROGRAMMING: 

1.Small projects: 

This is achieved through face-to-face discussion in smaller teams handling small projects and is very useful. 

2.Research Projects: 

In research projects, changes of requirements will be made usually and also, they face technical problems, which leads to the usage of Extreme Programming (XP) to complete those projects. 

When Extreme Programming can be used? 

1.When the software requirements change dynamically. 

2. Small, co-located extended development team. 

3. Automated unit and functional tests are allowed by the technology you are using. 

4. Risks caused by the fixed time projects using new technology. 

Fig 1: Phases of Extreme Programming

ADVANTAGES OF EXTREME PROGRAMMING: 

1.Reduced documentation. 

2.High-quality products with less bugs. 

3.Stable well-performing systems with minimal debugging. 

4. Constant communication provides high level of visibility and accountability. 

5.Less overtime is practiced and allows all team members to keep up with the project progress. 

DISADVANTAGES OF EXTREME PROGRAMMING: 

1.Pair programming takes more time  

2.Tight deadlines can also become a source of stress. 

3.Documentation lacks clear requirements and specifications, leading to the project scope creep. 

4.Regular meetings with the clients often take a great deal of time. 

5.Unrealistic to accurately estimate the scope, cost, and time.