Complexity is a death by 1000 cuts
It starts innocently enough. You've got a solid product, a streamlined process, or a well-oiled machine of a business and then...
You've probably heard the phrase “death by a thousand cuts”. It's a vivid way to describe how small, seemingly insignificant problems can accumulate over time to create a much larger, potentially fatal issue. In the world of software, product development, and business in general, we face a similar threat: death by a thousand complexities.
The Allure of "Just One More Thing"
It starts innocently enough. You've got a solid product, a streamlined process, or a well-oiled machine of a business. Then someone (maybe even you) says, "Hey, wouldn't it be great if we added just one more feature?" Or, "What if we tweaked the process to handle this edge case?" Before you know it, you're adding layer upon layer of complexity, each one justified by some potential benefit or use case.
The Hidden Costs of Complexity
Then you expand (yay!). More language, more geographics, more customer segments. We all like it. We all want it. We tend to be so excited by opportunities that we ignore the fact that brings all the processes, languages, people in supporting/ops roles to help you manage hiring, compliance and all of that stuff that comes with expanding to “very similar” markets and segments.
Here's the kicker: each of these additions comes with a cost. It might be minimal at first – a bit more code to maintain, a slight increase in onboarding time for new team members, or a few more steps in your workflow, just one more person in a team. But these costs compound. They multiply. They interact in ways you couldn't have predicted.
Suddenly, you're spending more time managing complexity than building value. Your team is bogged down in meetings discussing edge cases. Your codebase is a labyrinth that new developers fear to enter. Your customers are overwhelmed by options they never asked for and rarely use.
Complexity compounds
Most founders understand technical debt. It's that quick-and-dirty solution you implemented to hit a deadline, promising yourself you'll clean it up later. Complexity debt is quite similar, but more tricky because it’s typically rooted on a few different levels - tech, processes, organisational structure.
Suddenly, you need a lot of folks to manage something that sounds quite simple. Look at the twitter in the pre-Musk area, 7500 employees to manage that quite simple website. It’s the final form of compounded complexity.
Just as with technical debt, you need to dedicate some time to pay this complexity debt regularly over time. Unify pricing, remove or simplify few internal processes, question this supplier, remove that feature 1% users use, replace this custom logic with an open-source library, rethink (reduce?) this specific part of your org chart etc etc.
Remember, every time you say “no” to unnecessary complexity, you're saying “yes” to focus, clarity, simplicity and sustainability (with pre-ESG meaning!). You're choosing to build something that can stand the test of time, rather than collapsing under its own weight.
In general, keep things simple stupid.
Your future self (and your customers & employees ) will thank you.
JP
I love how one picture of a complete graph perfectly illustrates the concept of compounded complexity