Search >>

RSS   COM     HOME

Post   Daily Stand-Ups

Jun
26
08

Gears
If you’re doing any kind of agile software development, you’re probably having some form of daily stand-up. In my experience most of the daily stand-ups out there are, quite frankly, pretty uninspiring things. A lot of meetings are spent mechanically reporting status to a project manager or discussing details of interest to only a few.

Like all practices, you need to constantly keep in mind the underlying principles and values behind the daily stand-up to keep it from deteriorating. Here are a few things to consider so that you don’t end up with just another meeting that people attend just because they have to.

Keep the Goal in Mind

The purpose of the daily stand-up is to give the team a good sense of how it’s doing on the commitment it made for the current iteration. Is someone stuck somewhere? Are things taking longer than we expected? Do we need to drop things to be able to deliver a coherent product increment?

This implies an obvious prerequisite – you need to have a goal for the iteration and a commitment to reach it. That goal is set at the iteration planning meeting. A commitment to reach it is created by giving the team responsibility to decide how many user stories they can implement, no one else.

It’s for the Team

It’s the team’s job to keep track of how they’re doing on their commitment. A daily stand-up that is run by a few persons where a major part of the team members shows up to passively attend is of limited use. Meetings that consists of one way communication from the project manager to the team, or from the team to the project manager, do not help create an environment where the team actively owns and cares for it’s project.

In a working stand-up, the team members address each other, reminding themselves of what’s currently on the agenda, and everyone is participating to the best of their ability.

If you are in a lead position in the team, either formally or informally, consider taking a step back and see what happens.

Discuss Elsewhere

The daily stand-up is not for solving problems. It’s about sharing information. If someone thinks he or she has input on a problem reported by another team member, the stand-up is the time to make the others aware of that and schedule a discussion afterwards. Anyone who has input may join.

If you allow too much discussion during the stand-up, there’s a risk that these take up most of the meeting. Chances are that some has nothing to add and resort to passively await the end. We don’t want to waste the time of the team members, so keep discussions to a minimum.

One tool that might help you get a more organized stand-up is to use a token. This a small physical item that is passed between the team members during the meeting. The person currently holding the token is the one that’s currently allowed to speak.

Come Prepared

Daily stand-ups are intended to be short and effective. If people don’t come prepared, time will be wasted when members try to remember what happened since last time. Make sure that you think through what you want to bring up on the next meeting. What you have accomplished and how much work is left. Having done that you can focus on what is being said by the other team members and get something out of the stand-up. If you focus on what to say when the token comes your way, you will miss what the others have to say.

Accomplishments, Not Activities

Focus on sharing what you accomplished since the last stand-up rather than reporting what you have been working on. For one thing, talking about accomplishments made provides a more positive attitude than just providing information on what parts of the system was worked on.

When the rest of the team hear about these micro-increments it has a tendency to trigger new activities. “Now that we can do X, I might actually begin doing those performance tests that I have been putting off for far too long.”

Make Commitments

Have team members bring up what they plan to have accomplished at the next stand-up. This way everyone makes a commitment to the rest of the team. The team can then compare the commitments they’ve made since last time to what was actually accomplished. That way they’re at a better position to find if there’s any problems or opportunities that needs to be addressed.

If members mechanically bring up what they worked on since last time instead, the team risks missing if there is anything that could potentially hinder their progress.

Bring up Impediments

In my experience, developers can take a lot without complaining. I’ve seen developers sigh and pull their hair while making changes to 60 files just to add a seemingly trivial thing to the code base. Still, at the next stand-up, they don’t report any problems.

If we don’t bring up problems, we will never be in a position to fix them. Hidden problems will affect quality, velocity, and our chances to reach our commitments in general. So we need to breed a culture where it’s expected of everyone to constructively bring up impediments before they get out of hand.

Conclusion

Daily stand-ups is a great tool for keeping a team in sync. When the stand-up works well everybody leaves it with a good sense of what they’re focus for the day is, what the others are working on, and how that connects to the team’s goal. Everybody should leave that meeting invigorated and ready to get going.

In the complex environment that is software development, you will always need to make adjustments to your plan. The daily stand-up is one of the best tools for this.

So, remember why you are there!