Introduction
Pair Programming
XP assumes that people work best in pairs so that they complement each other's strengths and weaknesses and so that knowledge can be spread between members of the team. The benefits as far as design, bug elimination, etc., can make two programmers at one computer be much more effective than they would be if they were each at separate computers.
Benefits of pair programming.
Economics, Satisfaction, Design quality, Continuous Reviews. Problem solving.Learning. Team Building and Communication.Staff and Project Management.
Stories and Test/Requirement-Driven Development
A project's requirements are laid out as individual stories. These stories have test cases. A test case includes the test and the desired results which, if met, indicate that that story is complete.
The project is done in iterations. At the end of an iteration, the next iteration is planned out in an iteration planning meeting. The customer (with the developers' guidance, of course) decides what stories are to be implemented in the next iteration, based on what is most important to them, and what is most practical to implement next.
It is important that each iteration takes just as long as all the others in a given project. The time that it took to complete a given story is recorded so that the programmers get a good feel for how much effort it takes to do that type of work.
The stories are broken down into tasks, which are the steps needed to implement a given user story. Developers then sign up to do those tasks.
On the completion of an iteration, acceptance tests are done to ensure that the test cases defined in that story have been met. The acceptance tests include both automated unit testing, and customer testing. This makes sure that all requirements are reached because the development is based around those requirements and there are definite indicators on whether a given requirement is met. It also breaks down the project into reachable goals rather than having programmers work away forever on an ever-expanding megalith.
Continuous Integration
Continuous integration eliminates the headaches of working with outdated code and trying to integrate fragmented or diverging code into the system.


No comments:
Post a Comment