I Hear You, But Let’s Rethink This
Engineers frequently approach with the refrain, “Let’s slow down and address our tech debt,” or “We had to cut corners last time to meet our deadline; we need to tidy up.”
Or, they might adopt a diplomatic tone, stating, “We need to concentrate on scalability to accommodate more users.”
You’ve nurtured a culture of pushing beyond limits, extra effort, and going the extra mile. So when you receive this kind of advice, something deep inside feels out of place. And you’re absolutely right.
Features, Features, Features
Let’s kick this off by stating one irrefutable truth: you cannot go wrong by adding more features. It’s irrelevant if they aren’t groundbreaking, if they’re underutilized by your users, or if you’re just trying to catch up with competitors.
Constructing features broadcasts a robust signal to the market (customers, competitors, investors) that you’re a relentless force with the brightest engineers in the world, and you’re not backing down.
This sentiment echoes within your team too.
Drawing the Line: Building Features vs. Breaking Things
Now, it’s important to establish some boundaries here. I’m not endorsing the reckless mantra of “Move fast and break things.” Nor am I discouraging the cleanup of tech debt or attention to scalability issues (which, let’s be honest, engineers love). I’m emphasizing that the development of new features should never be halted.
Even if you’re a one-engineer startup, a minimum of 50% of your time should be committed to developing new features.
Is It Time to Question the Status Quo?
Perhaps, at this point, you’re wondering, “Isn’t tech debt important? Shouldn’t we address scalability issues?” Yes, both are important and yes, they should be addressed. But not at the cost of stagnating feature development.
Ask yourself, “Can we afford to halt progress while we’re ‘tidying up’?“
The Solution Lies in Balance
The solution, as I see it, lies in striking a balance.
It’s not about completely ignoring tech debt or scalability issues. It’s about finding harmony between maintenance and innovation. You don’t want to get stuck in an endless loop of ‘fixing,’ missing out on creating what’s new and essential.
Consider your engineering efforts as a pie. At least half of it should always be dedicated to building new features. The remaining pie can then be sliced into tech debt, scalability, and other priorities.
Practical Guide: Making It Work
Let’s dive into a practical guide on how to strike this balance:
- Clarify your vision: Clearly define what you want to achieve with your product. This will help guide your feature-building efforts.
- Assess: Regularly evaluate your tech debt and scalability needs. Balance these needs with your new feature development.
- Prioritize: Use data and user feedback to prioritize what features to build next. Make sure these align with your product vision.
- Allocate Resources: Remember, at least 50% of your time should be dedicated to feature-building.
- Iterate and Review: Always be ready to reassess your strategy. Regular reviews help identify any required course corrections early.
For more insights on striking this balance, I recommend reading “The Lean Startup” by Eric Ries.
Remember, relentlessly building more features is a signal of your persistent commitment to growth.
Even amidst housekeeping tasks like addressing tech debt or scalability issues, never lose sight of the fact that innovation fuels growth. And that is ultimately the kind of force you want to be.