← All writing

Running a product team across four time zones

22 April 2026 · 4 min · TeamsDraft

A distributed team has one real constraint: the number of hours where everybody is awake at once is small, and it shrinks every time you add a city. Most teams respond by defending that overlap fiercely and filling it with meetings. That is backwards. The overlap is your scarcest resource, and you should spend almost none of it on status.

Status is asynchronous by nature. It is a fact about the past. If someone has to be awake to hear it, you have designed the system wrong. What genuinely needs synchronous time is disagreement — the moments where two people need to hear each other think. Everything else is a written artefact with a link.

The practical version: standups become written entries against tasks, with a hard rule that a blocked item names what it is blocked on and who can unblock it. The live call is reserved for the two or three things that are actually contested that week. Sprint boards carry the decisions, not just the tickets, because the person reading them at 6am in Lagos cannot ask a follow-up question until tomorrow.

The failure mode is invisible and slow. Someone gets blocked at the end of their day, writes it in a channel nobody owns, and loses twenty-four hours. Do that three times in a sprint and you have lost a week without a single visible mistake. This is why blockers get a status, an owner and a named dependency — not a message.

What you gain is worth the discipline. A team that writes properly can hand work around the clock instead of stopping at the end of one shift. But it only works if the writing is genuinely good, and that is a standard you have to hold every single week, because it decays the moment you let it.

Next post
I ship the prototype before the PRD