ertac.paprat.com
EN

← Writing

Developer Productivity: A Busy Coding Day Can Still Produce Nothing

· 3 min read · English

Rewritten: . Rewritten with AI assistance. Examples and tool references follow the original publication period.

By the end of the day, the editor has been open for eight hours. A pull request is waiting for review. Another change is blocked on a product decision. A third is half-finished because an incident interrupted it.

There has been plenty of activity. Very little has reached a user.

Advice about developer productivity often starts inside the individual: concentrate harder, learn shortcuts, arrange the perfect morning routine. Those suggestions can help. They have limited reach when the main delay lives between people or between stages of work.

Watch where one change spends its time

Pick a small change and follow it from request to release. Record when it is actively being worked on and when it is waiting. Keep the categories simple enough that recording them does not become a second job.

You may find the difficult code took an hour, while clarifying an acceptance condition took a day and review took another two. Or you may find that review was prompt and the real problem was an unreliable local test environment. Those findings imply different interventions.

This is an observation exercise to try, not a claim about how all teams spend their time. The result should surprise you occasionally. If every delay confirms that someone else is the problem, examine how you are categorizing it.

Fewer unfinished things can beat faster starts

Starting a new task while waiting for feedback feels productive. Repeating that move creates a queue of half-remembered contexts. When feedback arrives, each task demands reconstruction before useful work resumes.

A practical limit on work in progress can help: finish or unblock one existing change before opening another substantial one. This requires cooperation. A developer cannot personally fix a review queue if nobody has time allocated to review.

Small pull requests reduce the amount a reviewer must hold in mind, provided each change still tells a coherent story. Splitting one logical change into ten interdependent fragments can increase coordination work instead.

The useful unit is a reviewable decision, not an arbitrary line-count target.

Protect a block of attention—and leave a return path

When work genuinely requires sustained thought, reserve time with fewer interruptions. The exact interval can vary. A timer that helps someone begin a tedious task may interrupt another person halfway through understanding a failure.

Before switching away, leave a brief note: what is established, what remains uncertain, and the next experiment. “Investigating checkout bug” is much less useful than “The duplicate request reaches the handler; next check whether the idempotency record is committed before the response.”

This note reduces the cost of returning. It can also help a teammate continue if the interruption lasts longer than expected.

Measure the result without rewarding theater

Lines of code, commits, and hours at the keyboard are easy to count. They can reward splitting work, adding unnecessary code, or staying visibly busy. They are weak stand-ins for useful progress when treated alone.

The SPACE framework describes developer productivity across satisfaction and well-being, performance, activity, communication and collaboration, and efficiency and flow. Its value here is the reminder that one activity measure cannot carry the entire judgment.

For a one-week experiment, choose one suspected bottleneck and one change: a review window, a clarified definition of ready, or a protected block of time. Observe whether work finishes more reliably and whether the burden merely moves elsewhere.

A day with fewer visible actions can be a better day if it closes a loop that has kept three people waiting.