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
BackLinks: 2002-02-12-g | 2002-05-16-c | 2002-10-07-DatabaseRefactoring | 2002-11-05-FogBugz3 | 2002-11-25-FitTesting | 2003-02-14-UdellWardCunningham | 2003-03-07-ExtremelySuccessfulSoftware | 2003-04-24-LindbergMetaphor | 2003-06-30-IterativeAndIncrementalDevelopmentABriefHistory | 2004-06-16-RodriguezKnowledgeSharing | 2006-10-04-EbyXpBrain | 2006-10-31-GoogleBuysJotspot | 2007-11-14-BeckInterview | 2009-01-26-IssueTimeTracker | 2009-03-17-RiesXpVsCustomerDevelopment | 2018-04-20-JeffriesTheAgileExpanse | 2019-09-16-JeffriesTwelveTalk | 2022-02-03-JeffriesExtremeprogrammingThoughts | 2023-07-21-MarickACirclecentricReadingOfSoftwareDevelopmentThroughThe1990sPlusScreechOwls | AcceptanceTest | AgileProductDevelopment | AgileSoftwareDevelopment | AgilityContextAndTeamAgency | AgilityVsConflict | BillSeitzWritingToolHistory | ChryslerComprehensiveCompensation | ContinuousDelivery | ContinuousIntegration | CrcCard | CrystalClear | DomainDrivenDesign | EngineeringTask | ExtremeLeadership | IteratIon | KentBeck | MetaPhor | NaurProgrammingAsTheoryBuilding | PlanningGame | RobertCMartin | RonJeffries | SmallTalk | TracerBulletDevelopment | UnitTest | UserStory | WardCunningham | WikiForCollaborationWare | WikiJunkie | WyCash | XP
TwinPages: DaytonExperiment | MeatBall | RalfBarkow | ThompsonInnovateOregon | ThoughtStorms | WikiWikiWeb