“Zoom orders workers back to the office” is a funny headline, but there’s nothing unique about Zoom doing it.
Companies mandating return-to-office don’t understand how effective work is actually done. They also don’t know how to organize around it. Instead, they’re relying on the implicit benefits of an in-person past where some work happened to get done.
As I coach software teams, a common problem often becomes clear: Even before going remote for the pandemic, folks never knew how to work together in the first place.
People work in systems that inhibit real-time spontaneous collaboration.
And I do mean “work together.” The unfortunate industry norm is Scatter-Gather: divide up the work, everyone goes off into their caves to work solo, then assemble what everyone has done. This is not what I mean by “work together.”
It’s easy to assume that in the past, work got done because of the systems you had in place. But what if work got done in spite of these systems?
You may object, “Collaboration is much harder when everyone is remote.” There are certainly benefits to being in-person. But “collaboration is much harder” isn’t because people are remote. It’s because people work in systems that inhibit real-time spontaneous collaboration. Examples of systems that inhibit collaboration include:
Collaboration-killer | Alternative |
Solo work | Working alone is fine if the work is truly independent and whole, and the people in question don’t need the input, review, skills, knowledge, or approval of others. Otherwise, prefer programming in ensembles. See Pitfalls of Solo Work |
Individual assignments | People won’t work together to complete stories if they each have “their own work” to do. Instead, allow multiple people to work on any task, and allow them to switch tasks opportunistically. See Stop Per-Person Swimlanes |
Pull requests | Inspection queues cause delays. Returned work compounds this with further delays. Instead, gather the people who would have handed off the work between them and have them work on one work item together. See Faster and More Predictable |
Planning meetings | Scheduling meetings creates delays, as we have to wait until the people we need are available. Instead, bring all the important people together to work on the important work, at the time the work is being done. See We Want A Doing, Not A Meeting |
“Morning stand-up” as status reporting | This ritual has been cargo-culted away from its original purpose. Instead of each person reporting, “I’m continuing work on X,” shape your meeting around collaboratively planning your day, deciding together what is important and who will work together on it. See The Daily Meeting |
Maximizing work-in-progress | The higher the amount of your work-in-progress (WIP), the more likely you are to be interrupted by something that needs attention. And the more interrupt-driven everyone is, the longer people have to wait when they need input. Reduce your WIP by working together. See Managing Interruptions |
Being in-person can sometimes counteract the bad effects of such systems. But that’s usually accidental instead of intentional, and never completely effective. Replacing them with systems designed to enable actual collaboration is far better. At Industrial Logic, our coaching and many of our workshops include training in how to collaborate.
Effective collaboration is a vital tool to manage the many risks that come with software development. Working together is like any skill. It’s not innate. But it can be learned, and it can be taught.