Shoveling Code 6

Posted by Tim Ottinger Thu, 06 Dec 2007 12:56:00 GMT

I was ill when the first snow fell last weekend, and didn’t get out and scrape the drive and sidewalks. Sadly, neither did I bundle up my kids and send them out with shovels. As a result, the snow melted and refroze. When I left home on sunday morning, clearing the snow was frustrated by the presence of hard, packed ice under the snow.

Now I have to be very careful when moving in the drive or sidewalk because of the black ice in some places and thick lumpy stuff in others. I could choose to leave it that way and just walk carefully and try to avoid the area, but I really don’t want it to be like this all winter.

Instead, I bundled up and spent several painful hours trying to clear not only the six to eight inches of new snow, but the ice under it. Clearing the fresh stuff is tough because the rough and lumpy ice is under it. The ice snags the shovel and hurts my elbows and shoulders. I use the metal edge of the shovel to plane off the ice so that it’s not quite so difficult, and the work gets a little easier.

Smooth, planed ice is not a solution. It is actually going to be more slippery and dangerous when the sun hits it and it melts a little. It will then refreeze to an even smoother and slicker sheen. I can’t ignore the problem, and I can’t smooth it over and leave it at that.

I invested in some complicated salt product to lower the melting point of the ice so I can scrape it away. It wasn’t enough, but now there are some safe areas in my driveway. I continue to scrape it and hope that I can get it all squared away so that my wife and kids have safe passage, though it is tedious and unpleasant work.

Yes, it’s my fault. I should have bundled up my sick self or my children and taken care of this when the first snow fell, back when it was easy.

Then it dawned on me that my driveway is a lot like source code. If I always take care of it when it’s relatively easy and not too polluted, it will remain easier to deal with in the longer term. The more unsafe and ugly it is, the more important it is to clean it up. It won’t do to smooth it out a little or to leave it be. It needs to be safe for me and my team.

And I guess that’s my parable for today.

Comments

Leave a response

  1. Avatar
    Jay Levitt about 2 hours later:

    So… living in the Boston suburbs for six years (on the northern, shady side of the street, with a driveway that had about a 30% slope)... I used to go out and salt the driveway before the snowstorm. I guess that’s TDD.

    And I tried to always snowblow/shovel within 24 hours, before the crust froze, like you say – fix it before it gets crufty.

    But sometimes I’d just be lazy and let a few weeks go by. And then I’d go out with my Sears steel-core reinforced chisel-blade ice chopper, raise my arms over my head, and whack it repeatedly against the ground until my ears rang and my hands itched.

    I left a few dents in the driveway, but I took care of that ice. It was kinda fun and cathartic, to be honest.

    How do I do that in software?

  2. Avatar
    Jeff Langr about 7 hours later:

    A somewhat quicker fix like throwing salt on a big problem often doesn’t come without a longer-term cost. Salt often creates permanent damage to your sidewalk (unless they’ve gotten better with this stuff).

    Some teams attempt to rectify crap code buildup by asking for some refactoring time on the plan. This can introduce a bit of long-term distrust from the customer side, which is something that can represent a continual eyesore for the team.

  3. Avatar
    Jay Levitt 1 day later:

    Actually, they’ve gotten pretty good with non-driveway-destroying salt, especially if (like me) you had an asphalt driveway. Unfortunately, IIRC, the better the salt was for the driveway, the worse it was for the vegetation surrounding your driveway.

    ObProgrammingMetaphor: Um… hmm… incompatible toolsets?

  4. Avatar
    Esko Luontola 3 days later:

    Here in Finland salt is often used on the roads and highways. The problem it brings is that cars become rusty much faster (some sheet metal had to be welded into my family’s car just a short while ago, because there were some bad holes in the bottom of the car because of the rust). There would be some alternatives to using traditional salt, for example I think in the airports they use some stuff which does not create rust, but those alternatives are more expensive – although in long term it might be cheaper for the economy when cars don’t get rusted that quickly.

    Programming metaphor… hmm… People say that testing is “too expensive” and makes the project late, so it’s better to skip testing and just write code?

  5. Avatar
    Tim 4 days later:

    We also have salt & sand mix on the roads, and also some specialized salt products that are supposed to be “driveway and sidewalk safe”. The road salt is as you say. I bought some of the “safe” salt stuff for about USD$7.00, and it was only good for one application on the sidewalk and 1/2 the driveway. :-(

    Sadly, when I came from Cincinnati OH on saturday night/sunday morning (about 1:30am) I drove home in a small ice storm (had to stop twice to scrape the snow off the windshield & wipers) so now I’ve got more ice down than before. Sigh.

    People have claimed that testing is “too expensive” and tried to skip it. I’ve even done it. One of the ways we know something is true is that we violate it and pay the consequences. Reality is rather unforgiving.

    Now I have to decide that it’s worth $15.00 to $20.00 to get the ice broken up enough to shovel it out of the way completely. Darn it, some of that is the same ice as before, and about 2” thick.

  6. Avatar
    Tim 28 days later:

    By the way, using the right tools helps too. I knocked some of the ice out with a claw hammer because I didn’t want to go buy a tool. It was too much work. I bought an ice scraper, which does a very fine job. My driveway is quite nice and passable now, and keeping it clean is easier than ever before.

    Just so we have a nice footnote on the story.

Comments