XP introduction

XP introduction
XP is an Agile iterative development approach in which the main focus of activity is the
development of the code.
Requirements analysis
User requirements are defined by user stories. User stories have to be independent of one
another, small, easy to estimate and test as well as be valuable to the customer.
Independence means the stories can be developed in parallel. Small user stories means that
progress can be measured more easily. Testable means that quality can be assured
objectively. Valuable to the customer is important as customer value can be observed as the
project is completed.
Pair programming
The code is developed using an approach called pair programming. In pair programming, one
developer called the driver develops the code while the other the observer makes
comments and suggestions. Pair programming reduces the chance of poor quality code and
spreads code ownership between the developers. There is research evidence from [Williams
et al. 2000] that pair programming increases the time to develop by 15% but reduces the
number of bugs by 15%. Research by [Lui 2006] found that pair programming was
particularly useful for complex tasks and that novices gained more than experts.
XP process
User stories are written (customers and developers), then the user stories are estimated.
(developers)
The user stories are prioritized and then a project plan is draw up, working out which user
stories will be completed first and how long the iteration will be for each stage of the
development. In each iteration a working copy of the code is developed for evaluation.
Software is released on a regular schedule (weekly, fortnightly), the development uses test
driven development and is tested using unit tests developed by development team.
Finally there are acceptance tests, specified by customer, these can be script (user input,
acceptable output) and ideally also automated.