← All posts

Opinion Process

Your Productivity Problem Isn't Meetings—It's Context Switching

Meetings get blamed for lost focus, but context switching is the real productivity killer draining your dev team.

Developer caught between multiple simultaneous interruptions at desk with notifications, colleague, and unfinished code on screen

Meetings have become the default villain in every developer productivity conversation. Cancel the standups. Reclaim the calendar. Declare Wednesdays meeting-free. The diagnosis is always the same: meetings are the reason engineers cannot get deep work done. And while I am not here to defend bad meetings—they absolutely exist and absolutely waste time—I think the meetings-are-the-problem framing is letting the real culprit walk free. The thing that is actually destroying developer productivity is context switching, and meetings are just one of its many causes. Fix only the meetings and you will still have engineers who cannot sustain meaningful focus for longer than twenty minutes.

Why meetings became the easy target

Meetings are visible. They appear on the calendar with a start time, an end time, and sometimes an agenda. They are easy to count, easy to complain about, and easy to cancel. When an engineer looks at a fragmented day and asks why they got nothing done, the two-hour block labeled "Sprint Planning" is the obvious answer. It is sitting right there, guilty and rectangular.

What is harder to see is the invisible tax paid between the meetings. The Slack message that arrived mid-thought and pulled attention sideways for four minutes. The pull request review that felt quick but cost fifteen minutes of mental reorientation afterward. The "do you have two minutes?" that became twenty. The tab opened to check one thing that triggered a chain of related checks. These interruptions do not appear on the calendar. They leave no evidence. But they are carving up focus into chunks too small to do anything meaningful with.

Research on cognitive load and attention—and here I am arguing from engineering experience rather than citing specific studies, because the numbers get misquoted constantly—consistently points in the same direction: recovery time after an interruption is much longer than the interruption itself. A two-minute distraction can cost fifteen to twenty minutes of rebuilt concentration. Stack several of those across a morning and the deep work window effectively disappears, even on a day with no meetings at all.

What context switching actually costs developers specifically

Context switching is particularly expensive for software engineers because the work demands an unusually large and fragile mental workspace. To make progress on a complex problem, a developer needs to hold simultaneously in working memory: the current state of the system, the change being made and why, the edge cases in scope, the constraints from adjacent systems, and the thread of reasoning that got them to this point.

Building that mental model takes time. Losing it is instant. And unlike a spreadsheet or a document where you can visually reconstruct where you were, a code problem often requires rebuilding the entire mental context from scratch before you can take the next meaningful step.

This is why developers who look unproductive on paper—one commit, three hours, one review—may have done the hardest cognitive work of the day. And it is why the same developer, interrupted every thirty minutes, produces shallow work even when they are technically at their desk and "available" all day.

The forms of context switching that do not look like context switching

The obvious sources are well understood: notifications, impromptu meetings, open office interruptions. The subtler ones do more damage because they are invisible:

  • Too many parallel workstreams: An engineer assigned to three different features simultaneously is context switching by design, even on a quiet day with no interruptions. The cognitive overhead of tracking multiple problems in parallel is enormous and largely unacknowledged in sprint planning.
  • Being on-call while expected to ship features: On-call is a context switch waiting to happen. The anticipation of a possible page alone degrades the quality of focus available for deep work, even when the page never comes.
  • Unresolved blocking questions: When an engineer is waiting on an answer before they can proceed, the temptation to switch to another task and "come back to it" creates a switching debt that compounds through the day.
  • Review and feature work interleaved: Jumping between writing new code and reviewing colleagues' code requires shifting between fundamentally different cognitive modes—generative versus critical. Both are valuable. Done interleaved throughout the day, both suffer.
  • Communication tools set to always-on: The expectation of a fast Slack response is a standing invitation to interrupt. Engineers who feel obligated to respond within minutes cannot enter the sustained focus window that hard problems require.

The counterargument: meetings do cause context switching

The honest rebuttal here is that meetings and context switching are not actually separate problems—meetings cause context switching. A meeting dropped in the middle of the afternoon does not just consume its own time. It fragments the blocks on either side into chunks too short for deep work. Three hours becomes two forty-five-minute windows, and forty-five minutes is rarely enough to get fully into a hard problem.

That is a legitimate point. Poorly scheduled meetings absolutely create context switching costs beyond their own duration. The meeting is not innocent.

But the implication—that removing meetings solves the focus problem—only holds if meetings are the primary fragmentation source. For most engineering teams I have seen, they are not. A meeting-free day with Slack open, three parallel tickets in progress, an on-call rotation running, and a culture of fast response expectations is still a day carved into fragments. The calendar looks great. The focus is still gone.

Treating meetings as the root cause rather than one contributing cause leads teams to cancel standups while leaving the deeper fragmentation structures completely intact.

What actually helps

The goal is not fewer interruptions as an end in themselves. The goal is sustained focus windows long enough for hard thinking. Here is what moves that needle:

Limit work in progress per engineer

One or two active workstreams per engineer, not five. This is the single highest-leverage change most teams can make. It is also the one that creates the most friction with product managers, which is exactly why it requires explicit team agreement rather than individual discipline.

Separate focus time from response time structurally

Not "no Slack before 10am" as a personal rule that evaporates under social pressure. Actual team agreements about response windows. Asynchronous by default, with a shared understanding of what constitutes an emergency worth interrupting focus for. The standard should be set by the team, not left to individual willpower.

Batch the cognitive mode switches

Review blocks. Writing blocks. Planning blocks. Rather than interleaving different types of cognitive work throughout the day, group similar work together. Review pull requests in a dedicated window rather than responding to every review request as it arrives. This reduces the switching cost significantly without reducing total output.

Fix the meeting schedule as part of the solution, not the whole solution

Consolidate meetings to create genuine half-day or full-day focus blocks. A morning of meetings and an afternoon of protected focus is dramatically better than meetings scattered across the day. But do this alongside the other changes, not instead of them.

Make parallel assignments visible and limit them

In sprint planning, make it explicit when an engineer is being asked to work across multiple contexts. Name the switching cost. Then decide whether the business need justifies it rather than letting it happen invisibly by default.

Where I land

Meetings are a real cost. Some of them should absolutely be emails, docs, or simply cancelled. I am not defending the two-hour weekly status update that could have been a dashboard.

But if your team eliminates the bad meetings and still finds engineers struggling to do deep work, you have confirmed my point: context switching was always the real problem. Meetings were just its most visible symptom.

The fix requires addressing fragmentation at the structural level—how work is assigned, how communication is expected to flow, how cognitive modes are scheduled across the day. That is harder than cancelling a standup. It requires team agreement, manager support, and a willingness to protect focus as a first-class engineering resource rather than an individual's personal preference.

Stop blaming the meetings. Start auditing the fragments. That is where the lost hours actually are.