Choose Boring Technology
In the world of startups, it can be tempting to adopt the latest, bleeding-edge technologies in a bid to stay competitive. But is that always the right approach? An alternate school of thought argues in favor of "boring" technology1. This article explores the advantages of boring technology and why it might be the optimal choice for startups, especially those looking to scale.
Understanding "Boring" Technology
Firstly, it's essential to clarify what we mean by "boring" in this context. It doesn't suggest outdated or dull technology. Instead, it refers to mature, reliable, and widely adopted technology that has proven its worth over time1. The term ‘boring’ belies their stability, and their reputation for getting the job done without unnecessary complications.
The Attraction of New and Exciting Technology
Developers often have language or tool preferences, like Clojure, to make them happy at work, stemming from past endorphin-rich experiences. However, choosing a different tool doesn't always lead to the expected productivity gains and happiness2. For instance, building Scala services at Etsy didn't yield the desired results, and using Clojure didn't ensure the success of a startup2. Experiences like these highlight the limitations of chasing the "new and shiny," reinforcing the appeal of boring technology.
Why Opt for Boring Technology?
Dan McKinley, a seasoned tech industry veteran, explains the rationale behind choosing boring technology in his essay, "Choose Boring Technology"1. He argues that "adding technology to your company comes with a cost," and not just in financial terms. This cost, often referred to as "innovation tokens," encompasses the time, effort, and resources needed to learn, implement, and troubleshoot new technology2.
Every organization has a limited budget of these innovation tokens. Therefore, it's crucial to spend them wisely. Choosing a new, unproven technology can be akin to spending your innovation tokens on potential problems when they could be better spent on creating innovative solutions within the business1.
Maslow's Hierarchy and Technology Choices
In line with Maslow’s hierarchy, there is merit in satisfying basic needs before seeking higher intellectual fulfillment2. This principle applies to software too: worrying about tool selection hinders focus on the broader product vision2. By choosing reliable, well-understood tools, organizations can free up mental resources to focus on solving critical business problems.
Boring Technology and Risk Management
Long-standing software usually requires less upkeep than new tech, primarily due to our understanding of its known unknowns and unknown unknowns2. All software, old or new, contains both, but new technology tends to have a higher count of both. Choosing mature technology, therefore, minimizes these risks, making it a safer choice for startups that can't afford major hiccups in their growth journey.
Recruitment and Maintenance Considerations
Choosing popular, well-established technologies has advantages when it comes to recruitment and maintenance. Such technologies have a larger talent pool, making it easier to hire skilled developers1. They also come with extensive community support, aiding in problem-solving and continuous learning. Furthermore, these technologies usually have extensive documentation and proven solutions to common problems, simplifying the maintenance process3.
Synergies Matter: The Importance of Technology Combinations
Choosing a reliable technology like Postgres isn't enough; the combination of chosen technologies matters2. Adding a new technology to an existing stack should be done with consideration to potential compatibility issues. Thus, wise tech selection isn't just about individual tools but their synergy2.
Weighing the Costs: Operational Complexity and Technology Choices
The complexity of running a technology professionally shouldn't be underestimated. One-time successes, such as the development of Etsy's activity feeds using Memcached instead of the newer Redis, highlight the value of using mature and understood technology2. Each new tech brings baggage, with operational costs often outweighing the convenience of using something different2.
The Right Kind of Boring
As an engineering leader, it's your responsibility to strike a balance between adopting new technology and ensuring reliability. The technology you choose should be sufficiently mature to guarantee stability, yet modern enough to meet your project's requirements and attract talent1. It's about choosing technology that's ‘boring’ enough to be reliable, yet ‘interesting’ enough to engage your team and meet your customers' needs.
The Bottom Line
Choosing the right technology is a critical decision for any startup, particularly those in the scaling phase. While there's undoubtedly a place for new technology, it's essential to recognize the value that 'boring' technology brings to the table. Stable, reliable, and tested — sometimes, being a little boring is just what your startup needs to scale successfully.
Prioritize well-understood technologies, consider your tech needs holistically, and strive for mastery in the tools you choose. Every piece of software presents its own challenges; thus, the tool you hate the most could be the one you know best and should probably be using2.
Footnotes
- D. McKinley, "Choose Boring Technology"
- D. McKinley, personal experiences and reflections
- J. Spolsky, "Joel on Software"