[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