Boring Technology is A Business Advantage
Boring technology is an underappreciated asset for many software businesses. Companies, especially newer ones, always seem to want to incorporate the latest and greatest technology into their systems. Engineers want to pad their resumes with new skills while their executives want to brag to their clients about how their tech stack is industry leading. This is done haphazardly though, as extraordinarily little thought is given to the benefits of boring technology, ie, established technologies. Established technologies lead to more profitable businesses because it is easier to recruit, build, and maintain.
I am by no means against using new technology. I love new things! However, I find most businesses utilize cutting-edge tech for the wrong reason. Ultimately, technology’s purpose is to solve a business objective. The two most common are to either increase revenue or cut costs. If a new technology can help you achieve that goal faster or more efficiently, excellent. But frankly, that is rarely the case. Programmers will likely not have experience with the new tech, thus slowing the build.
Dan McKinley has a great concept called Innovation Tokens [1]. Early on in a company’s life, they get three of these tokens. An innovation token can be spent on a number of things, examples are: a new business model, way of acquiring customers, new programming languages, a new pricing method, an innovative product, a new distribution model, ect.
Simply put, innovation tokens represent the company’s limited capacity to do innovation. For example, using DynamoDB over MySQL costs an innovation token. A different example is Stripe’s goal to build the payments infrastructure of the world. That definitely costs one token or maybe three! The purpose of these tokens is to position innovation as a scarce resource. By adopting this mindset, it makes less sense to innovate on your tech stack or programming paradigm, and more sense to focus on delivering unique value to your customers.
I am not suggesting you write your web app in Fortran [2]. And you should not be using deprecated languages like Python 2.0 or .NET Core 3.0 as they are security risks. Boring does not mean decrepit. Rather, I am talking about technology that has been rolled out at thousands of companies at scale. This way, when the original programmer leaves or retires, you can hire another person to replace them. Switching software developers is never easy [3], but boring technology makes it less painful.
As I mentioned earlier in the article, going with boring technology nets your business three large advantages. I’ve alluded to them at the beginning and will give a brief overview of each.
Benefit 1: Easier To Recruit
Software developers often follow the job market. The more popular a language is, the more programmers will learn it. This means if you’re using an established technology, you can attract more applicants for your job posting. If you choose a technology with a limited pool, it means you will have less applicants, and will be forced to offer higher salaries.
Benefit 2: Easier To Build
The longer a technology is around in enterprise, the more libraries it accumulates. These libraries help speed up any task you can imagine. For example, there are libraries on CSV parsing, image storage, graphing algorithms, natural language processing, computer vision, ect. You name it, there’s probably a library for it. By utilizing boring technology, your programmers can build on the shoulder of giants instead of building it from scratch. This easily cuts software development time in half and is why the concept of frameworks is so popular in the industry.
Benefit 3: Easier to Maintain
The longer a technology has been around, the less bugs it has. Not to mention, the proliferation of documentation and tutorials. Newer technology is light on Stack Overflow, the go-to place for programming answers, but old technologies have decades of solutions. Because boring technology has been around so long, you can hire engineers with multiple years of experience in it, rather than trusting someone who’s been using it for 6 months.
How do you tell if a technology is boring?
Easy. Go to LinkedIn jobs and type in that technology’s name. Look at the number of results. I say anything with 10,000 or more listings in the United States is considered boring.
Here are some quick comparisons I did in March 2021.
React [57,615] versus Elixir [715]
Python [141,325] versus Golang [6,977]
SQL [168,424] versus dynamoDB [7,835]
Ruby [24,060] versus Haskell [697]
C++ [57,921] versus Rust [2,590]
Is there ever a reason to use exciting technology?
Yes – but sparingly.
For example, new technology can be used as a hiring filter. Sure, every programmer and their mother knows Java, but what about Haskell? Newer programming languages attract individuals who want to be on the cutting-edge of innovation.
Another reason is because your CTO or technology lead is a programming savant. Perhaps he is a big open-source committer in the Elixir community or servers on the Rust Foundation board. In which case it makes sense because they are invested in the long-haul. If your CTO is a mini-version of Paul Graham, you have to use LISP [4].
For most businesses, though, I highly suggest using a boring technology stack. Your company is in the business of solving your customers’ pain points. They don’t care what technology you use. All you need to do is solve their problems and make them happy. As such, do it with boring technology so you can get the benefits of recruiting, speed of development, and scalability.
Notes
[1] Dan McKinley’s article, Choose Boring Technology, is the inspiration for this post. It is fantastic and I highly suggest reading it. I personally prefer the Powerpoint presentation as it has more pictures. Link: http://boringtechnology.club/
[2] Yes, it is possible to write a web app in Fortran. Programmers are crazy. Checkout this framework I found: Link: https://fortran.io/
[3] The first blog article I ever wrote explained why software engineers are not interchangeable: Link: https://www.invene.com/blog/are-software-developers-interchangeable
[4] If you are not familiar with Paul Graham, he is a fascinating person. He sold a company called Viacom and founded YCombinator. Despite being worth over $300M, last year he created a new version of LISP called Bel. Here is the article titled “What I Worked On”, that explains why he created this new programming language. Link: http://www.paulgraham.com/worked.html