I read an article recently by Dan McKinley, discussing the virtues of choosing boring technology; MySQL over MongoDB, PHP over NodeJS. You get the idea. If you’re a developer, there might be a part of you that just rebelled a little bit at the thought. Me too. That said, I think he makes some excellent points. The parts that really spoke to me had to do with managing risk. At Issuetrak, we’re managing risk not just for ourselves, but on behalf of the people we’re building software for – our customers.
Let’s talk about what we mean when we describe a technology as “boring.” Obviously it’s a matter of perspective, but I think we can summarize by saying it’s anything that we, as developers, already know how to use. If we know how it works and we use it daily, it falls into the background. We don’t get that rush of using the newest widget to do the cleverest thing. We don’t get to stretch ourselves and learn a new way of approaching problems.
But here’s the thing. There’s a cost involved with learning and deploying that newest widget. Part of what makes a technology “boring” is familiarity. Familiarity may breed contempt, but it also grants us proficiency, at least if we’re paying attention. If our goal is to provide an excellent software product to our customers, we need to take into account the risks associated with new technology. Maybe, as McKinley suggests, we should only take on those risks in a deliberate way. Rather than going too far in the other direction and swearing off any tech that hasn’t been around for ten years, maybe we should just remember to be careful.
I think that the impulse toward novelty that’s displayed by developers, and technologists of all stripes, is a good one. I think it drives us forward and fosters innovation. But I also think there’s an aspect of it that‘s basically selfish. We want to play with the newest toys. We want to tell our peers that we’ve conquered a new intellectual challenge and acquired a new proficiency. That impulse, valuable as it may be, should always be tempered with a pragmatic evaluation of what we’re actually trying to accomplish. Are you building a personal website to expand your skills? Go ahead and use all the newest gear. Write the thing in F# and put all of your content in a distributed document store that only accepts queries written in a structured variant of Swahili. Who could fault you? Are you writing software that you plan on selling to actual humans who have jobs of their own to do? Maybe C# and MSSQL would be good choices.
McKinley, D. (2015, March 30). Choose Boring Technology. Retrieved April 16, 2015, from http://mcfunley.com/choose-boring-technology