Subscribe by Email

Monday, July 11, 2011

What is Extreme Programming? What are the principles and key activities of Extreme Programming?

Extreme Programming aims at improving the quality of the software. The key elements of extreme programming include code reviews, unit testing, code simplicity, changes in customer's requirements, frequent communication with customers and programmers.

The basic principles of Extreme Programming are quality work, incremental change, embracing change, simplicity and rapid feedback. There are few principles that are less central. These include teach learning, small investment, open communication, local adaptation. Extreme Programming is an efficient, flexible, light weight, predictable, low risk way to develop a software.

Extreme Programming (XP) promises to improve responsiveness to changes in business requirements, reduces project risks and improves the productivity. Extreme Programming (XP) is a set of rules and practices which occurs within the four
framework activities:

- Planning
Planning includes creating user stories, assigning value to the story based on overall business value of the feature. Cost is assigned after assessing each story. The XP team and customers work together to decide how to group stories for next release and an acceptance test criteria is build.

- Design
Extreme Programming design follows "keep it simple" principle. Design provides implementation guidance for a story as it is written. Extreme Programming encourages use of CRC(Class Responsibility Collaborator) cards identify and organize object oriented classes relevant to current software increment. Extreme Programming encourages re-factoring also.

- Coding
Unit tests should be developed, the developer is able to focus on what must be implemented to pass unit test. Extreme Programming development cycle involves pair of programmers that program together and the development is driven by tests. Pairs also evolve the design of the system. As pair programmers complete their work, the code developed by them is integrated with the work of others. Development is followed by integration.

- Testing
The unit tests are organized into universal testing suite, integration and validation testing can occur on daily basis. Extreme programming acceptance tests are specified by customers and focus on overall features and functionality of the system that are visible to the customer.

No comments:

Facebook activity