Choosing Between Boring and Exciting Tech 🔥
Advice for dealing with technology risk, using something more than your gut.
In 2011, when I was 22, I decided it was finally time for me to buy a smartphone.
I wrote down a long list of pros and cons for a few top tier models, including the iPhone 4 and a couple of Android phones.
In my head, however, I had already decided I wanted the iPhone. The real goal of the list was to justify this decision to myself and to my friends and family.
We make so many decisions this way, whether we realize it or not. We have a gut feeling for something, and then we work our way to rationalize it.
Choosing which technologies to use is one of those areas where "gut" often wins. This is because pros and cons are so hard to articulate—and so obscure to most decision makers—that over the years I have seen many such choices being backed by little more than personal taste.
Dan McKinley wrote an a famous piece years ago about so-called Boring Technologies. Read it if you haven’t. My take is that, other things being equal(-ish), our gut naturally optimizes for Exciting Tech over Boring Tech.
The iPhone 4 felt exciting, while the other phones felt boring.
This instinct is neither a good or a bad thing. We just need to be aware of it, and act accordingly. Let's talk of tech choices 👇
❓ Technology Risk
Say we need to choose a library or a framework, for a new feature or service that will be developed.
Any choice brings some kind of risk for the business. The value of such risk depends on the combination of two factors:
Probability that something bad happens.
Impact of the bad thing happening.
We should evaluate such risk in the context of: the tech we are choosing, how critical the feature is, and the fit between the tech and the feature itself.
Let’s talk of tech first.
🔍 Knowns and Unknowns
Any technology has upsides and downsides. Paraphrasing these into the knowns and unknowns framework, we have:
Known wins — things we know it is good at.
Known failures — things we know it is bad at.
Unknown failures — things it is bad at, but we still don't know.
Yes, there must be unknown wins somewhere, too. But in my experience you can discount them, for two reasons:
Most upsides are known from early on. In fact, upsides are usually things the tech is designed for, while failures are more often discovered.
It is generally wiser to plan for unexpected failures than to rely on unexpected wins.
So, how should you choose technology?
⚖️ Boring vs Exciting Tech
Let's be honest, most tech today looks like—and is—good tech. That is, many known wins.
But being good it's not what separates boring tech from exciting tech. The Java ecosystem has some solid arguments about why you should choose it to build your API server. But would you say Java is exciting? Unsure about that 🤷♂️
So what is it all about?
🚲 Boring Technology
My definition of boring tech is: good tech that has almost everything figured out.
Many known wins — it is widely adopted and supported
Many known fails — limitations are well known and documented
Few unknown fails — we know it inside out because so many things have already been tried
🛴 Exciting Technology
Exciting tech, instead, is good tech that is still discovering things about itself.
Many known wins — new paradigm!
Few known fails — it will solve all my problems!
Many unknown fails — because we just haven't discovered them yet.
In technology, it's generally true that new things are better than old ones, and the former eventually replace the latter. However, new things have also the unfair advantage that many of their downsides haven't been figured out yet.
An old adage says that new tech solves old problems and creates new ones. But since new problems surface a while after the old ones have been solved, you have a window of time in which new tech looks disproportionately better than it actually is.
In conclusion you can say that:
Boring tech is safer — because of fewer unknown unknowns.
Exciting tech looks better — and maybe it is, but you will also discover more downsides over time.
So, how do you choose?
💸 Impact of bad choices
If you go back at how we defined tech risk, it's about probability * impact.
In turn, impact depends on two factors:
💼 How important the feature is for business — can we afford to get this wrong?
⛑️ How hard it is to recover — how reversible is this decision? how much lock-in do we develop if we go this route?
So the easiest advice to minimize risk is: the higher the impact, the lower you want probability to be.
For critical areas where the lock-in is also high (e.g. database, infrastructure, payments), it is better go the safe route and choose something good but boring.
For less important areas, where your decision is also reversible, you can afford to take a bet and choose something new and exciting.
Choose Boring Technology — This famous article by Dan McKinley inspired mine in several ways. It makes some great points about uncertainty and mapping problems into solutions. It also contains the famous metaphor of innovation tokens, which has been referenced so many times. Very recommended.
🎁 Deals and sponsors
From last week I have started accepting sponsorships from a few tools and initiatives I really love 🤗
These are things I can genuinely recommend because I use them myself, and they also agreed to provide some exclusive discounts for Refactoring's subscribers!w
Waydev is one of the best tools out there about measuring dev performance. It provides visibility into engineering work by aggregating Git data into actionable insights and real-time reports.
As a subscriber, you get 20% off with the following code: LUCA20.
🎙️ CTO Craft Con — Delivery, Process & Metrics
I joined the first CTO Craft Con last year and I was impressed with the quality of its speakers and talks. I am happy to join and recommend the next edition that will take place in just a few days!
As a subscriber you get a £15 discount on tickets with the following code: REFACTORING-guests
That’s it for this week! How is your experience with choosing tech? Did you make any bold choice that paid off later on, or turned out to be a complete disaster? Let me know via email or in the comments 👇