What is Extreme Programming, and why is it so famous ?
Filed Under Terms, Process, Development, Software | Posted on December 11, 2007
There is an incredible amount of buzz over Extreme Programming; it is in many cases touted as the development process that is better than the traditional waterfall and spiral model for today’s world, with more customer responsiveness and more real-life. So what is exactly is Extreme Programming ?
Extreme Programming (or XP) is a software engineering methodology, one of several agile software development methodologies, prescribing a set of daily stakeholder practices that embody and encourage particular XP values. Proponents believe that exercising these practices—traditional software engineering practices taken to so-called “extreme” levels—leads to a development process that is more responsive to customer needs (”agile”) than traditional methods, while creating software of better quality.
Extreme Programming was created by Kent Beck during his work on the Chrysler Comprehensive Compensation System (C3) payroll project. Kent Beck became the C3 project leader in March 1996 and began to refine the development method used in the project. Kent Beck wrote a book on the method, and in October 1999, ‘Extreme Programming Explained’ was published. Although the project was canceled, the method caught on; currently, Extreme Programming is used in a large number of cases.
Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by bringing the whole team together in the presence of simple practices, with enough feedback to enable the team to see where they are and to tune the practices to their unique situation. XP is extreme in the sense that it takes 12 well-known software development “best practices” to their logical extremes — turning them all up to “10″
Extreme Programming techniques can be viewed as methods for rapidly building and disseminating institutional knowledge among members of a development team. The goal is to give all developers a shared view of the system which matches the view held by the users of the system. To this end, Extreme Programming favors simple designs, common metaphors, collaboration of users and programmers, frequent verbal communication, and feedback.
XP planning addresses two key questions in software development: predicting what will be accomplished by the due date, and determining what to do next. The emphasis is on steering the project — which is quite straightforward — rather than on exact prediction of what will be needed and how long it will take — which is quite difficult.
The main aim of XP is to reduce the cost of change. In traditional system development methods, the requirements for the system are determined at the beginning of the development project and often fixed from that point on. This means that the cost of changing the requirements at a later stage (a common feature of software engineering projects) will be high. XP sets out to reduce the cost of change by introducing basic values, principles and practices. By applying XP, a system development project should be more flexible with respect to changes.
XP improves a software project in four essential ways; communication, simplicity, feedback, and courage. XP programmers communicate with their customers and fellow programmers. They keep their design simple and clean. They get feedback by testing their software starting on day one. They deliver the system to the customers as early as possible and implement changes as suggested. With this foundation XP programmers are able to courageously respond to changing requirements and technology.
Leave a Reply