Building software (or anything really complex) is challenging for a number of reasons. One of the central themes, though, is a tension between the short term and long term perspectives. This manifests in lots of different ways - often in design, for example, the quick hack gets you going but in the long term becomes the dreaded “technical debt”.
But debt is kind of the wrong metaphor here - you didn’t “borrow” some tech that you have to pay back. It’s more that, in the early phases, you focused on a more narrow set of problems, because you needed to. The error wasn’t the focus per se, it was that the narrow context was focused on for too long.
But starting out with a very broad focus (“long term architecture”) can also be lethal - there are many teams who have failed to succeed because they didn’t spend enough time on the more immediate context of product/market fit, and wound up either being late or never finishing.
Context also matters when looking at metrics. It’s always easy to find some kind of vanity metric that will tell you the story you want to hear - just like it’s easy to feel good at the end of a day of hard coding on a “hack” that gets the wrong thing done. It’s really critical when using data and building metrics to find the metrics that really reflect your business goals. Maybe feature count is really important to your sales team, but performance and stability is important to your users. Watching engagement might tell a better story than just watching sales, if you’re not watching for churn. It’s easy to get lost in any of these numbers - you can watch latency and feel great about product health but if no one is using the product, it doesn’t matter.
Context is hard to get right but really critical in a number of areas of software design. We can only focus on one context at a time, so having the meta-cognitive ability to think about which context to focus on, and to actively switch between them to get the right mix, is a critical skill for engineers and business folk alike.
Totally agree. I wonder if there's a good signal for noticing that you've gone "off-track"