I started to lead a cross-team, multi-quarter project a few weeks ago. I expected that, before the team could completely switch to execution mode and be 100% productive, we needed to spend a decent amount of time in the initial planning phase.
Although I knew that it would be a challenge, I still underestimated how hard it was to get everyone on the same page and have an actionable plan that everyone feels good about. Just to be clear, everyone on the team was passionate and eager to get started. The challenge inhered from the fact that: 1. the project required deep knowledge across multiple domains, 2. the project had a “delicate” history, 3. most members were new to these domains, and 4. it’s a cross-team collaboration where most members didn’t have experience working with each other before.
This is my first time leading such a complex project involving so many people. It’s a great learning experience. In this post, I summarize things I learned and could have done better on the topic of getting a group of people on the same page.
1. Expect to repeat the same thing many times.
In the beginning, I was surprised by the fact that people seem to totally forget something we just discussed and come back to the same questions. After this happened for a few times, I realized this is normal and should be expected.
When people are learning a new project or domain, the amount of new information can be overwhelming. As a result, people can't digest and retain all the information all at once. I find that people normally only retain 40% of the knowledge from an information-dense conversation.
Expect to repeat the same thing over and over again. Knowledge transfer requires repetition and time.
2. Focus on the big picture first.
Since the amount of information is overwhelming, focus on providing the big picture to your teammate first before filling in all the details. Make sure you and your team are on the same page about 1. the deliverables of the project, 2. the significance of these deliverables to the business, 3. constraints the team faces, 4. related historical context of the project, and 5. a general approach. This big picture helps the team to get the priorities straight which makes execution smoother.
3. Repeat high-level principles over and over again.
Since it takes time for people to digest all the information and having the correct big picture is crucial, in the beginning, remind high-level principles related to the big picture as a way to prefix any conversation until it’s clear that they have sunk in.
4. Have more interactive conversations.
To kick off the project, it might be necessary for you to give a presentation to your team covering related information. But don’t expect your team will understand and remember everything you said. Expect them to only remember 15% to 30% of the content.
Have many small, informal, and interactive conversations such as Q&As. Ask them questions to see where their understandings are. Have them rephrase what you said based on their understandings. Correct any misunderstandings when you find them.
5. Quick document for discussions.
After discussions, try to write up a quick document to capture the conversation. It can be as simple as a few bullet points or a paragraph as a slack message. Share it with the team. Sometimes you might think people are agreeing with each other. Only after seeing the words in a written form, people realize they were not talking about the same thing.
The doc can be also used for future reference.
6. Plan ample buffer time at the beginning of execution.
Execution is the best way to see if everyone is on the same page. You might think everyone understands what the plan is. But when people start executing and writing code, you might realize there are still some misalignments. This is totally normal and fine.
People say “a picture is worth a thousand words”, I think “a pull-request is worth a thousand meetings". Once you get the feeling that the team is mostly aligned on the approach, start executing. Don’t wait for the perfect alignment. The most efficient way to uncover misunderstandings and align the team is to actually put things into action. Just remember to plan ample buffer time at the beginning of execution because, in the beginning, your team will some spend time realign understandings and truly get on the same page.
Getting the team on the same page is hard but necessary for the success of a project. The starting price might be high but is worth it. Once the team is aligned internally, the team will be unstoppable.
My career plan for the year is to grow into a tech lead. I’m excited about all the learnings ahead and would love to share this journey with you in a brutally honest fashion. I will be sharing my weekly learning on the blog.
In the next few months, I will focus on growing in the following areas. You can expect to see posts related to them:
- focusing on the big picture of the project instead of near-term implementation details;
- balancing my efforts between leading projects and coding;
- work-life balance for long-term productivity;
- the human side of software development: making sure everyone riding with me enjoys the ride and feels fulfilled and inspired.