Topic: Value proposition
The rising cost of gasoline and diesel fuel has become a hot issue in the United States. Independent truckers and ordinary working people are feeling the pinch. They are looking for ways to maximize the value they receive from each gallon of fuel they purchase. CNN aired a report recently that explained the benefits of certain actions we might choose to take to maximize the value of our fuel purchases:
- Clean air filter: Saves 35 cents per gallon.
- Alignment: Saves 35 cents per gallon.
- Reduced highway driving speed (>60 mph): Saves 25 cents per gallon per 5 mph reduction.
- Engine tune-up: Saves 14 cents per gallon.
- Correct tire pressure: Saves 10 cents per gallon.
- Excess weight carried in the vehicle: Saves 7 cents per gallon per 100 pounds.
If a driver did only the simplest things on the list, and didn't bother taking the vehicle to a shop to have the alignment and tune-up done, then the annual savings would amount to about $0.77 per gallon, or $10.01 per 13-gallon tank, or $1,041.04 per year. Of course, your mileage may vary (YMMV) — literally — based on what sort of vehicle you drive and how badly you were managing your driving habits originally. In any case, the general benefits are clear. Whether you go ahead and do everything to get the maximum economy from your fuel budget or just do the easiest things, it looks like a no-brainer, doesn't it?
Certain software development practices are well-known to improve the effectiveness of project delivery. Some of these practices are very easy to implement and others require a bit more effort. Certain combinations of effective practices have been organized into comprehensive methodologies in a way that mitigates the weaknesses of each practice while maximizing the value added. Whether you go ahead and adopt a comprehensive agile methodology such as XP or just do the easy things to get the maximum value from your software development projects, it looks like a no-brainer, doesn't it?
Why, then, do so many people continue to engage in circular debates about the effectiveness of well-known software development practices? Arguing about whether TDD "works" better than hacking up some code and then "testing" it in an ad hoc, manual fashion seems a lot like arguing about whether a clean air filter "works" better than a dirty one. Isn't it self-evident? YMMV still holds, but even if your team doesn't get the best imaginable mileage from using good practices, it will definitely gain some improvement. Why would anyone in their right mind not do it?