[First part of this page is duplicated in PrettyAdventuresomeProgramming.]
"Wow! That ExtremeProgramming stuff is neat! We almost do it, too!" I hear this cry remarkably often. I have developed the following little joke description of one of my projects to warn people about what they are saying...
"Extreme Programming (a la ChryslerComprehensiveCompensation project) requires 4 things:
- You do pair programming.
- You deliver an increment every three weeks.
- You have a user on the team full time.
- You have regression UnitTests that pass 100% of the time.
As a reward for doing those,
- You don't put comments in the code.
- You don't write any requirements or design documentation.
Now on this project, we're pretty close...
- well, actually a couple of our guys sit in the basement, a couple on the 5th floor, and a couple 2 hours drive from here, so we don't do pair programming,
- and actually, we deliver our increments every 4-6 months,
- we don't have users anywhere in sight,
- and we don't have any UnitTests,
but at least we don't have any design documentation, and we don't comment our code much! So in a sense, you're right, we're almost doing ExtremeProgramming!"
Heh. Where was I reading this the other day? Maybe ConsciousnessExplained, by DanielDennett? Or was it in KentsBook? Anyway, the idea was that almost means the same thing as not. That when a vendor claims his tool is almost anything, you should interpret it as the exact opposite.
The author goes on to explain that he would rather be almost dead than almost alive, that any businessman in the world would rather be almost bankrupt rather than almost solvent. <g> -- BillBarnett
As in software that is AlmostCorrect...
You can find a similar concept in GeraldWeinberg 's work: LullabyLanguage. -- AlexChaffee
From AlmostConsideredHarmful: "'Almost' is a technical term meaning 'not'."
Peripheral comments moved to EdgeOfChaos.
CategoryExtremeProgramming CategoryAdoptingXp CategoryStory