Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1AO6FFBlE4Y - The Hidden Costs of Poor Quality Code—and How to Turn It Into a Superpower #145

Closed
MrHinsh opened this issue Nov 21, 2024 · 0 comments · Fixed by #146
Closed
Labels

Comments

@MrHinsh
Copy link
Member

MrHinsh commented Nov 21, 2024

Current Page: https://nkdagility.com/resources/videos/the-high-cost-of-poor-quality-code/

The Hidden Costs of Poor Quality Code—and How to Turn It Into a Superpower

Hi, I’m Martin Hinshelwood, and today I want to dive into a topic that’s close to my heart: the true cost of poor-quality code. Over the years, I’ve seen countless organizations grapple with this issue, and the impacts aren’t just financial—they're deeply ingrained in productivity, team morale, and even brand reputation. Let’s unpack this and talk about how improving code quality can become your organization’s superpower.

The Obvious Costs of Poor-Quality Code

When we talk about poor-quality code, the first thing that comes to mind is bugs. Fixing bugs is expensive, especially when they’re discovered late in the development process. Here’s why:

  • Cost increases exponentially: The closer you get to production, the more expensive it becomes to fix a bug. Once it’s in the hands of your customers, that cost skyrockets.
  • Customer support strain: Poor-quality code means more issues for your support team to handle, taking resources away from proactive tasks.

The Hidden Costs You Might Be Overlooking

Beyond the obvious, there are hidden costs that many organizations don’t account for:

  1. Brand Reputation

    Your product’s quality reflects on your brand. A high-profile example is CrowdStrike, which faced massive global fallout due to poor engineering practices. Here’s what happens:

    • Poor-quality products or processes damage trust.
    • Customers notice when you cut corners, and your competitors will capitalize on that.
  2. Team Productivity

    When teams spend hours firefighting instead of building, it drains morale and efficiency. Common culprits include:

    • Complex branching strategies: I’ve worked with a company that had 96 teams and 96 long-running branches, each with its own sub-branches. The cost of maintaining and merging these was staggering.
    • Supporting multiple versions: Supporting every customer’s version of a product not only increases costs but also cognitive load on engineers. Fixing the same bug across 10 different versions? It’s a nightmare.

Missed Opportunities: The Silent Killer

Every hour your team spends fixing old problems is an hour they’re not innovating. Ask yourself:

  • What features are you not shipping because your team is buried in avoidable work?
  • What competitive edge are you losing because you can’t move quickly?

Let me share one of my favorite examples: the Azure DevOps team. They went from needing 72 hours to validate their code to just 3.5 minutes by paying down technical debt. The result? They tripled their productivity, delivering 60+ features to production in a year where they weren’t even focused on features. Imagine what your team could achieve with that kind of efficiency.

The Technical Debt Trap

Technical debt isn’t just about cost—it’s about missed opportunities. Think of it as money left on the table:

  • Higher cognitive load: Engineers waste mental energy juggling old and new systems.
  • Security risks: When security is an afterthought, it’s expensive—and risky—to fix foundational problems. Hackers love peeling back quick fixes.

The Path to High-Quality Code

Turning poor-quality code into a superpower isn’t easy, but it’s absolutely worth it. Here’s how to get started:

  1. Reduce Branching
    Aim for a simpler branching strategy. Consolidate where possible and focus on continuous integration.
  2. Limit Versions
    Support only the latest version of your product (with rare exceptions). This minimizes backporting and reduces complexity.
  3. Invest in Engineering Excellence
    Prioritize refactoring and modern engineering practices, like:
    • Small, discrete unit tests over long-running system tests.
    • Reducing feedback loops to catch issues early.
  4. Bake Security Into the Process
    Security shouldn’t be an afterthought. Integrate it into your development process to avoid costly patches and breaches.

A Superpower for Your Team and Organization

When you commit to high-quality code, the benefits are exponential:

  • Increased productivity: Your team can focus on innovation, not firefighting.
  • Happier customers: Fewer bugs and more features lead to higher satisfaction.
  • Stronger brand reputation: Consistency builds trust.

Investing in quality is like paying off a loan—you make small, consistent payments over time, but the payoff is enormous. With high-quality, working software delivered regularly, your organization can achieve its full potential.

So, what’s holding you back? Start investing in your team’s engineering practices today, and watch as your organization transforms.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
1 participant