Workaround is a Four-Letter Word


Today in a meeting I heard: “We can provide a workaround for you” and immediately wrote down the title of this post in my notepad. Obviously, workaround is not a four-letter word in reality, but does have nearly the same meaning as the actual four letter word “hack”. If anybody tells you this, stop them in their tracks and ask them to try again.

How I’ve gone this long without ranting about the overuse and misunderstanding of this word for so long, I’ll never know; I must have had it beaten into my ears for so long it lost its meaning. Don’t confuse this with providing an actual solution to a problem, but by proposing a workaround, you’re really proposing to temporarily fix a problem with up-front knowledge of low quality work.

I’ve heard this word a lot in my career and I’ve decided it now deserves the same feeling of disgust the word “hack” gives me. Hopefully you’re on the same page as me. If you feel that a “workaround” isn’t all that bad, or that it has its place in software development, at least call it what it is.

About Chris Missal

Oh hey, I'm a Senior Consultant for Headspring in Austin, TX. I've been working in software professionally since 2006 and I really, really love it. I'm mostly in the Microsoft world, but enjoy building computer things of all sorts (to be vague). When I'm not slinging code, I'm probably out and about slinging discs, bowling balls, or good beer with great friends.
This entry was posted in Development, Rant. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • To me, a hack is preferable to a workaround. Hack at least implies some measure of cleverness, whereas workarounds suggest clumsiness.

    Hacker > Workarounder

  • John Donoghue

    I don’t have a problem with a “workaround” so long as it is proceeded (either implicitly or explicitly) by the word “temporary” – and of course it really is temporary.

    For instance, if a user raises a bug we will regularly respond with something like “Yes, that’s a bug and we’ll be fixing it in the next release. In the meantime here’s a temporary workaround so you can get on with what you’re doing.”

  • In the circles where I’ve been the past few years the word ‘hack’ is a very positively charged word. I figure this is because we have a culture where learning and understanding how something works is something good, and bending that to your will through a ‘clever hack’ (perhaps to do somethings it was not initially designed for) is a notable achievement.

    The divide here is probably in what we put into the word, not the word itself. IMHO, a workaround is something that circumvents or bypasses some problem or restraint, whereas a hack can be any number of things. Creating new uses for something (a spring from an an old dishwasher given new life in something else), bypassing restraints, changing how an old radio outputs audio, are all examples of ‘hacks’, albeit not related to software development.

    But this is how _I_ see these words. Joe down the block might have an entirely different take on what the words mean. For him ‘Stop’ might mean ‘Go’, or ‘Apple’ mean ‘Pain’ (since the last time he ate one he lost a tooth).

    We’re all humans, and it will be impossible to find a definition that can be considered ‘universal’.

  • @Keith
    I too, would rather see hack than workaround. If it’s documented as a hack, it’s probably more likely to get fixed than something documented as a workaround.

    I’m not suggesting that a complete solution must be put in place immediately. I think fixing it for the next release is fine in many circumstances. What I have a problem with is providing a workaround that only gets the job done long enough until another workaround or “band-aid” is needed.

    The problem with clever hacks is that I often see them as confusing for anybody but the hacker. Implementing a better solution or refactoring the code to use a design pattern allows the project to a lot more easily understood from other developers. I shouldn’t need somebody to explain their hack/workaround to me.

  • The word “workaround” gives you disgust? I understand your sentiment, particularly from a pure technical perspective, but there are times when it doesn’t make business sense to invest additional effort into something when there are more pressing problems to be solved.

  • @Mark

    There’s always “more pressing problems”. It does make business sense for your development team to understand the code though. Also, how many “pressing problems” are caused by the workarounds in the first place?

  •  I figure this is because we have a culture where learning and understanding how something works is something good, and bending that to your will through a ‘clever hack’.

    web Design london