
Let’s call your daily standup what it really is: a hostage situation. You’re standing in a circle—or staring at a grid of grainy faces—while Dave from DevOps recites his life story disguised as a status update. You’re not collaborating. You’re waiting for your turn to speak so you can finally get back to the work that the meeting itself is preventing you from doing. The biggest technical problem in most engineering orgs isn’t a microservice latency spike or a memory leak in production. It’s the synchronous communication tax that bleeds your team dry, one 30-minute block at a time.
I’m Fritz Muller. I’ve spent enough years in the trenches to know that the best code gets written when nobody is talking to you. The cult of the meeting has convinced managers that butts in seats—or cameras on—equals productivity. It’s a comforting lie. What it actually equals is context-switching, burnout, and a codebase that looks like it was assembled by a committee of caffeinated squirrels. We need to treat engineering culture with the same rigor we apply to our systems. The diagnosis is clear: fewer meetings, more async.
The Synchronous Sinkhole
Synchronous communication—meetings, impromptu desk taps, Slack huddles—is a brute-force solution to a coordination problem. It assumes the fastest way to align is to stop everyone’s world at the same time. For a production firefight, sure. Grab the war room. But for a daily ritual that asks, “What did you do yesterday?” you’re torching cognitive fuel for a status report that could be a three-line message. The math is ugly. A 15-minute standup for a team of six engineers doesn’t cost 15 minutes. It costs 90 minutes of focused work, plus the 20-minute ramp-up each person needs to get back into flow. That’s a half-day of productivity, vaporized, every single week. For a status update.
And it’s not just standups. Sprint planning, retrospectives, “quick syncs” that metastasize into architecture debates—these are all symptoms of a deeper dysfunction. We default to meetings because we don’t trust the written word. We don’t trust that a design doc will be read, that a comment in Linear will be seen, that a Loom video will be watched. So we force the interaction, guaranteeing that the work stops. It’s the organizational equivalent of a distributed system that uses blocking I/O instead of an event loop. It doesn’t scale.
Async Is a System Design Choice
Asynchronous communication isn’t just “sending an email instead of having a meeting.” It’s a fundamental re-architecture of how your team processes information. Think of it as moving from a tightly coupled monolith to a well-designed event-driven architecture. Each message—a pull request description, a technical spec, a recorded demo—is an event. Team members consume those events when their own event loop is ready, process them, and emit their own events in response. No blocking. No thread starvation. Just a steady, high-throughput stream of progress.
This requires discipline. You can’t just fire off a half-baked Slack message and call it async. The quality of the artifact matters. A good async update is self-contained, provides context, and anticipates questions. It’s the difference between a commit message that says “fix bug” and one that explains the root cause, the fix, and the testing done. The former creates more meetings. The latter closes the loop. When you treat communication as a first-class engineering artifact, you start to see meetings as the exception handler, not the main execution path.

The Tools Are Already There, You’re Just Using Them Wrong
Your team already has the tools for a fully async workflow. You’re just using them as a notification layer for the next meeting. Let’s run through the stack:
Slack (or Teams, or Whatever Microsoft Is Calling It This Week)
Stop using it for real-time chatter. Use it for persistent, searchable, threaded updates. A channel per project, with a strict norm: no “@here” unless the server room is literally on fire. Daily standup updates go in a dedicated thread. People read them when they start their day. Questions and clarifications happen in the thread, asynchronously. If a thread spirals into a debate that needs higher bandwidth, then you schedule a focused, time-boxed call with a clear agenda and only the necessary people. The default is text. The exception is voice.
Pull Requests as the Primary Collaboration Point
A pull request is not just a code review. It’s a design discussion, a knowledge transfer, and a historical record. Write PR descriptions that explain the “why,” not just the “what.” Link to the spec, the ticket, the previous failed attempt. Reviewers should leave comments that are complete thoughts, not “let’s hop on a call to discuss.” If you find yourself typing “let’s sync,” stop. Type out your concern. Propose an alternative. Attach a screenshot. Treat the PR as the canonical source of truth for that change. A well-run PR process eliminates the need for a separate “code review meeting” and a “design review meeting” and a “let’s make sure we’re all on the same page” meeting.
Recorded Demos and Loom Videos
Live demos are a waste of collective time. They’re a performance where one person fumbles with their terminal while 10 others pretend to care. Record a five-minute walkthrough. Show the happy path, the edge cases, and where the bodies are buried. Post it in the project channel. People watch it on 2x speed when they’re in the right headspace. They pause, rewind, and leave timestamped comments. You’ve just turned a synchronous 30-minute meeting into an asynchronous, self-serve resource. If you’re not doing this, you’re choosing ceremony over effectiveness.
Decision Records and RFCs
For any non-trivial technical decision, write a short document. Outline the problem, the options considered, the trade-offs, and the chosen path. Circulate it for comment. Give people 24 hours to read and respond. Then, if there’s still disagreement, have a focused discussion. This is the “Request for Comments” process that built the internet. It works. It prevents the “let’s get everyone in a room and argue” anti-pattern that leads to design-by-committee disasters and loudest-voice-wins architecture.
The Cultural Shift: From Presence to Progress
Moving to async isn’t a tooling problem. It’s a trust problem. Managers who demand synchronous standups are often signaling that they don’t trust their engineers to be working unless they’re seen working. This is factory-floor thinking applied to knowledge work. It’s stupid. You hired smart people. Let them prove their progress through artifacts, not attendance. The measure of an engineer is the code they ship, the bugs they fix, the designs they document—not the eloquence of their morning monologue.
This shift requires explicit norms. Write them down. “We default to asynchronous communication. Meetings are a last resort, scheduled with a clear agenda and a hard stop. Status updates are written, not spoken. Decisions are documented, not shouted.” Then, enforce it. When someone tries to schedule a meeting to discuss something that could be a document, push back. Ask for the doc. When someone interrupts a colleague with a tap on the shoulder, remind them of the async-first norm. This is culture change, and culture change is hard. But so is debugging a race condition at 2 a.m. You do it because the alternative is worse.
One of the biggest objections I hear is, “But we’ll lose the human connection!” This is sentimental nonsense. You don’t build camaraderie by forcing everyone to recite their Jira tickets in a circle. You build it by working together on hard problems, by having thoughtful async debates, and by occasionally getting together for a non-mandatory, actually-fun social event. The forced fun of a daily standup is about as bonding as a root canal. Real connection happens when you respect people’s time and autonomy, not when you treat them like children who need a morning roll call.

