XP consists of a set of rules and practices that govern all areas of software development: planning, designing, coding and testing. These practices emphasize interaction and collaboration between the engineering team and the stakeholders and users, as well as the ability to respond quickly to changes in order to produce working software. The goal of XP is to lower the cost of change. Uncontrolled changes are the most common cause of software project failure; by putting basic XP principles and practices in place, a project team can control the changes.