Part of the challenge in running any software project is keeping a team focused towards the ultimate goal of shipping a high quality software product. Keeping a coherent focus requires communication – effective communication. Too many of us (myself included) have dreaded the standing ‘status’ meeting. A developer should welcome a status meeting as a place to listen, a place to be heard, and as a productive part of the job.
Any meeting, no matter how small, is bound to failure without an agenda. Even the weekly or twice weekly status meeting requires some upfront planning in the form of an agenda. The agenda purpose is twofold. First, the agenda provides a roadmap for everyone to follow at the meeting. Use the agenda to keep the group focused on the topics at hand. The agenda will lead to shorter, more productive meetings with fewer off topic conversations.
The second purpose of an agenda is to allow all the participants to prepare. Don’t use a “standing agenda” every week of “discuss the latest bugs”. The person preparing the agenda should list the specific topics, and who is responsible for discussing the topic. Where possible every meeting participant should have a topic assigned. Giving every participant an active role in the meeting leads to better preparation from the participants, better focus, and shorter meeting times.
For team meetings, having participation from every individual is a key factor to success. Participation starts with the agenda, which lets everyone know up front they will be actively involved. Keeping the attendees actively engaged keeps everyone focused and feeling like part of the team.Often it will be the job of the technical lead or project manager to drive participation. Some techniques for this role include making eye contact with all participants, and asking questions. If a topic of discussion results in an assigned action item, ask the assignee about the topic. When do they think the item will be finished? Is the action item reasonable? Everyone should expect to come to the meeting not just to listen, but to be heard.
Not every meeting will result in the assignment of an action item, or to the resolution of the subject matter, but wherever possible a meeting should produce results. Outputs and resolutions keep participants focused on the goals, which can again lead to shorter meeting times.
An easy way to destroy the credibility of any meeting is not to take action on an issue raised by a participant. In order for the meetings to feel productive, everyone attending must feel like the meeting is a place where others listen and take action on problems. If an issue can’t be resolved during the meeting, don’t let it slip through the cracks (“someone can look at this next week”). Make the issue an action item, and keep the participant updated on the issue until resolution.
Developers, in general, are a hasty group. The meeting with focus, participation, and actionable results should generally be a shorter meeting than without those three attributes, but more importantly the meeting has to “feel short” to keep developers happy. Nobody looks forward to a drawn out meeting. The leader has to keep individuals from hijacking topics or picking a personal agenda – these people will blur the focus and diminish participation. A status meeting should keep a quick and vibrant pace.
For standing meetings like status meeting, the timing should be regular - both the start time and the duration. If participants can effectively plan around a meeting by knowing the meeting always starts at 11 and lasts 15 minutes, they harbor less ill will towards this potential distraction.
The keys to success are focus, participation, action, and timing. If any one of these four attributes begins to fail, the team will loose faith in the status meeting as being a productive part of the day. When the team looses interest in the status meeting, communication breaks down, and software quality suffers. Keep the meetings focused, keep the participants active, keep the meeting short, and above all: take action!