Extreme programming is popular agile process. it is introduced in 6 march 1996.
EXTREME PROGRAMMING is efficient ,low risk,flexible,predictable,scientific and fun way to develop software. It is early,concrete and continuing feedback from short cycle.
It is an incremental planing approach.
It reliance on the automated written test by the programmer and customer to monitor the progress of development to allow system to evolve and locates the defects early .
EXTREME PROGRAMMING is a lightweight methodology for small to medium sized teams for developing software in rapidly changing environments.
EXTREME PROGRAMMING is successful because,it stress the customer satisfaction. extreme programming empowers the developers to confidently respond to the changing customer requirements.
Extreme programming emphasizes the team work.
Extreme programming customers , developers,managers are the equal partner in the collaborative team. it implements the simple ,effective environment which enables he team to become highly productive.
Extreme programming improves software project in five essential ways.
Extreme programming constantly communicate with their customers and fellow programmers.
They keep their design simple and clean. they get feedbacks by testing their software testing on day one. They deliver the system to customers as early as possible and implements changes as suggested. every simple and small success deepens their respect for the unique contribution of each and every team member.
With this foundation extreme programming are able to courageously respond to changing requirements and technology.
The flow chart shows how the extreme programming rules work together. Customers enjoy being partners in the software process,developers actively contribute regardless of experience level,and managers concentrates on communications and relationships.
Unproductive activities have been trimmed to reduce costs and frustration of every one involved.
The flowchart is shown in below
WHY THE “EXTREME” IN THE NAME?
Extreme programming takes common principles and practices to extreme level.
- If code reviews are good ,we will review the code all the time (pair programming).
- If testing is good,everybody will test all the time (unit testing), even the customers (functional testing).
- If the design is good,we will make it part of everybody’s life (refactoring).
- If short relations are good, we will make the relations really (planning game).
Extreme programmers work together in pairs and as a group,with simple design and improving the design continually to keep it always just right for the current needs.
EXTREME PROGRAMMING team use a simple form of planning and tracking to decide what should be done in next and to predict when project will be done.
The extreme programming team keeps the system integrate and running all the time. the programmers write all the production code in pairs.
The Extreme Programming team keeps the system integrated and running all the time. The programmers write all production code in pairs, and all work together all the time. They code in a consistent style so that everyone can understand and improve all the code as needed.
The Extreme Programming team shares a common and simple picture of what the system looks like. Everyone works at a pace that can be sustained indefinitely.
XP planning addresses two key questions in software development: predicting what will be accomplished by the due date, and determining what to do next. The emphasis is on steering the project — which is quite straightforward — rather than on exact prediction of what will be needed and how long it will take — which is quite difficult. There are two key planning steps in XP, addressing these two questions:
Release Planning is a practice where the Customer presents the desired features to the programmers, and the programmers estimate their difficulty. With the cost estimates in hand, and with knowledge of the importance of the features, the Customer lays out a plan for the project. Initial release plans are necessarily imprecise: neither the priorities nor the estimates are truly solid, and until the team begins to work, we won’t know just how fast they will go. Even the first release plan is accurate enough for decision making, however, and XP teams revise the release plan regularly.
Iteration Planning is the practice whereby the team is given direction every couple of weeks. XP teams build software in two-week “iterations”, delivering running useful software at the end of each iteration. During Iteration Planning, the Customer presents the features desired for the next two weeks. The programmers break them down into tasks, and estimate their cost (at a finer level of detail than in Release Planning). Based on the amount of work accomplished in the previous iteration, the team signs up for what will be undertaken in the current iteration.
Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by bringing the whole team together in the presence of simple practices, with enough feedback to enable the team to see where they are and to tune the practices to their unique situation.