Identify complementary roles that will help you meet business needs.
To build a great software engineering team, start by considering:
What are my business goals?
What roles do I need on my team to achieve these goals?
For example, let's say you want a team that can:
Don't think of these as the desired qualifications for every engineer on your team. Instead, consider them a summary of what your team can accomplish together. Do your engineers complement each other in terms of skills and experience?
This list will help to guide hiring decisions and create a well-rounded soft skill and technical team. For instance, let's say you have a strong contingent of engineers with high-level technical skills, but who have little experience and interest in being mentors. This has created a subpar onboarding experience for junior team members. For your next hire, you can strategically prioritize a candidate whose strength is mentoring their teammates and create a more streamline onboarding process.
As your business and stakeholders’ needs evolve, be sure to revisit this list of skills to keep your team management strategy and work environment up-to-date.
Match team members with roles that fit their strengths.
To match engineers with roles that fit their strengths, you'll first need to identify them. In my experience, people generally know where their strengths lie – but don't always feel comfortable being forthright.
Engineers may feel pressured to portray themselves as the person in the job description. To dispel this myth and encourage transparency, focus on building psychological safety: an environment where engineers know they can be authentic (even in remote work settings).
One way I've done this is to be very transparent about my strengths-based approach to building teams. Let engineers know that you want them to complement – not compete with – one another. Your goal is to enable collective success by helping every individual thrive.
As a software development manager, engage with engineers in regular one-on-ones (especially on remote teams). Ask engineers to reflect on their strengths, and share your own observations. It's possible that engineers know what comes naturally to them, but don't see it as a valuable skill worth mentioning. When you take the time to validate these skills, you help engineers build confidence and initiative in their software development projects.
Once you establish a trusting relationship where engineers feel comfortable discussing their strengths, you can take steps to align team members' work accordingly. This entails different project management methodologies, such as, reshuffling ownership of different projects and facilitating one-on-one collaboration between engineers whose roles complement each other.
One of the best side effects of matching engineers with roles that fit their strengths is the impact on team camaraderie. When team members are confident in themselves and view success as collective, they are less likely to feel threatened by each other's strengths. Instead, engineers genuinely appreciate what their colleagues have to offer.
Recognize and reward all strengths equally.
This step is easier said than done. We all have our own ideas of what engineer success looks like, and tech performance reviews tend to favor a specific set of strengths. For example: writing code and delivering individual changes tend to be favored over coordinating the whole delivery after integration testing. Pulling things together for technical delivery is often favored over conducting deep research. As a result, research-oriented engineers may receive less recognition and fewer advancement opportunities.
As a software engineering leader, you can resist this bias by practicing self-awareness and advocating for your team. Once you learn every engineer's strengths, pay attention to how these strengths impact your team's performance – and encourage engineers to document these contributions as well. This will help you practice effective communication when instilling the value of less visible strengths and help every engineer feel seen.
When engineers trust that their strengths are seen and appreciated, they can focus less on squeezing themselves into a narrow mold of success and metrics, and more on becoming the best version of themselves. This increases everyone's motivation and morale.
Equal recognition of strengths also translates into more effective collaboration. As engineers become aware of the unique skills everyone brings to the team, they can more proactively partner with individuals whose strengths match their needs.
Provide a nurturing environment where people can grow.
If people only focus on what they are good at, how will they grow? This is one of the most common questions I receive when discussing a strengths-based approach to building a software development team structure.
I have found that you can reduce friction and encourage people to do what comes naturally to them while also fostering growth. In fact, the two go hand in hand.
When you focus on weaknesses, engineer growth comes from a place of fear and inadequacy. This lack of psychological safety makes it challenging to engage in deep learning. But when you play to people's strengths, engineers feel motivated and empowered to stretch themselves. It is much easier to help engineers grow when they already feel confident and engaged.
So what does it look like to encourage growth without focusing on weaknesses?
Work with your engineers to set goals collaboratively. Some engineers may choose to level up skills that come naturally to them, while others may identify "weaker" skillsets and express a desire to improve them. It is crucial that engineers have the autonomy to select their areas for growth (in negotiation with your input about the team's overall needs).
Provide opportunities and milestones for engineers to grow in their chosen areas. If engineers want to improve "weaker" areas, remember that this can be a more vulnerable learning experience. To account for this vulnerability, connect engineers with non-critical projects (no deadlines, no significant consequences for failure) that allow them to practice and optimize new skills in a stress-free, real-time, environment.
The result: engineers are more invested in their own learning and feel safe to venture outside their comfort zones.
Final word
Ultimately, our strengths are tools that can help us grow and take on new challenges. The 4 steps we've discussed today will set engineers up to do their best work individually and through teamwork. When you tap into the cohesive flow of a high-performing engineering team, success will come more naturally.