Back

Published

The Counterintuitive Rule That Separates Senior Engineers from Everyone Else

The most productive developers aren't the ones writing the most code — they're the ones who've mastered the discipline of doing less. Here's why subtraction beats addition in engineering.

The Myth of Output as Progress

Watch any engineering team for a week and you'll notice something: the developers who produce the most visible activity — commits, pull requests, comments, Slack messages — are rarely the ones moving the needle. The correlation between volume of output and actual progress is weaker than most people think, and in many cases, it's inverted.

This isn't a lazy rationalization. It's a structural feature of complex systems. Adding code adds entropy. Adding features adds surface area. Adding abstractions adds cognitive load. Every line you write is a line someone has to read, debug, maintain, and eventually rip out. The senior engineers who seem to glide through sprints aren't faster typists — they've internalized a principle that feels wrong at first: the highest-leverage action is almost always subtraction.

Why Your Brain Fights You on This

Humans are wired for additive solutions. When a problem appears, our instinct is to add something — a new service, a new layer, a new process. Research from behavioral psychology confirms this: when asked to improve a system, people overwhelmingly propose additions rather than removals, even when removing something would be more effective.

In software, this bias is catastrophic. Consider what happens when a system gets slow. The instinct is to add caching, add indexing, add a new microservice to offload traffic. But the correct move is almost always to find the O(n²) loop, the N+1 query, the unnecessary serialization step — and remove it. Addition treats symptoms. Subtraction treats disease.

The best code is no code. The best architecture is no architecture. The best process is no process. Every artifact you introduce is a liability pretending to be an asset.

The Three Domains of Subtractive Thinking

1. Code: Delete More Than You Write

Most codebases suffer from accumulation, not scarcity. Feature flags that outlived their experiments. Utility functions called from one place. Entire modules kept alive because someone might need them. This dead tissue slows everything — IDEs, builds, reviews, onboarding.

The discipline here is simple but painful: if you're not prepared to maintain it forever, don't write it. And when you find code that isn't earning its keep, delete it ruthlessly. Version control remembers everything. The fear of losing something is always greater than the actual cost of rewriting it when — and if — you actually need it.

  • Delete unreachable branches and unused exports every sprint
  • Consolidate three wrappers doing the same thing into one
  • Replace a hundred lines of hand-rolled logic with a well-understood pattern from the standard library
  • If a module has fewer than three consumers, question whether it should exist at all

2. Process: Eliminate Ceremonies That Don't Produce Decisions

Standups where people read their calendars aloud. Sprint retros that generate the same three sticky notes every two weeks. Architecture review meetings where everyone agrees because no one actually read the RFC. These aren't processes — they're performance art.

The test is blunt: does this meeting change a decision someone was going to make? If not, it's waste. The best teams run lean on ceremony because they've built trust and clarity into the system itself — through good documentation, clear ownership, and async communication that respects attention.

What to cut:

  1. Status meetings → Replace with a written update that takes 90 seconds to read
  2. Consensus-seeking discussions → Replace with a designated decider and a short objection window
  3. Recurring syncs that no one misses → Just cancel them. No one will complain.

3. Scope: Solve One Problem Completely

The most seductive trap in engineering is scope creep disguised as ambition. You start fixing a bug, notice a related inefficiency, realize the whole subsystem could use a refactor, and suddenly you're three weeks deep in a rewrite that no one asked for. The original bug? Still there.

Senior engineers develop a visceral aversion to scope expansion. They define the smallest possible change that solves the problem, ship it, and then ask whether the next thing is actually worth doing. This isn't small thinking — it's precise thinking. A small, complete solution teaches you more than a large, half-finished one.

The Emotional Cost of Doing Less

Here's the uncomfortable truth: subtractive work doesn't feel productive. Deleting 2,000 lines doesn't give you the dopamine hit of writing 200. Cancelling a meeting doesn't look like leadership on a performance review. Saying “we're not going to build that” feels like a loss, not a win.

This is why most teams never do it. The reward systems in most organizations — commits as productivity metrics, features shipped as KPIs, headcount as status — all incentivize addition. You have to build your own internal compass.

The developers who last — who avoid burnout, who ship work they're proud of years later, who become the people others seek out for hard problems — share one trait: they treat their attention as the scarcest resource and guard it with ferocity. They say no. They delete. They simplify. And when they finally do add something, it lands with the weight of something that was actually thought through.

How to Start Tomorrow

You don't need a framework or a methodology. You need one habit: before you write a new line of code, before you schedule a new meeting, before you propose a new service — ask yourself what can I remove instead?

Nine times out of ten, the answer will be unsatisfying. The problem genuinely needs something new. But that tenth time — that's where the leverage lives. That's where you find the O(n²) loop, the redundant meeting, the feature no one uses, the abstraction that adds nothing. And that tenth time pays for all the others.

The best engineers don't write more. They leave less behind. Master that, and everything else — speed, clarity, impact — follows.

developer productivity
software engineering
deep work
career growth
systems thinking

0 Likes

Comments
0