Lots of stories today in the “echo chamber” about the departure of the Twitter architect, and claims flying about concerning whether Ruby on Rails was the appropriate choice of platform for Twitter, given Twitter’s well known propensity to be indisposed (I’ve already used “suck” in a post in the past couple of days – trying to expand my vocabulary).
I just finished reading several comments / articles about how Ruby on Rails CAN scale, if only… if only the database is partitioned properly, if only the site is properly cached, if only one held your tongue just so while clicking submit.
My thoughts drifted to that well worn bromide “when the only tool you have is a hammer, everything looks like a nail.”
There are just times when we need to step back and be brutally honest with ourselves. Sometimes the tools and skillsets we love best are not the most appropriate tools and skillsets for a given job, and certainly not for EVERY job.
When it’s your livelihood you’re talking about, one tends to overlook that little gem, in the belief that you CAN make it work – I must make it work – even in the face of evidence that (a) my tools are not the most appropriate or (b) I am not the person for the job.
A good friend of mine used to joke that extremely difficult programming tasks (usually doled out by a last minute customer request contrary to all prior work we had done on a system) was akin to doing “brain surgery with a butter knife.” Sure – you can do it. But you’re not going to be happy with the results in the way that you WOULD have been had you only had a scalpel on hand.
We all do this, all the time, even if we’re not programmers.
A pair of pliers CAN drive in a nail – sort of – if a hammer isn’t handy. Not so good if you have 50 nails to hammer in. Impossible if you have to hammer in enough nails to replace a roof, when even an ordinary hammer wouldn’t suffice and one would more properly use a pneumatic hammer. But if a pair of pliers is all you have to work with, then by god, that nail is going in. Deep.
In short, sometimes we simply choose the wrong tool for the wrong job because of expediency and not efficiency.
When our incompetency in the choice of the tools we use affects only ourselves, it is merely reduced personal efficiency and inconvenience. When our incompetency in this regard affects the efficiency and productivity of others, it borders on negligence.
I’m passing no judgment specifically on any single person at Twitter for what has gone on this year with availability and uptime.
What I can broadly say is that whatever they were doing, it wasn’t working.