Hacknot's Mr Ed, Agile Methodologies critic and otherwise interesting blogger who has sadly turned into a one-trick pony has linked to an ACM Queue article on stand-up meetings by Phillip Laplante. Laplante has long experience of stand-up meetings, and he's not afraid to say that they suck.
I know it's an Extreme Programming cliché to say "Well, you weren't doing it right!" in response to criticism. In this case, though, it seems to be the only appropriate response. I've had my own bad experience with stand-up meetings, but I've also had good ones. I think, however, that I've been able to observe what makes the meetings good or bad. So here's a couple of stand-up meeting antipatterns that I have observed, and refactored solutions that I have seen work.
I owe a debt of gratitude to Keith, who ran the stand-up meetings on my last project, and is thus responsible for quite a few of the good practices.
Problem: Stand-up meetings are seen as a substitute for full-length meetings, or in fact for any kind of developer interaction.
Discussion: The main problem with stand-up meetings comes from either not understanding what they are supposed to be, or not applying that understanding. A stand-up is a daily checkpoint between team members. It's a way to keep track from day-to-day of what other people are working on, what they are accomplishing and what broad problems they are encountering.
Deciding that all other team interaction is unnecessary just because the team talks to each other for ten minutes every morning is ludicrous. It's not the stand-up format that's to blame here, it's poor management. Believing that a stand-up obviates the need for more formal meetings, or for team members to talk between themselves or with team leaders outside the meeting is just very, very wrong.
Refactored Solution: Keep Talking
On the last page of his article, Laplante describes "management by walking around" as an alternative to the stand-up. When I read it, I couldn't help thinking "That serves a completely different purpose to the stand-up. Why can't you do that as well?"
Don't treat the stand-up as the only time the team can get together, formally or informally. Continue to have informal hallway meetings. Continue to have formal boardroom meetings with scope to do things that are not possible in the stand-up format. You will even find that the necessity for further discussion outside the stand-up will arise from things discussed within it.
Sermon On the Mount
Problem: The manager adopts the stand-up meeting as a way to deliver the day's rant. After the rant, the meeting is over.
Discussion: Laplante describes this as a problem with stand-up meetings, but it can happen in pretty much any environment. I've not quite had this problem with stand-up meetings, but I have had it with one past job: where any meeting with our nominal project manager was doomed to be unproductive and frustrating. In such situations it's even more important that the developers on the team have these daily checkpoints.
Refactored Solution: Meetings by Stealth
Do everything you can to have the official meetings cancelled, or reduced in frequency. Then, conduct your own meetings without inviting the disruptive element. You may have to disguise them as something else: the morning cup of coffee is a popular ruse.
This said, if you ever find yourself in a situation where you have to have meetings that specifically exclude someone, you've got problems that are much greater than just the mechanics of a meeting.
Problem: The meetings drag on too long.
Discussion: Discussions between programmers tend to get out of hand. One person has had a particularly interesting day, or a particularly intractable problem, and the meeting gets hijacked by an urge to pursue a single issue to its conclusion. Anyone not involved with the discussion stops listening and just shifts from one foot to the other, wishing they could go back to their workstation and do something productive with their precious morning.
Laplante suggests sitting down, but having an egg-timer to keep the meetings short. To me, this is still a stand-up meeting. Despite what the name suggests, a stand-up meeting can be held sitting down. The name is just taken from one mechanism that is used to ensure that the meeting stays short. If you find some other mechanism that works for you better than standing up, so be it. For me, an egg-timer would be too rigid, too formal for the largely informal morning meetings.
I also wouldn't discount standing up as a great way to make sure people stay to the point. When rambling on is keeping you away from your chair, you care about that much more than the sand in an egg-timer.
Refactored Solution: The Convener
Appoint one person to be the convener of the meeting. You're probably best picking someone who is not in a management position: that way the role doesn't get confused with being one of real authority. Pick someone who is able to be polite but firm. The job of the convener is to cut off long conversations, and suggest they be completed in another forum.
Attendees at a stand-up should be told that their task is to summarise what they did yesterday, say what they're planning to do today, and raise any problems they may be encountering. If the problem can be solved on the spot, that's great. If the search for a solution starts spiralling off into free-form discussion, that's time for the convener to step in and suggest that perhaps those involved in the discussion get together after the stand-up to hash out a solution.
Problem: Meetings are disorganised.
Discussion: Laplante worries about the total lack of structure to a stand-up meeting. There is no agenda, nobody knows who should speak first, and it's too easy for them to be dominated by the louder personalities to the detriment of the quieter ones.
Refactored Solution: The Token Ring
This solution pretty much started as a joke. We have this foam football that gets thrown around the office, and one day we were in the stand-up meeting, and it got jokingly turned into a "talking token". Then, the next day and the next meeting, we looked for the token again...
The meeting is convened by having the team stand in a circle. This generally isn't a problem, because that's how people tend to arrange when they're talking in a group. The convener tosses the talking token to someone completely at random. From then on, there's a general understanding that when someone's holding the token, they've got the floor. Either they're talking, or you're talking about them. When the person is done, they pass the token to their left.
Problem: Stand-up meetings disadvantage the shy or disabled.
Discussion: I can't help thinking Laplante was reaching with this one, but I'll address it anyway.
Stand-up meetings probably aren't suitable for physical reasons. For example, those with an inability to stand or those with speech, hearing, or language disabilities must find these meetings excruciating--if not humiliating--so isn't this practice discriminatory?
Those who are shy and have difficulty speaking or being in public must really dread these encounters. It must be very difficult for someone who just doesn't have the personality for a highly interactive meeting to be forced to endure one every day.
Of course, if you have someone on staff for whom the stand-up meeting is a particular problem, you'll have to make allowances in your process for that. Just as you would also have to make allowances in regular meetings. There's nothing special about a stand-up that is going to make it any more difficult for someone with speech or hearing problems than any other kind of meeting.
I will, however, grant that for the less gregarious, standing up in the middle of a group and talking can be daunting. Because stand-ups happen every morning, this can cause some additional anxiety. You don't want people to dread the beginning of the day, because that sets the tone for what's going to happen for the rest of the day.
Refactored Solution: Just Us Folks
Encourage the stand-up meeting to have the same atmosphere as, say, a chat around a cup of coffee. Have people bring their cups of coffee to the meeting. Nobody is making any formal presentation, it's just a few words about what you're doing. I'm yet to meet a programmer who doesn't like to talk about what he or she is doing informally.
If this atmosphere is not something you are able to muster during a morning gathering, then the project has far bigger problems than you can address by shifting meetings around.
Beware, however, of combining the coffee, the informality, and sitting down comfortably. Such events tend to stop being meetings, and start being chats.
One last question Laplante asks: "Is there any accountability in these meetings? For example, who said what and when? How are disagreements resolved? What if someone is absent? Since there is no record of the meetings, how does one keep up if they are out for an extended periods of time? Are members sanctioned if they miss too many meetings?"
This is a big non-issue. Stand-up meetings are, as I said, checkpoints. They let you know what's happening from day to day. If the same issues start coming up repeatedly during the meetings, then that's time to do something formal about them. They're places for sharing information that is relevant to yesterday, today, and maybe tomorrow. Thus, records are unnecessary and attendance is only required if you're present on the day. If someone goes on holiday for two weeks, they can go to the stand-up meeting the morning they come back. They'll get a good idea of what everyone's up to, and when it comes to their turn to speak, they'll say "Well, I don't know what I'm doing today, and I need to be filled in with what happened while I was gone", and the convener will say "OK, why don't you and Bob talk about that after the meeting?"