Extreme Programming Summary
If providing customers with the four rights given in SoftwareManagementManifesto were easy, everyone would do so already (unless a KuhnParadigmShift is needed after which it will seem easy). One solution is to give the following presentation:
Here is a brief outline of how we will run the technical side of your project so we will be able to give you your rights in the first month of the project and in the tenth year of the project.
- UserStories - We will ask you to specify all the desirable features of the system as Stories, each of which would take a programmer a few days to implement.
- Iteration and IterationPlanning - Within a release, we will ask you to pick the most valuable stories for us to work on for the next few weeks.
- ReleasePlan and ReleaseScope - We will ask you to choose the smallest scope with the most immediate BusinessValue for each Release of the system, and we will put it into production as quickly as possible.
- StoryEstimates and LoadFactor - We will estimate each story, and at the end of an iteration will rate the estimates against calendar days. This tracks our progress in implementing stories, so we both know how many stories the team can implement per week.
- NewStory?s - If you find stories that are more valuable than those that are in the current Release, we will estimate the new Stories and you can substitute them for existing Stories in the Release. You can use this mechanism to radically change the direction of the project with no more than TwoWeeks' notice.
- FunctionalTests - For each Story in an Iteration, we will help you write automated tests that demonstrate to your satisfaction that the code implementing that Story works.
- TheSeed? - At the end of the first Iteration we will have a system that is recognizable as the final system. Not everything will work, but a little of everything will.
- ContinuousIntegration - At the end of each Iteration we will produce a system where the features that are implemented are ready for production.
- UnitTests - We will write tests as we write our code, so our tests can cross-check with yours.
- ReFactoring - We will continually evolve the design of the system -- adding flexibility where it is needed, removing complexity where it doesn't help, unifying duplicated code. This will help us to continue delivering changes at reasonable cost for the life of the systems.
[Note: These short descriptions are a convenient handle to carry XP to a manager type, but are certainly not exhaustive of the subject. Remember: any methodology that can be put into a nutshell belongs there.]
CategoryExtremeProgramming
EditText of this page (last edited May 7, 2005)
FindPage by browsing or searching
This page mirrored in ExtremeProgrammingRoadmap as of April 29, 2006