I firmly believe that people are a company’s greatest assets. They drive your business forward, generate innovative solutions, engage with your customers (as well as their family and friends), and promote your business to attract talented individuals. If you invest in your people wisely, they will set you up for great success! In this post, we’ll explore how development (or "dev") teams operate, and at the end, I’ll share six tips on how to build and grow the best dev team.
Dev teams come in different shapes and sizes, determined by several factors, some of them are:
Product complexity
Can your team own the entire tech stack or do you need separate teams for it?
Is your product a user-facing app or an internal systems integration?
Size of your organisation
Are you in a mid-size company or in an early-stage startup?
Your customers
How many customers do you have?
What is your Customer Acquisition Cost (CAC)?
Is there a plan for upcoming product expansion or scaling?
Company’s budget
Can you hire more full-time employees to support your product?
Do you need contractors? Can you outsource some of the dev work?
However, most of the time, we have what I call a "Core Dev Team" structure. It serves as the powerhouse for building and maintaining the business logic of your product. This core team typically consists of the following:
Developers with a wide range of expertise (interns, juniors, mid-level, and seniors)
A Tech Lead who is the technical owner of project delivery, sets the direction for the dev team, and ensures they’re working towards the destination.
A Product Manager who is the voice of the customers within the dev team. They are responsible for ensuring customer success through the team’s deliveries and answer one crucial question for stakeholders: Is the dev team building what the customers need?
However, based on the external factors mentioned above, your dev team might take on a different form. For example, you might be working in an R&D team composed of data scientists, data engineers, and a couple of full-stack engineers. For simplicity, let’s place them all under the “Dev Team” umbrella, as the tips I’d like to share with you are “organisation”-agnostic.
Now, let’s zoom in on the Core Dev Team, specifically on the Developers. What are the elements that can help us identify a successful dev team?
Collaborative - They can easily work in pairs or solos to achieve a certain task.
Communicative - They can easily communicate blockers, root-cause of a specific bug, and alternative solutions for it.
Empowered - They’re not afraid to suggest new ideas, take initiatives, or challenge existing solutions.
Happy - This might sound too simple, however, a team who enjoys doing what they’re doing is one of the signs of a successful team. They find value in their work and they are happy to be part of that team.
Sometimes, when working in a dev team, it might seem tempting to think that if you want to get things done quickly, you should just do it yourself. Sure, that might speed things up in the short term, but is it sustainable? Will it help you in the long run? Does it contribute to the team’s growth? Will the team be able to do things faster next time, or have you become the bottleneck? This is where delegation comes in.
A good starting point for team growth is recognising delegation as your ally. I believe in the power of delegation. Not only does it offload work from you as the bottleneck, but it also creates opportunities for teammates to contribute, take on new responsibilities, and face new challenges, thereby fostering team growth. As engineers, we all share the same goal: technical excellence. We want to get better at our craft and tackle bigger challenges.The way to achieve this is by supporting each other as a team. This responsibility shouldn’t fall solely on the Tech Lead; each team member should be willing to help each other to reach our shared goal.
Consider this analogy: each developer has a horizontal line representing their path to technical excellence. In a healthy, growing team, there’s an additional curved line that signifies stronger team growth. Developers have the bandwidth to teach, pair up, or explain tasks to teammates. This not only helps senior engineers delegate work to junior engineers but also creates a compounding effect, where junior engineers become more capable and quickly grow to support their colleagues. I call this the “Fork-Shaped Growth”, as illustrated in the diagram below.
The absence of these curved lines indicates a lack of team collaboration and, unfortunately, suggests selfishness. In such a scenario, everyone focuses on their own work, doesn’t help each other, and might claim that they don’t have time to support one another. That’s not a great environment. While individuals might still progress toward their goals, it will take them far longer to reach those goals alone.
So, how can you grow the best dev team?
Foster a Culture of Humility: We don’t know everything, but we know enough to get started. Create an environment where team members feel safe admitting when they don’t know everything and are open to learning on the job. Also, seniors can learn from juniors just as much as juniors can learn from seniors.
Embrace Open Communication: Make sure each individual has a voice and is equally heard. This can take the form of daily stand-ups and regular one-on-one meetings. Create an environment where team members feel empowered to voice concerns, share ideas, and take new initiatives.
Encourage Collaboration: Invest time in supporting team members by clarifying tasks through collaboration or pair programming sessions. This will enable them to handle similar tasks independently in the future, tackling increasingly difficult challenges.
Team Empowerment: Allow your team members to take ownership and responsibility. Celebrate their successes and step in to support them in times of failure. Do not let a culture of blame trickle in.
Recognise and Reward: Team members often do their best to ensure the business succeeds. Make sure you also do your best to help them succeed. This can take the form of recognising great work, celebrating team milestones, promoting high-performing individuals, etc. Sustaining a high-growth team typically requires investing in its members.
Lead by Example: Show your commitment to your team’s growth by continuously improving your leadership skills. Set regular retrospective meetings with your team to reflect on three key questions: 1) What went well? 2) What didn’t go so well? 3) What can be done differently? Most importantly, recognise that you are as teachable as anyone else. The path to growing the best team begins with learning how to become a better Leader.
Conclusion
To summarise, we’ve learned:
What is a “Core Dev Team” and some of its versions.
Helpful signs for identifying a high-growth team.
Collaborative, Communicative, and Empowered. This is the type of team that enjoys doing their work and is committed to their success as a whole.
What is the “Fork-Shaped Growth”, and finally
What are the six tips for growing the best dev team!
Thank you for Reading! 🎉
Thank you for reading this first post of The Proactive Engineer newsletter!