Fix the Agile Daily Standup

Adapting Agile Practices for Modern Software Engineering

The world has changed a lot in the last twenty years, but Agile Software Development really hasn’t. In fact, agile methods were indeed more “agile” than what they were replacing in the early part of the 21st Century, but they are less agile than what the top software development organizations do today.

In the first part of this series, I discussed the agile meeting cadence and its negative impacts on developer productivity. Today I want to focus on one meeting in particular: The Daily Standup. No meeting is more closely associated with Agile Software Development than the daily standup, or just “standup” to many software engineers. And no other is more in need of a rethink.

Review

We all have an intuitive notion of why we have a daily standup meeting, but let’s recap its benefits and consider some possible costs.

Daily Standup Benefits

  1. Sync-Up: Daily standup allows team members to synchronize their activities and ensure everyone is on the same page regarding what work is being done, what obstacles exist, and how progress is being made towards the sprint goal.

  1. Visibility: It also provides visibility into the work being done by each team member. By sharing updates on what they accomplished yesterday, what they plan to do today, and any blockers they are facing, team members supposedly gain insight into each other's tasks and can offer assistance or collaborate more effectively.

  2. Identifying and Removing Obstacles: The daily standup provides an opportunity for team members to raise any obstacles or challenges they are facing. By raising these issues early, the team can work together to address them and prevent them from becoming major blockers to progress.

  3. Accountability: Standup attempts to generate a sense of accountability among team members. By publicly stating their commitments for the day and reporting on their progress from the previous day, team members hold themselves accountable to the team for their contributions to the sprint goal.

Daily Standup Costs

  1. Time Consuming: If not properly managed, daily standup meetings can become time-consuming, especially if team members go into too much detail or if discussions veer off-topic. A particular anti-pattern is to turn standup from a status meeting to a problem-solving meeting. This can lead to reduced productivity and frustration among team members.

  2. Boredom: Daily standup meetings can become repetitive if the same topics are discussed every day without variation. This can lead to disengagement and reduced effectiveness over time.

  3. Attendance Pressure: In some cases, team members may feel pressure to attend the standup even when they don't have much to contribute or when their presence is not necessary. This can lead to resentment and a sense of wasted time.

How Did Daily Standup Break?

As I mentioned in the introduction, agile methods and the daily standup meeting in particular haven’t evolved much since they achieved mainstream status 20 years ago. But a number of things are different about the context in which daily standup is practiced that make the ceremony as originally defined less applicable today:

  1. Increased Specialization: As teams have become more specialized, with distinct roles such as frontend, backend, and devops engineers, the relevance of each team member's updates during a standup meeting may vary. Modern specialization could lead to reduced engagement or interest in discussions that do not directly relate to a team member's area of expertise. The devops engineer most likely doesn’t need to take time out of his morning to hear the frontend engineer’s status and vise versa, and if they DO need to collaborate for some reason, they should be doing that in a different forum anyway.

  1. Team Composition: Agile methodologies were initially designed for small, cross-functional, co-located teams. However, modern teams may vary significantly in size, composition, and geographic distribution. Larger teams or those with members spread across different locations may face challenges in conducting efficient standup meetings, as communication and coordination become more complex.

  2. Flexible Work Schedules: With the rise of remote work and flexible schedules, team members may not always be available at the same time for a synchronous daily standup meeting. This could lead to difficulties in scheduling meetings that accommodate everyone's availability, potentially resulting in reduced attendance or participation. You will find engineers who actively resent a request to be present at exactly 9:15am EST every single morning, either because they are late sleepers or they are often in a coding flow state around that time.

  3. Technological Advancements: While agile practices were developed in a largely pre-digital, absolutely pre-smartphone era, today's teams have access to a wide range of collaboration tools and communication platforms. Getting everybody together at the same place (or even same video chat) at the same time every day seems anachronistic to today’s engineers.

How Can We Fix It?

Whenever I see a process, I reflexively ask how its cost-performance can be improved. (Literally everybody in Taiwan just says “CP”, it turns out that you can apply it in any context.)

How can we continue to get most of the benefits from daily standup for a significantly lower cost in terms of engineering team productivity?

If you’re an engineering leader, here are some things I’ve seen to be effective replacements/tweaks to daily standup that you might want to try:

  1. Asynchronous Updates: Implement asynchronous communication channels, such as status updates or daily check-ins via collaboration platforms like Slack or Microsoft Teams. This allows team members to provide updates on their progress, blockers, and plans at a time that suits them best, accommodating flexible work schedules and time zone differences. There are Slack and Teams apps specifically for this, but it can also be as simple and free as sending a scheduled message to the "#dailystandup” channel at a fixed time reminding everyone to type in their updates.

  2. Tool-Supported Status Meetings: Slack and Teams aren’t the only tools available, though. You can also leverage project management and collaboration tools that offer features for conducting virtual meetings, such as Jira, Asana, or Trello. These tools often include built-in functionalities for team members to update their status, flag blockers, and review the progress of tasks and projects.

  3. Scheduled Sync Points: Instead of daily standup meetings, schedule regular synchronous sync points tailored to the team's needs and availability. This could include weekly or bi-weekly meetings for discussing project updates, addressing blockers, and aligning on priorities. Ensure that these meetings are focused, time-boxed, and inclusive of all relevant team members.

  4. Management Visibility and Support: Encourage your engineering managers or team leads to maintain regular one-on-one check-ins with team members to stay informed about their progress, challenges, and goals. This provides an opportunity for personalized support while ensuring that management remains connected to the team's activities and needs.

  5. Continuous Improvement: Regularly ask for feedback from team members on the effectiveness of your team’s communication practices, including standup meetings or alternative approaches. Use this feedback to iteratively improve communication processes and adapt them to evolving team dynamics and preferences.

Modernizing Daily Standup Meetings for Today's Engineering Teams

While daily standup meetings have been a hallmark of Agile Software Development for decades, the changing landscape of modern software engineering presents new challenges that call for innovative solutions. As teams become more specialized, distributed, and adaptable, traditional standup meetings may no longer be the most effective way to achieve synchronization, visibility, and accountability.

By embracing asynchronous communication, using tool-supported status updates, scheduling synchronous sync points thoughtfully, and promoting active software engineering management, engineering leaders can ensure that their teams stay connected, aligned, and productive without sacrificing the flexibility and autonomy that characterize modern software development and the modern workplace.

Let's team up to boost collaboration and create happier, more productive software development teams! Your insights are key, so let's connect, swap stories, and brainstorm new ideas that we can put to work. Together, we'll build a better future for our teams and our industry!

Previous
Previous

Does AI Make Open Source Like Training Your Replacement?

Next
Next

AI Closes the Cloud Exit