Repairing a bath tub faucet as a metaphor for software development...

by Codewiz51 May 16, 2010 10:57

This is the sad story of how a good faith estimate on a common and simple household chore can spin wildly out of control, blowing out the budget and proving to be a time sink beyond anything envisioned in the original estimate.  It's a story of how your estimates need to be filled with conditions and caveats, unless you are willing to dig into the subject matter way out of proportion to the cost of the estimate.  The problems discovered and the compromises made reminded me of some of my software project results.

Our bath tub faucets have been dripping for a while, echoing in our brains as we sleep.  Yesterday, I decided to replace the seats and springs on our Valley faucets and stop the leak.  (I discovered that Valley faucets are no longer manufactured, which brings up a whole new problem, as you shall see.)

  1. I estimated the job would take about twenty minutes and $5 worth of parts I keep on hand, based on past experience.
  2. I turned off the water to the house.
  3. I gathered the necessary tools for the job.
  4. I removed the faucet handles.
  5. I began to unscrew the brass retainer fitting.
    • The retainer fitting was loose, which I found odd.
    • The retainer fitting was split, which meant it could not be used.
    • The underlying threaded sleeve was out of round, meaning the structural integrity of the valve was in question.
    • I discovered that my faucet is no longer manufactured and the part I needed to replace is not available over the internet.
    • I wondered who the heck had worked on my faucet, since I am the one that does the simple repairs around the house.
    • I remembered that my wife had a repairman fix the Jacuzi tub two Christmases ago as a surprise for me.
    • That meant the valve was probably damaged in the repair process, but deterioriated with use over the last several years.
    • I realized we had been lucky the valve stem had not shot out of the valve, flooding our house while we were away.
    • This chore was migrating from cheap and quick to expensive and long.
    • This chore was beginning to sound like the software project from hell, except my knuckles would be skinned up before I was finished.
  6. I realized my original estimate for time and materials was way off. (Sounding more like a software project every minute.)
  7. However, I had other important chores to perform, so I decided to improvise in order to come in close to my time and money estimate.  (Mostly, it was a time factor.)
    How often does this happen with software with software estimates versus reality?
  8. I had to find another retainer fitting, pronto.  We cannot turn off the water to the bathtub other than turning off the water to our house.  Lavatories on the other hand, have secondary shut off valves, usually located under the sink.  The same fitting was used on the Valley lavatory valves as on the bathtub.  Voila!  I had found a fitting to use.
  9. So I would cannibalize one of the upstairs lavatories.  (I realize this is just moving the problem around, but hey, the kids are gone, so one lavatory should do for a while, until I can replace the whole faucet.)
  10. I checked the body of the valve and assured myself that only the threaded neck was out of round, the body was OK.
  11. So now, instead of just replacing seats and springs, I need a new valve stem.  It's cracked and needs replacing as well.
  12. So, off we go to Ace Hardware and then Lowes for parts.  My $10 estimate is now $25 in actual cost, plus gas and lunch.
  13. My time estimate has gone from 20 minutes to an actual 2.5 hours and counting.
  14. I reassembled the valve, using the cannibalized retainer fitting.
  15. Turned water back on.
  16. Valve is leaking worse than it was before the fix, plus it is now leaking around the stem, due to the distorted neck of the valve compressing the stem.
  17. This damn thing has turned into my worst nightmare, similar to how software development sometimes proceeds.
  18. Now I have to call in the big guns.  I decide to use Teflon tape to try to fill the gaps created by the out of round valve.
  19. Off goes the water to the house.
  20. I find I have about 1.5" of Teflon tape.  Here goes a new trip to Ace.  The store manager is eyeing me suspciciously.  I also buy some FDA approved lubricant for the valve stem.
  21. The valve is disassembled quickly, although I am very careful removing the retainer fitting.
  22. On goes the tape and lubricant.
  23. I decide to use a wire brush to clean any mineral deposits on the brass surfaces.  I also apply lubricant to the fitting threads.
  24. The valve is reassembled and I carefully work the retainer fitting down over the valve stem to achieve a tighter fit.
  25. Time comes for the big test: I turn the water back on.
  26. There is no drip, but there is still a tiny amount of water escaping around the valve stem.
  27. I decide at this point to wait use a wash cloth to catch the water around the valve stem and see if the leak will self heal.
  28. The next morning, it appears that the leak as self healed.
  29. Total project cost?  About $50
  30. Total project time? 4.5 hours.

Anyway, the point of this diatribe is how something thought to be very, very simple turns out to be very, very different and not simple.

The part of the project that required compromise and cannibalizing other equipment is extremely common in software development. How often have we chosen the path of delaying the resolution of a less pressing problem in order to resolve a pressing problem?

It also brings up the point that in order to provide a good estimate of time and materials, we really need to perform a proper dis-assembly and examination of the item(s) we need to repair.  The problem is, everyone wants a quick estimate based on experience and a minimal look.  It's why we get into so much trouble with software sometimes.  Not always, but sometimes software projects just blow up despite our best efforts and experience. 

So the next time your boss wants you to provide a "good faith" estimate, remember the story of this valve.

Comments

5/16/2010 7:39:21 PM #

Pingback from topsy.com

Twitter Trackbacks for
        
        Repairing a bath tub faucet as a metaphor for software development...
        [codewiz51.com]
        on Topsy.com

topsy.com

Comments are closed

Powered by BlogEngine.NET 1.6.0.0
Theme by Mads Kristensen | Modified by Mooglegiant

Disclaimer

This blog represents my personal hobby, observations and views. It does not represent the views of my employer, clients, especially my wife, children, in-laws, clergy, the dog, the cats or my daughter's horse. In fact, I am not even sure it represents my views when I take the time to reread postings.

© Copyright 2008-2011