The "Macros" for healthy engineering teams - part 2: Proteins
After exploring carbs and motivation in the first article, we are now turning our focus to the second “macro”: protein.
Proteins are essential building blocks of our body that repair and build tissues. Parallelly, we can consider continuous improvement and “team skills” as the key ingredients to bringing strength and resilience to engineering teams.
Protein: The Building Blocks of the Body vs Continuous Improvement & Team Skills: The Foundation of Engineering Teams
Just like proteins are essential for the growth, maintenance, and repair of every cell in our bodies, continuous improvement is about how engineering teams grow and adapt themselves. In our field, the ability to keep learning and improving ensures people stay relevant, effective, and original.
Developing team skills is similar to the amino acids that make up proteins. Each skill, such as project management, communication, conflict management, problem-solving, and team-building, plays a vital role in creating a unified and effective group. These skills are like bricks supporting a foundation, enabling the team to adapt to any obstacles.
Eng leaders play a critical role in feeding the team with a culture of constant improvement and helping build the right team skills. We will examine those elements in the following two sections.
Continuous Improvement: Strengthening Team Muscles
Engineering leaders should foster a culture of continuous improvement within their teams, where challenges are seen as opportunities for growth, and persistence in the face of setbacks is valued. This will strengthen the team as a unit toward specific goals.
Continuous improvement is correlated with the concept of growth mindset, as discussed by Carol Dweck in her book Mindset: The New Psychology of Success. People with a growth mindset believe their basic abilities can develop through dedication and hard work. In contrast, those with a fixed mindset see their qualities, such as intelligence or talent, as static traits.
First, engineering leaders should create teams of people with a growth mindset. Then, they have the potential to direct people towards focused, continuous improvements.
As this paper (“A Practical Approach to Continuous Improvement in Software Engineering“) highlights, it’s crucial to encourage learning and integrate it with actionable goals and structured processes. This approach ensures that continuous learning and improvement are purposeful and aligned with the team’s objectives.
For example, while working at Snapchat, I led the Messaging teams that worked on a big re-architecture of the messaging logic on the iOS and Android clients (more info in this article). A crucial part of this initiative was moving the sending message business logic into a C++ library shared across both clients to ensure better performance and consistency.
We introduced a new technology in the team: C++, and mobile engineers on the team weren’t familiar with it. As the eng leader on the team, I pointed to learning C++ as the goal with a clear impact in the vein of continuous learning. At this point, a few key team members showed a growth mindset and started learning C++, even though they had no prior exposure. I incentivized this behavior and paired those team members with C++ engineers working in other departments at Snap, and people in my team became fluent in writing C++. We eventually hired C++ engineers; however, having the new C++ engineers work smoothly with iOS and Android engineers was a win since there was a common understanding of this new tech.
Fostering continuous learning and improvement in a structured way with actionable goals was vital for the initiative’s success.
Team skills: Resilience in Team Muscles
Team skills are essential to creating a robust and resilient engineering team. Carolyn Tanya Wick’s thesis (“The importance of team skills for software development”) identifies a set of team skills that are crucial for building resiliency in software engineering teams: project management, facilitating effective meetings, mastering asynchronous communication, managing conflict, problem-solving, and team-building skills.
Engineering leaders cover a critical role similar to enzymes in protein synthesis, instilling those skills within the team. Each of those skills probably deserves its article, but let’s quickly look at them:
Project Management skills: This relates to a) workload balancing, b) risk management, c) progress tracking, and d) communication. Managers must have project management skills, but team members must understand this area to ensure projects are delivered successfully. For example, providing reasonable estimates, calling out risks, and providing meaningful updates are all driven by individual contributors. Engineering leaders must raise awareness about this skill set and help team members grow in this area if required.
Meeting skills: These are about defining the meeting objective, having a clear agenda, having the right attendees, calling out clear action items, and reflecting on a meeting. Engineering leaders must share those practices with the team because everyone should create and own meetings.
Async communication skills: In today’s distributed work environment, effectively communicating async is critical. It involves clear, concise writing and timely updates, ensuring team members stay informed and aligned, regardless of their time zone or schedule. For instance, documenting decisions for people not attending meetings and utilizing effective email or Slack messages can significantly enhance team productivity. Engineering leaders need to be a role model here. There are also policies a leader can define to structure the async conversations, such as clear expectations on delays around checking and replying to messages.
Conflict management skills: Conflict is inevitable in teams, but it doesn’t have to be detrimental. People naturally want to avoid conflicts, and this is where engineering leaders need to help team members solve them. For example, they can instruct team members on how to handle conflicts by consensus. Engineering managers can set a culture in a team where healthy conflicts are needed to ensure continuous improvements.
Group problem-solving and decision-making skills: This is about fostering ways to make decisions and align across the team. It involves collective brainstorming, evaluating different approaches, and making final decisions. For instance, engineering leaders can facilitate discussion during technical reviews, ensure every voice is heard, be the tie-breaker if needed, and help the team make final decisions.
Team-building skills are crucial for creating a cohesive team with a strong sense of unity and purpose. Activities that enhance team bonding, celebrate team successes and recognize individual contributions all contribute to a positive team culture. For example, engineering leaders can organize team offsites or regular team-building exercises to strengthen relationships and improve team morale.
Just as proteins are indispensable for the growth and repair of our cells, continuous improvement and development of “team skills” are crucial for nurturing a team’s resilience and strength.
In the following article, we will examine fats and their symbolic significance in storing long-term energy and maintaining vital functions.