Beware Of The Hamsterware Problem

Most software development problems can be solved in more than one way, but that doesn't mean that every possible solution is equally efficient. Watch out for 'hamsterware' solutions: quick fixes that seem to solve an immediate dilemma but actually require an inordinate amount of effort in the long run.

Hamster picture from Shutterstock

The issue isn't a new one, but I'm indebted to Gary Swart, CEO of online workplace oDesk, for the terminology. As he explained during a recent presentation in Sydney, oDesk's initial systems worked in exactly that way:

At oDesk, we initially did everything by hand. Someone would request a programmer, Sandy would look through resumes, and Vladimir would be sent. It was all done by hand. It looked like an automated system, but it was hamsters behind the scene. We got our first 1000 clients that way — but we realised it wouldn't scale.

And therein lies the issue with hamsterware — it's hard to increase the number of hamsters you can put in a wheel unless you change the entire design. The problem is particularly obvious when you use a person as your 'black box', as oDesk did, but inefficient code usage can be just as big a drag on your system efficiency. Kill the hamsters!


    The only hamsterware that matters:

    Unmentioned in this article is the biggest problem of hamsterware. In computers, once you start running it's hard to stop. I'm currently programming in a system that was designed and built 5 years ago, entirely based on quick patches, quick fixes, features that the client needed the next morning and so on. Except it never stopped. After five years, it's huge and ugly. But at the end of the day, it's so big that it'd be impossible to take the time to redo it from scratch. Any attempt to upgrade it to good code gets lost

Join the discussion!

Trending Stories Right Now