Programmer Friday: Do you need daily standup meetings?

A father and son is cooking ham. Every time they do this, the father cuts a chunk off each side of the ham before it goes into the pan.

The son asks why they perform this ritual. Dad responds: “I don’t know. Grandfather is a good cook and he always does this, so I just mimic him. I’m sure it improves the recipe in some way.”

The next time Grandfather visits, they ask him about that ham cutting routine.

“Son, grandson. I don’t do that anymore. The only reason I sliced bits off was to make the ham fit. My old cooking pan was too small.”

The daily standup ritual

We have rituals in software development as well. One of them is the daily standup meeting.

Each day, we stop what we are doing and gather in a circle. Each person on the team describes what they’ve done since yesterday, what they are doing next, and which obstacles they may face. We stand up because we hope that will keep the meeting briefer and more active than if we were sitting down comfortably.

The idea is to coordinate and course-correct every day: to be aware of what others are doing in case it impacts you, and to stop people from getting stuck.

Why we originally started doing them

I’m going to show my age here: I was in the software industry when the daily standup was a brand new thing (early 2000s). It improved things a lot back then.

It cut down the amount of long status meetings. It cut down on email volume. It also steered people away from working on useless or unproductive threads for long stretches of time without course correction.

They are hard to keep brief. Standup meetings should be limited to fifteen minutes max. Unfortunately, this often breaks in practice. Some teams are large, so it takes time to get through all the people. A few people tend to share too much detail. Other standups turn into long problem solving sessions between some of the participants.

Miss the meeting, miss the info. Standup meetings are not substantial enough to warrant a written summary, so there’s no text archive of them. If you are knocked out by the flu for a week, you’ll be cut off from these status updates. If you work part-time: same problem.

Remote unfriendly. A morning meeting is awkward when people are in different timezones. Remote discussions often suffer from bad internet connections and low-grade audio. Some body language and physical cues is lost over remote connections.

“You’re just not doing them right”

Let’s get this out of the way. Yes, I agree that there are bad ways, and better ways, to do these meetings. By all means, try them out. They may work well for (most of) your team.

However: if something is hard to get right, it may be time to try something else.

Alternative: Asynch Slackup

If you take away standup meetings, teams still communicate more these days than twenty years ago. Why? Text chat.

Asynchronous chat tools have given us new ways to signal to each other what we are doing throughout every day, in a more effective way than the long status meetings and email threads we had twenty years ago.

Software like Slack has taken off. Many software teams use it. Done well, Slack turns into the “pulse” of the project. Calls for assistance, commit logs, deployments, pull requests, and design discussions all flow via Slack channels.

So why are we still synchronously standing around in a circle every morning (with remote team members on bad audio connections)?

Parsing the state of the project from reading everything in Slack is not going to work, though. There’s too much chatter, it’s hard to see what is going on at a glance.

So try this: set up a “daily standup” Slack channel. You can call the channel “#standup”, “#what-i-work-on” or whatever you want. The idea is to effectively replace the physical standup meeting.

Mandate that every member of the team writes a short paragraph there once daily. Use the structure from the standup meeting: what are you working on, and which obstacles are you facing?

The upside of moving this to Slack is that you get: A) a written record, and B) asynchronous, textual communication:

Each member of the team can now check in between tasks, when it suits them. This cuts down on interruptions and promotes mental flow state.

Remote team members participate and contribute the same way as local colleagues.

The team now has a text archive of past status updates, so you can go back and browse if you are out of office for a few days.

You can skim it quickly, so you spend much less time on what is irrelevant to you.

No physical meetings at all, then?

That’s not what I’m saying.

It’s still beneficial to have a physical status meeting. Say, an hour max, once a week? This way, you still get the benefits of face to face communication: high bandwidth body language, team morale building. All that good stuff.

Just don’t have a scheduled work interruption every single day if you can avoid it. People have enough interruptions every day. Let your team concentrate!

Care about how you work

I’ve been in several teams where this approach has been tried. Some liked it and stuck with it. Others rejected it. That’s fine.

The main point is to care about how you work. Don’t do industry rituals simply because “everyone else does it”. Try new things, and adjust your process to fit the team.