Handling the Hard Cases
Some work genuinely benefits from synchronous discussion. Brainstorming new features, resolving a complex architectural dispute, or giving tough feedback. The key is to be intentional. Schedule a focused session with a clear outcome. Use a technique like “silent reading” of a proposal doc for the first 10 minutes, so everyone is on the same page before a single word is spoken. Time-box the discussion ruthlessly. If it’s not resolved, document the open questions and take it async again. The meeting is a tool, not a lifestyle.
Another hard case: the engineer who refuses to write. Some people are just bad at written communication. They’d rather talk for an hour than write a coherent paragraph. This is a performance issue, not a communication preference. In a modern engineering team, the ability to write clearly is as fundamental as the ability to write clean code. If an engineer can’t document their design, they can’t scale their impact. Coach them. Give them templates. But don’t let their weakness drag the whole team back into the meeting room. The team’s throughput is more important than one person’s comfort zone.
Measuring What Matters
If you stop measuring hours-in-meetings and start measuring artifacts-produced, you’ll see a shift. Track the number of decisions documented per week. Track the median time-to-merge for pull requests. Track the number of unplanned interruptions. These are the metrics of a healthy engineering team. When you cut the meetings, you’ll see a spike in deep work. You’ll see fewer bugs because people have time to think. You’ll see better design because proposals are written, circulated, and critiqued thoughtfully instead of being whiteboarded in a rush 10 minutes before the next standup.
And for the love of all that is compilable, stop with the “daily standup is sacred” religion. It’s not. It’s a process smell from a framework that was designed for co-located teams building monoliths in the early 2000s. We’re building distributed systems with distributed teams. Our communication patterns should match our architecture. Async is not a compromise. It’s an upgrade.
Frequently Asked Questions
Won’t async communication slow down decision-making?
Only if you confuse activity with progress. A decision made in a 30-minute meeting that wasn’t thought through will be unmade in the following days, costing far more time. Async decision-making, with a clear proposal and a 24-hour comment period, often leads to faster implementation because the decision is more durable. For true emergencies, you still have the phone. But how many of your daily decisions are actual emergencies?
How do we keep remote team members from feeling isolated without daily calls?
Isolation doesn’t come from a lack of meetings. It comes from a lack of meaningful interaction and shared context. Async practices like well-written project updates, active discussion threads on technical decisions, and occasional, well-planned virtual social events build stronger connections than a daily status call where 80% of the time is spent on updates irrelevant to most attendees. Focus on the quality of interaction, not the frequency.
What if management insists on synchronous standups?
This is a political problem, not a technical one. Gather data. Run a two-week experiment where the team does async standups in a dedicated Slack thread. Measure the team’s output, the number of blockers resolved, and the team’s self-reported satisfaction. Present the results. If management still insists on the meeting after seeing that the team is more productive and happier without it, you have a culture problem that no amount of process tweaking will fix. At that point, you might consider whether you want to work for people who value ritual over results.
Doesn’t async communication just replace meetings with endless Slack threads?
It can, if you do it poorly. The goal isn’t to move the meeting into a chat window. It’s to change the nature of the communication. A good async update is a structured, thoughtful artifact. It’s not a stream of consciousness. It has a clear subject, context, and call to action. It’s designed to be consumed efficiently. If your Slack threads are turning into endless, unstructured back-and-forths, the problem isn’t async—it’s that you’re still communicating as if you’re in a meeting. Apply the same rigor to your writing that you apply to your code.
The bottom line: your team’s most precious resource is uninterrupted thinking time. Protect it like you protect your production database. Default to async. Write things down. Trust your people to read and respond. The result will be a quieter, calmer, and dramatically more productive engineering culture. And you’ll finally get that standup time back to do what you actually love: building things.