Daily stand-ups are a pretty common practice in the Agile world. If you’re not familiar with this practice, basically the entire team will get together once a day (usually in the morning) and have a quick meeting. Everyone usually remains standing for the meeting to emphasize that this meeting should be kept short.
Good standups are crisp and motivating. A lot of standups are bad. They have the enervating effect of an hour-plus weekly status meeting, only spread out over a week. — Brian Marick
The Three Questions
In the daily stand-up we try to answer the following questions:
- What did I accomplish yesterday?
- What will I do today?
- What is preventing me from accomplishing today’s goals?
While this sounds good in theory, I have often found that it breaks down and becomes incredibly inefficient in practice. For example, a team member might give the following update in stand-up (in the spirit of the 3 questions, of course):
“Yesterday, meetings, meetings and more meetings.” (Followed by a few chuckles) “Today… uhm… meetings… and I am meeting with a few potential candidates for interviews. Of course, my schedule is so crazy I will probably be involved in many things so who knows… Then I think we have a retro at 2? I will also need to spend some time with marketing to understand all the details for the upcoming newsletter feature.”
You get the point – while this contrived update does follow the format outlined by the three questions, nowhere does it offer any information that is useful to the larger team. This can often become a trend and new team members will simply follow this trend by just giving a daily braindump of everything they accomplished in the previous 24 hours.
Change the Format
To make the daily stand-up more focused some teams might focus on the cardwall or focus on blockers. The stand-up now adds real value because blocking issues are being identify and addressed/discussed every day. However, this can also be an anti-pattern: why are you waiting for the stand-up to address a blocking issue? Over time this can lead time wasting as team members wait for the meeting to bring up issues.
A better alternative would probably be to raise issues immediately. If you have a question, just ask! As tech lead I try and make a point of regularly asking other team members if they need anything from me or if they’re blocked by anything. In my experience fostering a culture of constant communication is a much more efficient way to raise and resolve issues.
On one of my last projects we experimented with not having a stand-up at all. This was for a small team (just 3 developers) and the client team was co-located (meaning we were all sitting next to each other). I noticed that communication was happening throughout the day and while our stand-up wasn’t really inefficient, it also wasn’t quite clear what value we were gaining from it.
We tried simply ignoring the daily stand-up and paying careful attention to any gaps in communication we might suffer as a result. It soon became apparent that the stand-up didn’t really add any real value: we had constant communication both within the development team and between the development team and product owners.
This is an approach I would like to see more often – try and experiment to see if a practice is really adding value. Perhaps try to go without stand-ups for a single iteration and discuss how everything went in the retrospective. Maybe there is a need for a dev huddle, but not for a stand-up? Experiment! If it goes horribly wrong you can always re-instate stand-ups, but this time round the team will have a better sense of why stand-ups are important.
In the last week I’ve asked quite a few developers for their opinion of stand-ups. Most of the answers matched my experience (very little value being added), but one point that I think is important is that of team building. The daily stand-up does have the ability to create a sense of team cohesion which I think is very important. However, blocking the entire team for 20 minutes every morning might not be the greatest way of achieving this goal.
The daily stand-up, as with all Agile practices, should be constantly evaluated to see if value is being added. If not, experiment to find what works for you. Happy coding.