Feed on

It’s a totally wonderful day, because they finally sent your new box, woot! So, you get it all hooked up, and you spend the morning getting all the tools installed, and it’s fast fast fast, and life is good.

Finally ready!  You check out the source.  You rebuild all.  The build doesn’t finish.  You scratch your head.  You shout, “Hey, what do I gotta do to get past the fritzenjammer error?”  A voice comes from a few cubies away:  “Did you delete the underpants file?”  Oh, right.  You go delete the underpants, and restart the build. This time it runs for about a half-hour before choking on the galoshes.  You don’t have to shout this time, you know for sure you have to point the galoshes at yourself.  Sure enough, you get almost to the end of the build this time.  Then all of a sudden your machine reboots.  Your machine reboots?? This time you don’t know, and shouting doesn’t help, and the one guy who knows what to do is on a mountain-climbing vacation in Nepal.

The day begins to lose its special glow.

A classic leaky toilet being quieted with a jiggle.

A classic leaky toilet being quieted with a jiggle.

You, my friend, are suffering from toilet handle-jiggle.  Have you ever been around a leaky toilet?  You flush it, and after the flush, the water just runs and runs and runs, until you jiggle the handle, of course.  You keep flushing the build, and waiting and waiting, and you jiggle the handle so it will settle, and you jiggle again and again, but the build has a lot of handles to jiggle.

What’s a handle-jiggle?  It’s anything in a build sequence that requires thought–effort, even–from the developer doing the build.  If a file needs to be deleted before a build, make the build system delete. If you first have to download and install those two special libraries, make the build system install them. If you have to figure out what files are changed before a merge, make some software that does that.

I feel I’m probably getting my point across here.

It’s startling how many teams have settled ever so contently into a world where every build sits square in the middle of jiggle-land.  And not just on a new box day, but every day.

Getting Jiggle-less

I’m often asked what the first technical step a team can take, before I even get onsite to jump into the transition.  The first technical target is getting to the jiggle-less build.

Here are some tips for getting to the jiggle-less build:

  1. Don’t let the tools win.  If your IDE doesn’t support the scripts you want right out of the box, then take time to learn how it’s done. See, the tools work for you, you don’t work for them.
  2. You’re allowed to have more than one build. Configuration management needs build sequences that may be substantially different from those the  devlopers need.  So be it.
  3. Have all developers run a virgin build once a week.  Delete the entire source tree, check it out again, and run the build.  Give them permission to fix it.

Above all:  Stop Wasting Mind On Builds

5 Responses to “Stop Jiggling Toilet Handles!”

  1. Rob says:

    I totally agree.

    Interestingly enough, I work with a small development group with too many projects/products and not enough people. At one time this was a RAD shop, and pushing out the old RAD mentality to one of clean, reliable, configured builds has been even harder than actually automating builds and instituting scheduled/continuous builds.

    I think I will post this article on my cube wall for all to read!

  2. I find the leading cause of a leaky build is tolerating the leak when it first starts when the build is simple. That’s the best time to fix the leak. Lower your tolerance for leaky builds, and screw the payback period. 1 hour repairing the build when it’s a fuzzy kitten will save you weeks when the build grows up to be a ferocious lion.

  3. David Burns says:

    This is a lot like the “Broken Windows” Mentality. Let little things slide and everyone else will be doing that and maybe worse!

  4. Lovely.

    —Michael B.

  5. […] Hill has blogged hilariously about the courage to automate away manual build voodoo, what he calls Jiggling Toilet Handles. The manual voodoo is classic useless variation. Yes they might be difficult to automated […]

AWSOM Powered