DEV Community

Gus Woltmann
Gus Woltmann

Posted on

The Illusion of Progress: When Shipping More Code Slows You Down

In almost every development team, there’s an invisible metric that drives behavior: lines shipped. Not official lines of code, not commits, not tickets closed, but the feeling that “we built a lot this sprint.”

It feels productive. It looks productive. It’s often the opposite.

The Trap of Visible Output

Developers love building. Product managers love roadmaps. Stakeholders love demos. So we optimize for visible output: new features, new screens, new integrations.

But here’s the uncomfortable truth:

Every line of code is a liability the moment it’s written.

Code must be:

  • Maintained
  • Understood
  • Refactored
  • Tested
  • Secured
  • Migrated

The more you ship, the more you owe your future self.

Yet most teams don’t measure maintenance cost. They measure feature velocity.

The Hidden Cost Curve

Early-stage products move fast because:

  • The codebase is small
  • Decisions are fresh in memory
  • Architecture is flexible
  • Technical debt hasn’t compounded

Over time:

  • Edge cases multiply
  • “Temporary” fixes fossilize
  • Knowledge silos form
  • Refactors become risky

Velocity drops. Meetings increase. Fear grows. And the solution often becomes: “Let’s move faster.” Which makes it worse.

Seniority Isn’t About Writing Code

Junior developers optimize for implementation.
Mid-level developers optimize for patterns.
Senior developers optimize for deletion.

The best engineers I’ve worked with didn’t impress me with how much they built — they impressed me with how much they simplified.

They:

  • Removed abstractions that added no value
  • Deleted dead features
  • Replaced clever solutions with boring ones
  • Chose stability over novelty

Boring systems scale. Clever systems collapse.

The Real Productivity Metric

What if instead of asking:

“How much did we ship?”

We asked:

“How much complexity did we remove?”

Imagine a sprint demo where the highlight is:

  • Reduced service count from 12 to 8
  • Deleted 3,000 lines of legacy code
  • Simplified auth logic
  • Removed one unnecessary configuration layer

That’s long-term velocity.

Practical Takeaways

If you’re part of a dev team, try this:

  • Add a “deletion goal” each sprint.
  • Refactor one painful area before adding new features.
  • Document trade-offs, not just implementations.
  • Reward simplicity in code reviews.
  • Measure onboarding time for new engineers — it reflects system health.

Complexity compounds. So does clarity.

The best systems aren’t the ones that can do everything.
They’re the ones that are easy to change.

And in software, the ability to change is the only real competitive advantage.

Top comments (0)