A daily stand-up meeting is an essential part of agile software development. It is a meeting which takes place at the same place and time every working day.
The agenda of this meeting is simple. Each team member must answer to three question:
- What did I do yesterday?
- What will I do today?
- What problems (impediments) prevents me from doing my job?
Seems simple. Right?
Nevertheless, I have attended to many daily stand-up meetings during the last six years and I have noticed that there are two common mistakes which people make during these meetings:
- Team members are not concrete enough which they describe their past and future actions.
- The daily stand-up meetings do not encourage the team members to focus on the right things.
Let’s find out how we can avoid these mistakes.
1. Make it Concrete
A somewhat common situation is that people aren’t being very specific when they describe their past and future actions. Let’s think about the following situation:
Scrum Master: “Thank you Y. X, it is your turn to speak.”
Developer X: “Yesterday I was implementing feature X and today I am going to continue the implementation.”
The problem is that developer X isn’t being very specific. In other words, it is impossible to know
- What did he do yesterday?
- What he is going to do today?
- When the feature X is going be finished?
Of course, the person who facilitates the daily stand-up meeting can solve this problem by asking additional questions from developer X. The problem is that this takes more time, and since daily stand-up meetings should have a time limit, this isn’t the best possible solution.
The best way to solve this is to expect team members to be as specific as possible (but not too specific). If the developer X would have followed this principle, he would have said something like this:
“Yesterday I was implementing feature X. I finished the domain model and database migration scripts. I also created the required repositories and implemented the service layer. Today I am going to implement the web layer. If I don’t run into problems, I will expect to finish this feature today.”
This is definitely better than the first statement. It is concrete, it isn’t too long, and it answers to all three questions mentioned earlier.
Be concrete. It helps us to spread information to our team members and notice problems as soon as possible.
2. Focus on the Right Things
If I notice that something is broken, I want to fix it right away. I have also noticed that most developers tend to act in the same way than I do.
Fixing broken things is not a bad thing but sometimes the thing which is broken has got nothing to do with the feature which is assigned to the developer in question.
This is a problem because it doesn’t help us to achieve the goals of the current sprint!
Luckily, it is an easy problem to fix. When a developer reports his past and future activities in the daily stand-up meeting, and the team notices that the developer is getting sidetracked, they should help the developer to focus on the right things.
And what should we do to the problem?
We should ask the developer to add an item to the product backlog.
Did I Miss Something?
You probably already guessed that I think that the daily stand-up meetings have two important goals:
- Help us to notice problems by sharing information to our team members.
- Keep us focused on the right things.
You might have different priorities and that is perfectly natural.
Like I said, the advice given in this blog post is based on my experiences. Your experiences might be totally different. If this is the case, I ask you to share your tips by leaving a comment to this blog post!
If you are looking for a way to improve the quality of your daily stand-up meeting, read an article titled It’s Not Just Standing Up: Patterns for Daily Standup Meetings. It explains many useful patters for daily stand-up meetings.
Agile development has become a cornerstone of most software development organizations.
Marked by iterative processes that deliver incremental value over time, agile development has enabled organizations to manage software complexity more effectively and to improve quality and time to market compared with previous development processes.