TDD your meetings so they suck less

When was the last time you felt energized in a meeting? Curious? Optimistic? Heard? Safe?

What happened in the meeting that conjured those feelings for you? What did the facilitator do to create that kind of space? Try to recall as many details as you can, and write them down.

I love this question, because we spend so much time in meetings that drain us, it’s easy to forget how magical some of them can feel. Wouldn’t it be awesome if all our meetings made us excited about the work we’re doing? If they allowed us to build deep emotional connections and collaboration? If we left the room feeling inspired?

Facilitation is a core skill I think everyone should work on, regardless of role. Not everyone needs to be an expert in it, but getting the basics down will go a long way to creating safe, collaborative spaces and making the best use of the limited time and attention that people have.

Why do meetings feel so bad now?

In Chelsea Troy’s article, Why Do Remote Meetings Suck So Much?, she introduces the concept of a caucus meeting:

  • Whoever speaks first gets the floor
  • They can talk however long they want
  • If you want the chance to speak, you have to interrupt whoever is currently speaking

Does this describe most of your meetings? Honestly, it probably holds true for most people.

The article focuses a lot on remote meetings, but the truth is this was happening in person and remote working makes this problem a whole lot worse. To summarize: not everyone is an extemporaneous speaker. People need time to digest what’s being said, form an opinion, consider what they want to say, and find the unmute button. Caucus meetings exacerbate existing barriers to communication and inclusion: power dynamics due to differences in culture, language, introversion, race, gender, age, ability, experience level, and so on.

Caucus meetings generally aren’t the most effective use of time, either, because they’re unfocused and lacking in tangible artifacts.

During the meeting, it’s really easy to get distracted or even tune out completely. There’s nothing stopping the discussion from getting off track, or a couple of people dominating the conversation, and there’s no real mechanism to course-correct when this happens besides more interrupting. This is a particular problem with deeply technical meetings. I’ve witnessed people starting to talk about specific code constructs and implementation details without sharing some code on their screen or without moving to a whiteboard, and they expect that everyone can visualize this information in their head in the exact same way. Many participants will be left feeling lost, confused, and too uncomfortable to ask questions, so they’ll sit in silence or start to multi-task on their computer. Active participants will think they’re on the same page, when in fact they haven’t established a shared language at all, and they don’t realize until well after the meeting is over.

Sadly, so many meetings end without clear resolution. No one takes notes, no one defines next steps, and we keep repeating the same mistakes. Think about all the people who are being left out and all the creativity we’re missing out on because we don’t bother to prepare meetings with intention. Think about how much your meetings are costing you in terms of time, money, energy, and attention wasted. We can do much better.

Designing outcome-driven meetings

Because engineers, tech leads, and architects seem to struggle with facilitation especially compared to designers or product folks, I think framing this skill through the familiar lens of test-driven development (TDD) can be helpful, because it provides a concrete plan for how to improve.

TDD has three phases: red, green, refactor. Red means write the expectations first, and watch them fail (for the reason you expect). Green means implement the code to make the test pass. Refactor means modify the implementation and/or the test code to make it more maintainable and readable, without changing the fundamental expectations or the behavior.

To apply these techniques to meeting design:

  1. (Red) Start at the end. What is the outcome you hope for from the meeting? What feeling do you want people to leave with? Draw upon your past experiences of the times you felt that way.
  2. (Green) In TDD we often ask, “What’s the simplest thing you can do to make the test pass?” For our meetings, we can ask, “What’s the simplest thing we can do to get the learning we need?” Work backwards from your outcome. What activity will help us get the outcome we need? What is the minimal group of people who should be there? How can we best engage the audience? The format should be aligned with your goals and outcomes, and this is the opportunity for your creativity to shine.
  3. (Refactor) Don’t forget, you can iterate on meetings too! Save the last five minutes for quick feedback from participants. A simple “what went well” / “what could be improved” style format will help you understand the 1-2 things you can change for next time.

An example: long standups

Let’s imagine your team has really long daily standups (30 minutes or longer), and it’s super frustrating for everyone. Here’s how you could TDD the standup to improve the situation:

  1. (Red) Desired outcome, agreed upon by the whole team: everyone knows what’s being actively worked on, and people who need help are connected with others. People leave the room feeling alert and ready to start the day.
  2. (Green) Potential activity: Each person draws a rabbit on a piece of paper, and keeps it to use every day. When the team walks the wall, if someone is going on too long, anyone can cheerfully wave their rabbit card to indicate the conversation is going down a rabbit hole. (Haha, get it?) The conversation stops and participants agree to discuss offline. End the standup with a team cheer.
  3. (Refactor) Time how long the standup lasts. Is it getting shorter? Get feedback from the team after a week or two. Are people still feeling frustrated? What’s working or not working?

After two weeks, standups are now under 10 minutes, and it turns out people love coming up with a new cheer every day, so they leave the meeting laughing and in a good mood. However, the team over-corrected and updates don’t have enough detail for others to know how work is progressing. The outcome you want for the standup hasn’t changed, so you decide to institute a script that people can follow, something like: “Yesterday I achieved X. Today I will do Y. I’m blocked by Z, who can help?”

You can keep making adjustments like this until you get feedback that the expected outcomes of the standup are being met, at which point, you might consider taking off the training wheels of the script or the rabbit cards if it no longer serves the team (yet another refactoring of the meeting!).

Experiences, not chores

Definitely don’t just drop an event on the calendar with a title, no description, and 25 attendees, and expect everyone to show up or be happy about it. And it’s generally not the best idea to just show up and wing it!

Thinking about meeting design through the lens of TDD can help you evaluate how to simplify processes and reduce waste, and instead use those free mental resources on creative self-expression and continuous improvement. It helps everyone to align on why we’re even here in the first place. What’s the experience we’re optimizing for? What’s the simplest thing we can do to get the learning we need?

When setting up a meeting, it’s also really important to block off additional time for you as the facilitator to prepare. People can tell when you’ve thought about the experience you want them to have; it’s a way to show you care and that you respect people’s time. No one wins when we treat meetings like chores. Remind yourself again about those meetings that energized you and try to recapture that feeling as often as possible.