Gadgets and Contraptions
As a child, I spent many a happy Saturday morning watching the adventures of the hapless Inspector Gadget, a bumbling cyborg detective whose array of bizarre tools included a laser finger, extendable arms and legs to carry him over obstacles, and an umbrella that extended from his hat to act as a shield or a parachute. As befits a comic hero, many of his gizmos were humorously overcomplicated and flimsy, always a millimetre away from failure but miraculously functioning just well enough to get him out of a jam. He reminds me now of an anthropomorphic Heath Robinson machine (resp. Rube Goldberg for Americans or Storm P for Danes).
I don’t know whether the blogger Venkatesh Rao is also a fan of the good Inspector, but the catch phrase “Go-Go-Gadget” certainly sounds like an accurate description of the contraptions he’s been writing about lately. Rao’s canonical contraption is the helicopter, which is about as wackily gadgety as a cartoon writer could want: the designer starts with large horizontal blades to provide lift, but to correct the instability of their spin she has to add a small vertical tail rotor, which makes the whole thing pitch forward, so she has to balance the speeds of the two impellers carefully, and then she has to keep the whole thing from rolling over by making the blades flex during their rotation. This delicate tension among many competing demands is the key characteristic of Rao’s contraptions: they are intricate but fragile, so they look like they were whipped up overnight by a mad genius, and shouldn’t work at all. Further examples are all around: the Electoral College that will soon elect the US president, the interlocking rules that govern medical insurance coverage, the mass of cables under most office desks. All work incredibly well but just barely, like car-immobilising bubble gum.
Science fiction would have us think that computers and their programs are bright and clean and perfectly designed, but in fact almost every technological system you’ve ever used was hacked together in the most contraptiony of ways. This tradition started early: some of the first computers stored data as dots on TV screens, and the wires of the Apollo guidance computer had to be carefully woven together by skilled craftspeople. For more recent examples, look at the bizarre and complex incantations required to run huge old software systems, with weird names like MUMPS and R, or just ask the nearest engineer about “legacy code” or “spaghetti software” and settle in for a long diatribe.
Now one of the worst things you can do to a contraption, software or otherwise, is to rebuild it from scratch, despite that being the fondest dream of frustrated programmers ranting about “balls of mud”. The reason is simple: you lose all the carefully developed adaptations and gadgets and workarounds that made your system valuable in the first place. So my consistent advice for improving any kind of delicately balanced contraption, especially the kind written in binary, is the same as Martin Fowler’s: replace a little bit at a time, gradually “strangling” the old system with something better, all the while making sure your software “helicopter” is flying smoothly and not spinning out of control. Near-disasters caused by malfunctioning gadgets make great cartoons, but the story doesn’t play so well in the boardroom.
This first appeared in my weekly Insanely Profitable Tech Newsletter which is received as part of the Squirrel Squadron every Monday, and was originally posted on 4th November 2024. To get my provocative thoughts and tips direct to your inbox first, sign up here: https://squirrelsquadron.com/