Pieter levels (remoteok.io) has been writing about this for a while. He calls it "async work" https://levels.io/async/
While I'm a fan of the idea. I'm not sure everything can be accomplished asynchronously. Or maybe it just requires more planning up front to make sure peoples do not have a lot of inter-dependencies.
Just getting rid of inconsiderate pings would be a start. Valuing your time over others is a shockingly common cultural failing. I've come to expect it from managers that don't know how important uninterrupted focus time is to developers, but increasingly developers have been doing it too. Without checking documentation. Without the willingness to wait in the channel for the product they need support for. No, they're blocked NOW and they need a response NOW. Better pull the entire team out of their work.
Huge downside of working in platform teams, and sadly not the only reason you develop an adversarial relationship with "feature teams".
I want a company where pings are reserved for fires, and everything else is handled either at fixed syncronization points (e.g. a batch of code reviews) or whenever someone is out of the zone anyhow.
I like the specific term of async work. Haven't seen companies use it in the wild yet.
I definitely agree that not everything can be done async, but the reality is that most companies don't even try. They just default to sync workflows without the office.
It takes some effort for sure, but I think the benefits are enormous.
While I'm a fan of the idea. I'm not sure everything can be accomplished asynchronously. Or maybe it just requires more planning up front to make sure peoples do not have a lot of inter-dependencies.