Software Engineers are often not excited about meetings. Meetings are an easy way to waste time and kill productivity. However, if done well they can be useful and fun.
Here are some tips:
- Keep the meeting short
- Finish early
- Have an agenda
- Timebox topics
- Make a decision
1. Keep the meeting short
You’ve probably been in a meeting where two people are going into details of some topic, and five people are bored.
“Any meeting expands to fill the available time”
Any meeting should have a duration set in advance, and that duration should be as short as possible.
Try shortening your meeting from 45 minutes to 30. You will be surprised that you can cover the same topics and make the same decisions in less time. Forty five minutes or even one hour are extremely long slots that can completely destroy everyone’s productivity for the rest of the day. In my experience you can make the vast majority of meetings 30 minutes long and save 45 or 60 minutes for very rare, complex ones.
2. Finish early
Have you covered all topics, made all decisions and still have five minutes left? This is an amazing outcome! Declare the meeting finished and leave the room. On my team at Facebook we often used the phrase “Let’s get five minutes back”.
3. Never go overtime
People invested 30 minutes of their day to go into the meeting. You should respect their time. If the meeting is finished, it is finished and everyone leaves the room. At Facebook it was trivial to enforce this because any room was booked for a fixed amount of time, and there was often a meeting right after ours. We occasionally went 2 minutes over time if we were close to making a decision.
4. If people are late start without them
You can wait maybe 1–2 minutes and chat with colleagues if you’re missing a few people. After that, just start. People don’t want to miss topics and will show up on time next time.
5. Have an agenda
Any meeting should have a list of topics.
For example, if you have a weekly team meeting, keep a shared document where everyone can add topics. At the beginning of the meeting, write those topics on the whiteboard and stick to the topics to respect everyone’s time investment.
If you don’t have topics you should cancel the meeting.
6. Timebox each topic on the agenda
If you have 6 topics and 30 minutes, that’s roughly 5 minutes per topic, ideally less so you can finish early! If some topics are obviously simple, you can move them to the top of the agenda to better split the remaining time.
Everyone’s topic should get an equal chance to be discussed. You can’t spend 15 minutes on the first topic. I was once on a team at Facebook where we did this a few times and only got through 3/5 topics or so. I set a timer on my phone and literally started announcing: “1 MINUTE REMAINING! … 10 SECONDS REMAINING!” as the end of each topic timeslot was approaching. Of course I explained why I was doing this. At first people looked a bit surprised, especially because I was the only remote engineer, yelling “TIME’S UP!” from a video-conferencing screen on the wall :) After the second meeting like this people said they actually liked the meeting more because we got through all the topics. I stopped using the timer and we were fine.
7. Be as concise as possible
“I didn’t have time to write a short letter, so I wrote a long one instead.” — Mark Twain
Don’t be afraid to speak up in a meeting! But be conscious of the time of everyone else. Say the “summary” of what you want to say and only go into details if needed.
8. Make a decision
The outcome of each meeting should be action points. Example:
- We decided X is the best way to go about Y. Who wants to do it? OK, person A will do it.
- For X we need to do more research, specifically Y. Person A will do it by next team meeting.
It is very frustrating to invest time into a meeting but get no outcome.
9. Take meeting notes
At the beginning of each meeting, choose one person to take notes. If it’s a regular meeting, team members can rotate. Write down concise notes of everything discussed in the meeting, especially action points.
Share the meeting notes in a visible place. This way people who missed the meeting, company leadership etc. can see what was discussed.
10. Schedule meetings back-to-back
The best time for a meeting is right before or after another meeting. This way you minimize interruptions and maximize continuous blocks of time to focus.
The 10 points above are the bare minimum to have good meetings. Each of my teams at Facebook was at 10/10 constantly, except that one time we didn’t timebox topics.
What’s your score? Can you go to 10/10? Try it! In my experience people really enjoy meetings done this way.
Appendix: Lesson learned — Do you actually need a meeting?
If you don’t need a meeting you should not have one. But sometimes it can be very useful to schedule a meeting.
I was once a PM on a project with four other engineers, doing some of the coding. I started with the assumption “engineers hate meetings” because I knew how excited some of my colleagues were when they had to interrupt deep work because of a meeting.
I thought we didn’t need a meeting and could handle everything asynchronously using tasks, messages and shared documents. But soon enough it was extremely difficult for everyone to get on the same page regarding the state of the project, and figure out what to work on next.
I asked my mentor for advice. He suggested scheduling a team meeting. I asked everyone what time worked for them and scheduled a 30 minute slot once a week. In the meeting we demoed progress and figured out what to work on next. People were engaged. In meetings leading up to the product launch we planned the steps needed to launch smoothly. The project was a success and the weekly meeting turned out to be crucial.