From the course: Agile Software Development

Extreme programming (XP)

- Extreme Programming or XP is a collection of software engineering practices. It was introduced by Kent Beck in 1996, when he was leading the development of a payroll system at Chrysler. XP is a lightweight, iterative, customer, and developer-focused methodology. XP has values, rules, principles, and practices. Extreme Programming uses weekly iterations. Each iteration or cycle starts with the customer providing a list of requirements that they would like delivered by the end of that week. The developers break the requirements or stories into tasks, and then estimate and assign the tasks to themselves. The XP team produces an implementation of user stories on a weekly basis. XP teams also have a quarterly cycle, which is the container for the weekly cycles. The quarterly cycle enables the team to do high-level planning and align their work with the long-term goals of the enterprise. Like Sprint Retrospectives in Scrum, the quarterly cycle is an opportunity for the XP team to reflect on themselves and improve the team's efficiency. The requirements in XP are expressed on index cards as stories. Stories are estimated by developers as soon as they are written. One of XPs core practice is Whole Team, which means the team is cross-functional, just like Scrum teams. The team has collective ownership of their work. One notable thing about XP is that the XP team includes customers. Another key practice is the idea of Energized Work. It means X PT members do not work overtime and only work the number of hours that they can be productive and sustain for a long period of time. XP members do not work when they are sick and stay away from work to make sure their coworkers do not get sick. XP members sit together, which means they are co-located and work in an environment that has minimal barriers to communication. The practice of informative workspace means the team is in a place where information is readily available. It could mean physical charts or posters that convey information about work status, assigned tasks, team values, et cetera. This information could also be present in the form of electronic dashboards. Any person walking into the workspace should receive this information in a matter of seconds.

Contents