[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...
but at least we don't have any design documentation, and we don't comment our code much!
- 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,
So in a sense, you're right, we're almost
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
: "'Almost' is a technical term meaning 'not'."
Peripheral comments moved to EdgeOfChaos
CategoryExtremeProgramming CategoryAdoptingXp CategoryStory