Extreme Programming

One of the Agile Software Development methodologies.

"SoftwareDevelopment with all the dials turned up to 10 (or 11)".

http://www.extremeprogramming.org/

http://www.xprogramming.com/

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:    |       |    Search Twitter for discussion