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!