Stand-up, scrum, huddle, roll call — it takes many names but mostly means the same thing — a daily meeting where people ask and answer the same 3 questions: what did I do yesterday, what am I planning to do today, and what am I blocked on. Often these meetings are seen as inefficient or worse, ineffective. Instead of a daily scrum, whose goal is to “inspect progress toward the sprint goal…”, Gruntwork has a M-W-F meeting we call “Café” whose value is to 1) collect written status updates efficiently, in parallel 2) identify issues and discussion topics 3) systematically ensure issues are discussed and either immediately addressed or put on a track towards later resolution. The result is a meeting that team members look forward to and find a valuable use of time.
In practice, software engineers often dread the traditional stand-up meeting and find it an unproductive use of time. And you can understand why — this structure doesn’t take advantage of the value of having everyone in the room at the same time. Most participants are simply waiting for their turn and not themselves getting value from what’s being said at the moment, an expensive waste of engineering time.
The key challenge with a traditional stand-up lies in the tension of using synchronous meeting time for information exchange that is equally, or even more effectively, done asynchronously. Many teams solve this challenge with “async stand-ups” that are done entirely in writing without any synchronous meeting time. This presents two new challenges:
The agenda of Café attempts to reconcile these opposing concerns by breaking the meeting down into 3 distinct parts:
The meeting starts with a five minute period during which everyone goes through their own tickets (we use Linear), in parallel, ensuring that statuses are up-to-date and leaving comments on any In Progress
work.
Note: we have Linear configured with Slack so that Linear comments post updates in the #feed-linear-notifications
channel (we prefix all channels that include automated notifications as feed-
and avoid having human communication there). During this 5 minute window a stream of updates is generated that anyone can read at any time for that day's updates.
Whilst putting in updates, anyone can add a discussion topic for Café. Topics have an owner (the person who added the item) and a date, which generally begins with the day the item is added, though it can be pushed to a future date to act as a reminder or a future followup.
The remaining time in the meeting (which is most of the time of the meeting) is spent going through the date-ordered discussion topics. We maintain the list of items in a Notion Database that is persistent across every meeting. This allows anyone to add items to the topic list at any time (even in-between meetings) as well as the ability to look at historical items/topics.
During each discussion someone takes notes as a comment on the database item. Comments, conveniently, have a timestamp associated with them. As a result, any item which gets revisited across several meetings has a timestamped history of updates and information on how things have evolved.
We also label discussion items with various statuses: Not Started
, In Progress
, Reminder
and Done
.
Not Started
tasks first as they are new discussionIn Progress
generally includes an action item to be followed up on at the specified dateReminder
is a mechanism to pin relevant items to the discussion topics that are important for the team to see regularly, such as upcoming deadlines, OOO or customer activationsDone
items get filtered out into a separate Archived
view.We have Café every Monday, Wednesday and Friday. On Mondays, fresh off the weekend, we spend a couple extra minutes socializing by popcorning around the room and sharing good news from the weekend. On Fridays we play a round of smash karts or skribbl to let everyone blow off some steam before the weekend.
The net result is a Café meeting that makes space for fun, where nearly all of the traditional stand-up-data-gathering is done in 5 minutes and is in writing, and the bulk of the meeting time is spent discussing issues and making decisions that matter to the team. How does that compare to the stand-up your team runs?