This is a series of stories talking about my journey in Shopee as a software engineer leader. For more details and motivation, you can check here.
This article is part two of the “What does a team lead role look like in Shopee?” series. In part one, we talked about my jobs from the product and technology perspective, and I also give you a rough idea about my weekly schedule. In part two, I will continue to talk about my team lead role in Shopee from the team and people aspects.
Team
As a team lead, I am responsible for the entire team and represent the team.
Internally, establishing the team culture is a crucial job to me. Since team members need to work closely for everything, efficient communication and a pleasant working environment are the most important things. To achieve this, I need to observe and analyze the interaction among people, find out the pain points, and propose a process to improve it. In practice, I set up meetings, build-up processes, write documents/guidelines, coordinate with other teams to improve processes, etc.
Externally, being a bridge to other teams is also an important role. I share the organizational updates from other teams, remind people of the RSVP items for administrative stuff, and report the team’s feedback to the other team.
Here is an example of how did I build a team culture. Last year during the lockdown, we had many new members joined. Because of this physical limitation, we cannot know each other well. This led to a harmful effect that some members hesitated to ask questions and cause inefficient communication. Therefore, I discussed this with some teammates about this issue and decided to have a virtual team gathering every Friday called MAGA (make accounting great again.) During the gathering, people take turn to be a host every week. The other members would ask questions to the host beforehand like “What is your dream job?”, “What is your ideal type?” to let the host answer the questions. By having this activity, we become closer and also eliminate the loneliness from WFH.
The other example is that: I noticed the daily standup meeting might not be necessary and efficient after applying for 1 year. During the conversation with the members, I found this meeting might interrupt people’s working flow, not really beneficial to knowledge transfer, and not helpful for project sync up as well. Even though the cost is not high and can be a wake-up ritual every morning, we don’t think the standup meeting should keep. At least, it should not exist in the current form. In the end, we canceled the meetings and created the other weekly meetings to just mainly for syncing up the recent projects other people worked on. We did not lose anything but earn more time for people to focus on their work.
I can list down 10 more examples of building a team culture: responsive, supportive, advocating sharing, transparent, friendly, and collaborative. But I guess this can leave to the other article.
People
Cultivating people is the top thing for me being a team lead. Although I am not a direct reporting manager of our members, I tried to play the role of inspiring people, discovering people’s potential, and pushing them towards their career ladder. I sincerely believed that people are the most critical assets to the company, so we must invest more time. In practice, to make people better, I need to be a great observer and listener to people first. I cannot help people unless I know them well. Supporting people is one thing, but empower people is the other level. We can support people no matter who we are, but cultivating people is only a leader who has such power to do.
A one-on-one meeting is the most obvious way to get to know your members. I have kept doing 1–1 with them since Dec 2020. I allocate at least 30 mins every 2 weeks for each member, and sometimes it will extend to 1 hour or even more. During the meeting, the topics for 1–1s can be (1) their reflection on their works, (2) feedback and complaints, (3) answering questions (4) their career goal. Throughout the process of reflection, I can push them to think about the lesson behind it and help define what may be the direction they can develop or improve.
For instance, there was a time a developer delayed her task due to a requirement change after testing. Initially, I thought it was her problem for missing this requirement as what she said. After discussing with her, I found it was because of 2 things: (1) PM did not make it clear in the PRD. (2) we did not rearrange the schedule for this developer to complete this missing requirement after finding this out. Lessons learned were that she needed to ask our PJ to rearrange the timeline for such a case instead of accepting the requirement directly.
The other examples are that if I know that a developer is a keener to do a technical-complicated project, I will try to delegate this kind of task to him. If a person finished a sharing or presentation, I will let him self-reflect on the improvement area and give him some feedback. If I noticed that a person had proved his excellent ability of writing codes, I would push him to write tech design more instead of executing the development plan to improve his abstract thinking ability. If I found a person who was too busy recently due to fix the LIVE bugs, I will try to rearrange the works assigned to them, assign another member to help, and discuss short-term and long-term solutions.
For the goal setting with each member, I let my members define the focus and objective they want to pursue in the following year on their own. They need to provide a list of action items and detailed plans to achieve this goal as well. For instance, if they want to be a good coder, they can define “reading clean code in 2 months” or “review at least 5 pull requests a month”. During the 1–1s, I will discuss the progress of achieving that goal by letting them share their learning journey. My role here is actually to give them more motivation to learn outside their works. All the responsibility to do this or not is their decision.
There are still lots of things I can do to help my team member grow. But I would say my coaching skill is far away from adequate. Each of people is a distinct individual, and it is hard to apply one skill to everybody. This is also what I keep thinking, adjusting, and learning about in the past half of the year.
Expectation from the company
In terms of what the company expected us to do, I feel they expect us to do things good for product, technology, and building the process. Building a good team culture or empowering people may be just a plus to the team lead role. This makes sense because the business growth speed is quite fast at Shopee; the company has to emphasize the scalability to support the business and establish the process to make everything go well.
I heard that some companies required you to have a staff+ project to be a staff+ engineer. But it is not the case in Shopee. The company more expected you perform leadership skills to reach staff+ level. As for people management, it is more like what managers suppose to cover instead of a team lead. But I would say in reality it is kind of impossible because the ratio for the numbers of a manager to members is > 40. How did you expect a human to manage 40 people directly? Therefore, no matter the company’s true expectations, I still devote myself to being in a people management role. This is also in line with the value I think I should bring to the team. Making products successful is just a transient goal; empowering people is a more sustainable and long-lasting solution.
Summary
Leaders are not responsible for the results; leaders are responsible for the people who are responsible for the results. — Simon Sinek
I would emphasize building a good team culture and people development as a leader compared to developing the product or technologies. This is the role I tried to define by myself.
This sounds like a very reasonable and straightforward answer, but I would say I spent more than 1 year to find this answer. Also, I believed I could not derive this answer if I did not have the great support from my senior members, who helped to facilitates almost everything about products and technologies. Without them, I could not spend time thinking about how to be a leader, not to mention building a good team culture. Furthermore, without the trust of my members, I could not have such power to build such a great team and influence people.
In summary, I think a team lead doesn’t have a fixed definition if you want to define your role properly. Because the definition involves the context from the relationship between you and your team, and this subject changes over time. What we can do is trying to understand the situation of the team. And then thinking about the direction you want to move forward and what you can do currently to contribute to the team. The answer you find will be the value of being in this team lead role.