History Of Extreme Programming

Short history ...

KentBeck found himself dictating practice on a project for which he had assumed some personal risk. Unsure of which to emphasize more, he chose to "turn all the knobs to ten."

More history ...

Kent drew on the experiences of many when he chose which knobs to turn. And the knobs alone only set the course, many more made it work. Finally the technology, or at least the ideas motivating the technology, played an important role too. At risk of writing myself too firmly into XP's history, I begin this page with a summary of events. -- WardCunningham


Learning by Programming

ChristopherAlexander recommends an incremental process to design infused with knowledge handed-down through generations of stakeholder designers.

SeymourPapert connects the act of programming with learning. AlanKay imagines the DynaBook (think PDA) as a SketchPad for such learning, and includes modeling and therefore objects.

After rediscovering PairProgramming, WardAndKent aggressively author fifteen important frameworks in as many months. In an effort to summarize the experience they recommend, BeValuable.

Ward attempts to recreate his experience with Kent, this time in a commercial software development (WyCash). He introduces specific practices to preserve design flexibility in the face of customer demands and fluid schedules.

The HillsideGroup favors high risk for high reward; launches the PLoP conference to create a literature of practical programming experience. The group nurtures a set of values that become core to XP.

Harmonic Convergence

Kent writes programming patterns for a client. They are well received, but not totally effective. If not the whole solution, they are at least an important part. The patterns grow to become SmalltalkBestPracticePatterns.

In a Hillside PatternMining exercise, Ward and Kent discover their views on development have broadened in identical ways since leaving research. JimCoplien finds their solidarity startling, especially in the few places they disagree with his own findings in OrganizationalPatterns. Ward conceives wiki as the UltimateTestForJointOwnership. Ironically Cope clones wiki and adds protection.

Ward writes organizational/programming patterns for PLoP, dubbed Episodes, after the pattern in which insight becomes tangible through programming. RonJeffries assembles small team to build core of a large product; retains Ward to help with performance problems; gets pitched Episodes on the side.

Kent works on the WellFleet? project for HewittAssociates?. Here he first consistently teaches a team UnitTesting, the SmalltalkBestPracticePatterns, and clear SystemMetaphors. The project goes into production with very little of the usual running around. (Three years later (mid 1999) the team culture is still firmly in place).

Kent is retained to performance tune Chrysler payroll project. He finds deeper problems, tells top management to start over, then accepts the job of coaching the team. This is the point at which Kent "turns the knobs", drawing on his experience with Smalltalk, Patterns and Hillside. Kent recruits Ron to make it so.

SueUnger, Chrysler CIO, offers up her brightest (and probably most expensive) programming team working on an important Y2K problem to Kent to do with as he pleases. A visionary in her own right she believes in Kent and supports his new methodology.

Embracing Reflection

Ron takes coaching position on restarted Chrysler project; draws on personal programming and managing experience for confidence; relies on Kent for initiative; is exempt from assigned tasks so he is free to tune the process.

(Many events go here. Kent or Ron will have to report them. Needless to say, both Kent and Ron had the self confidence to do something different, and enough reflective ability to see what that should be, even under pressure.)

Ron begins writing about XP on wiki and finds a positive reception, probably due to self selection of the audience. Ron writes lots more; some readers miss wiki before XP; others try XP and report mixed results; Ron helps.


The productivity and integrity of the way WikiRewritesHistory still fascinates me. Much of the early battle stories and analysis of XP seemed to have been formed on wiki - and real fast. Has a possible downside been the sliding away of older patterns contributors who aren't convinced of the historic potential in XP but couldn't avoid getting bogged down in the process?

At what point, if ever, does somebody snapshot and publish on a read-only form such as book, paper or conventional web page? What happens to the wiki material after that point? Meanwhile, how would one partition off a 'hot topic' for the benefit of those who want maturer reflection on 'older' topics? -- RichardDrake

View the above as a PromptingStatement. I was careful to sign the introduction so that others could see the source of any bias. The remainder, without signature, simply sets the style for a page that has plenty of room for development. -- WardCunningham

IMHO, wiki is not for historical recording. It is for exchange. As with a sand dune, anything can shift at any time. I've lost a few key lines on wiki over time, but that is part of the wabi sabi of wikiwiki. The gain in communication vastly exceeds the historical loss. When I need a page retained, I copy it into a Word file for future reference. In proper wiki fashion, Ward would expect Kent or Ron to add / amend the above story, and the previous version would be gone. --AlistairCockburn, happy to have seen the above story.

It kind of waters down the joint ownership test, but couldn't we prevent information loss by adding a simple audit trail to the wiki ? Hard disk is pretty cheap if you're storing ascii, and edits aren't all THAT frequent, are they ? If we did this, perhaps the simplest way to make the resulting screeds of audit trail info useful and accessible would be to permit users to travel in time (read only) by setting a datetime field at the top of the page. Doubtless this fairly unwikilike idea has already been proposed and discarded elsewhere on the wiki (and perhaps declared irrelevant and thus deleted ... ) -- GregSolomon


See ExtremeProgrammingTimeline, XpRoots


CategoryExtremeProgramming CategoryHistory
EditText of this page (last edited October 28, 2005)
FindPage by browsing or searching

This page mirrored in ExtremeProgrammingRoadmap as of April 29, 2006