Professional Documents
Culture Documents
Objectives To review extreme programming an alternative software system development process rapidly gaining in popularity.
Extreme Programming
No!
When to Use XP
Remember you have to match the process to the problem! XP works when: Requirements are changing rapidly High risk, new challenge projects Small groups of programmers (between 2-10) Able to create automated tests Direct customer involvement is possible
User Stories
User Stories are written by the customers Things that the system needs to do for them (similar to use cases) In the format of about three sentences of text written by the customer in the customers terminology without techno-babble! About 80 +- 20 is a typical number for a mid-sized project, each story between 1 and 3 weeks of ideal development time User stories drive creation of acceptance tests
Design
Never add functionality before it is required! Organise your design around a shared model (metaphor). Work hard to create a simple understandable design. A spike solution is a very simple program to explore potential solutions. Build a system which only addresses the problem under examination and ignore all other concerns. Refactor mercilessly! Refactoring is the removal of redundancy, elimination of unused functionality, and rejuvenation of obsolete designs in order to keep the design simple and avoid needless clutter. It helps to make a design easier to understand, modify, and extend.
CRC Cards
CRC cards are a useful tool CRC- class, responsibilities, collaborations Class at top of card, responsibilities listed down the left side, collaborating classes listed to the right of each responsibility A CRC session proceeds with someone simulating the system by talking about which objects send messages to other objects. By stepping through the process weaknesses and problems are easily uncovered. Design alternatives can be explored quickly by simulating the design being proposed.
CRC Cards
XP Map
Other XP Practices
Rate user stories by risk - do the hard things first! Build the model first with a spartan user interface
Key Points
There are alternatives to standard OO development processes XP works very well in certain situations but IS NOT an excuse for lack of development discipline, quite the contrary The core of XP is delivering exactly what is wanted now and regularly refactoring. These practices can be applied in other settings.