|
Wednesday, September 03, 2003
F5
Before reading this silly tale, you need five pieces of background
information:
- My family recently had a swimming pool installed at our home.
- The pool has a cover with a special pump that sits on top and pumps the
rain water away so it's not standing on the cover.
- We forgot to have an outlet installed near the pool, so we ran a long
extension cord from the cover pump to an exterior outlet on the house.
- Here in Champaign, it rained for most of the Labor Day weekend.
- This has almost nothing to do with software, unless you count the rather
contrived attempt to tie things together at the end.
OK, let's get started. Sunday evening I stopped for a moment to look
out the window into my backyard. At that very moment, the extension cord
on my cover pump sparked loudly and burst into flame.
Remember in Back to the
Future when the model car caught fire and Doc Brown gasped? My
reaction was remarkably similar. Those of you with a copy of the DVD might
want to play that scene now to get the proper effect of the story.
Luckily the heavy rain put the fire out quickly. The cloud of smoke
didn't linger too long either.
But with more rain in the forecast I really wanted to get that pump working
again. With 20/20 hindsight it was obvious that the pouring rain had
caused an electrical short at the point where the pump's cord was plugged into
the extension cord. I just hoped the pump itself was undamaged.
So I ran out into the rain, grabbed the pump and brought it back into the
garage. Luckily, it still worked! My mission at this point is clear
-- I need to get this pump working again.
If you are a geek like me, you would probably solve this problem very similar
to the way I did:
- Run through the rain out to the woodshop and find another extension cord.
- Run through the rain over to the swingset you just built, because that's
where you left your only roll of duct tape.
- Run through the rain back to the garage. Plug the pump into the
extension cord and put tons of duct tape around the connection.
- Run through the rain back out to the pool. Toss the pump out onto
the pool cover.
- Grab the other end of the extension cord and run through the rain to the
outside outlet.
- Pause for a moment to reflect on the idiocy of plugging something into an
electrical outlet while standing in the pouring rain.
- Look back at the pump and notice that you knocked it over when you pulled
the extension cord across the lawn.
- Run through the rain back to the pump and stand it up vertically again.
- Run through the rain back the outlet.
- Pause again and wonder how quickly your wife will find you if you get
fried.
- Look back at the pump and notice that you forgot to re-connect the hose to
the output.
- Run through the rain back to the pump and re-connect the hose.
- Run through the rain back to the outlet.
- Remembering that nobody really ever has enough life insurance, pause once
again to dry off the plug, using your shirt, which is dripping wet.
- Plug in the extension cord, look back at the pump, and notice that it
still doesn't work.
- Realize that the original incident probably caused the circuit breaker to
be blown. Run through the rain back to the garage and reset the breaker.
- Run through the rain back to the pool and see that the pump is finally
working again.
At this point I went back into the house, completely soaked and covered with
mud. As I fetched some clean clothes, I realized that my approach to
solving this problem was really lame. I made more trips through the rain
than were really necessary.
And then I realized that my lousy problem-solving skills are actually Visual
Studio's fault.
Seriously, my approach to this problem reminded me of the way I approach a
coding task when I get in too much of a hurry: Don't take time to think
about all the details. Instead, go for the instant gratification.
Just hit F5 and see if the code works. When it doesn't, try another quick
fix and hit F5 again. Eventually the code will work, without ever having
to give it any real thought.
I think I was more careful back when compilers were slower. One of my
first coder jobs was hacking on an app which took 11 hours to compile. The
linker alone took 45 minutes, and I often had to spend that time listening to my
boss gripe about how spoiled I was to have machines that could recompile so
quickly: "Back when I was a coder on this project we had to submit punch
cards to the mainframe operator and wait two days to see if we had a syntax
error."
I don't think I was spoiled back then, but I certainly am now. Visual
Studio recompiles so fast that I can't resist hitting F5. I want to see my
code work. Right now.
But I'd have to admit that when I hurry and do this kind of quick-fix coding,
I usually end up all muddy and soaked:
- Bugs get left in my code because I don't take time to catch the screw
cases.
- I rewrite functions we've already got because I don't take time to look in
our libraries.
- I break code which already works because I don't take time to read
it.
It's great to have fast developer tools, but I still do better work when I
take my time. And so do you.
P.S. Pedantic readers will observe that Intel deserves its share of
my tongue-in-cheek blame. After all, my faster compiles are probably at
least somewhat related to the fact that the CPU in my ThinkPad is over 250 times
faster than the one in that Mac Plus I was using fifteen years ago. Point
conceded, but it's very fashionable to blame Microsoft these days for things
that are not really their fault, so I'm just being trendy.
P.P.S. Readers with real carpentry skills will observe that there
is absolutely no good reason to need duct tape during the construction of a
swingset. Point conceded. Please, don't ask.
|