XP is a collection of values, principles and practices designed to rapidly create highquality software that provides the maximum value for the customer as quickly as possible. It is called extreme or XP because it takes commonsense principles and practices to extreme levels, changing the way programmers work. It is a lightweight methodology suitable for small-tomedium-sized teams developing software that are faced with vague or rapidly changing requirements. XP began in the late 90’s. Ward Cunningham, Kent Beck, and Ron Jeffries are considered the originators. It is based on Beck’s years of software development using objectoriented programming (Brewer, 2001). “Beck and Jeffries worked together at Chrysler Corporation on the first large-scale project to use XP” ("Software development methodologies:," n.d., para. 2). Since the publishing in 1999 of Extreme Programming Explained by Beck, more publicity has been given to XP as is evident by an increase in books, papers, conferences and web sites.
Beck (2000) gives examples of taking well-known software development practices to extremes. By using pair programming, code reviews are continual, through unit testing and functional testing, testing is continual, integration is continuous by integrating and test several times a day, and considering short iterations, XP makes the iterations very short, minutes and hours vs., weeks and months and years (Beck, 2000).
XP has with five values: communication, feedback, simplicity, courage, and respect. These values are expanded into fourteen principles and again into practices. These practices are specific things that teams can do day-to-day, while values are the fundamentals that strengthen the approach. Although many sources of information about XP list 12 key practices, these have been updated and now list 13 primary practices and 10 secondary practices (Goodpasture, 2010) described below:
Primary Practices Sit Together
Explanation The team should be co-located to allow face-to-face communication and collaboration.
The XP team is multidisciplinary, including both functional and technical experts, not just developers.
Use visuals to communicate work in-progress and where you are in the development process. These visuals may be big visible charts, a story wall, white board(s) or sticky notes. The key is to relay information without requiring a lot of time interpreting.
The diverse XP team should work at a sustainable (for a nearly indefinite period) pace, emphasizing that there be no crisis management at the end. With redundant skills on the team, members can come and go for short periods without slowing development.
Two engineers participate in one development effort, programming in teams, sitting together and jointly solving problems. This contrasts with most conventional methods were programmers work individually. Stories (User Stories) Units of customer functionality are planned in stories related in business terms by embedded customers and interpreted into design requirements by the team. Weekly Cycle Quarterly Cycle Work is completed in weekly cycles. The project depends on business cycles for approvals, funding and often the rollout schedule. For this reason, XP projects must remain aware of current business cycles. Slack To ensure a minimum of must have requirements are delivered to production and also ensure all time boxes are finished on schedule without holding up others, build buffers into the schedule. Ten Minute Build Decompose requirements to allow...