I’m coming to the end of XP Explained and the car metaphor has been mentioned again. Basically the metaphor being used is that there are two ways to drive a car; point it down the road and then start it up, or start it up and continually steer so that it stays on the road.
Pragmatic Programmer talked about the same things but used a gun as a metaphor; to hit a target you can calculate the angle to aim the gun based on positions and environmental conditions and then fire a single bullet, or you can use tracer bullets in a machine gun and adjust your aim after you have started firing.
The thing that I keep thinking is that they are both talking about an old idea that even Mythical Man Month touched upon: Iterative Development.
This is again exposing the biggest issue I have with development strategies like XP (don’t get me started on ‘Agile’), someone has taken a variety of established (not necessarily utilized) ideas and wrapped them together as something new. The other issue is that because of this a lot of people now have an all or nothing mentality: “I don’t like XP so I will exclude all of the parts of XP as well.”
There is probably also a bit of fear of the unknown in there as well. The other day at work I sent around a link to WhyNotEnoughRefactoringHappens in response to an email. A comment was made about how it was good that there were all these related topics. However when I informed them that they were actually looking at a wiki their attitude instantly changed. To their defence they were introduced to wiki’s in the wrong way, basically “wiki is there, use it”. No introduction about what a wiki is, the benefits, and the disadvantages…