Extreme Programming
One of the Agile Software Development methodologies.
"SoftwareDevelopment with all the dials turned up to 10 (or 11)".
http://www.extremeprogramming.org/
Largely credited to Kent Beck, Ron Jeffries, and Ward Cunningham
WikiWikiWeb:ExtremeProgramming, WikiWikiWeb:ExtremeProgrammingRoadmap
One of the assumptions behind XP is that "recent" development technology changes (e.g. OOP) have made the cost of late-changes much lower than they used to be. Therefore there's less reason to have a complete Big Design Up Front. One area where this is a big question is in changing the design of a Relational Data Base.
Some key practices: Planning Game (WikiWikiWeb:PlanningGame), User Stories, Pair Programming (WikiWikiWeb:PairProgramming), Unit Test, Acceptance Test, Onsite Customer...
Scales of activity (it's possible this is semi-incomplete and inaccurate - the XP crowd changes terms sometimes, so you're never sure if you have the definitive source)
- Project: Contract issues
- Release: theoretically could happen after every Iteration. But logistics of roll-out might make this impractical.
- Iteration: 2-6 calendar weeks of development (it's best to stick to a consistent frequency, that helps build project rhythm), delivering releaseable functionality. Each WikiWikiWeb:ReleasePlan is the outcome of a Planning Game. User Stories are the key input.
- User Story: "chunk of functionality", deliverable; 1-3 man-weeks. During the Planning Game, the Business team (Onsite Customer) writes it, the Development team estimates (Estimating) the cost, Business rates the priority.
- Engineering Task: 1-3 man-days each. During an Iteration PlanningGame the programmers write tasks, sign up for them (commit to them), estimate them; the outcome is the Iteration Plan. A programmer works on a single task at a time until it is complete - no Multi Tasking.
Core archetype project: WikiWikiWeb:ChryslerComprehensiveCompensation - WikiWikiWeb:WasChryslerComprehensiveCompensationSuccess
I've been on a few projects now where we've done WikiWikiWeb:ContinuousDatabaseRefactoring from day one with good results. We're not yet to the point where we're running a migration script every development iteration, but we do have a schema validation tool and a data integrity tool that we use to make sure the data model we use in development gets matched in production. -- Ken Mac Leod 14Nov2002
Edited: | Tweet this! | Search Twitter for discussion