How to Build an Effective Development Team From Scratch
28 July, 2020
Building an effective development team is hard work that takes time and effort. Managers would often blend different approaches based on their past experiences and values most important to them as leaders.
I was granted an opportunity to build and scale two development teams of only one or two engineers to 10+ engineers. When building the team I was committed to incorporate best practices I knew about and most important values in their very foundations of the team.
I pictured a dream team I wanted to be in and based on my experience I picked the engineering practices and values that I wanted that team to have. That included:
- Changing code should be safe (unit tests covering your back, quick feedback);
- Finding the past context though a clean and linear commit history should be easy and accessible;
- Owning the knowledge all the way to the deployment of the code to production and assuring the possibility of an easy rollback
- We would agree on a set of frameworks and tools for each purpose;
- Ensuring good separation of concerns using design patterns such as the onion architecture;
- Sharing knowledge in a respectful way is of a paramount importance;
- Good enough documentation to get what is found in a git repository is in place.
Then I had to ensure that the team would fully own these guidelines.
- I would encourage discussion and solicit feedback by creating a safe space to express proposals, suggestions and comments at every team meeting.
- We would be very diligent about updating these guidelines, allowing for the new ideas and concepts to be developed and if accepted, documented and available.
- I would make sure to safeguard consensus during our decision-making process and get approval from the team -- that would create a rapport within the team and increase engagement.
The next thing I did was to automate the verification and allow people to ramp up to use/apply the standard. For example, I used some static code analysis tool that is commenting on pull requests to ensure we find non-compliant changes.
Also, I precisely defined a code review code of conduct to make sure that we conform to the highest standards. To ensure that we would be collaborative and respectful, I made sure to emphasize that code reviews are about the code and not people thus removing any ad hominem disagreement.
Finally, I provided the administrative rights for the team contributors to push their code into production.
- Having well-defined guidelines simplifies the onboarding of new contributors; they get quickly involved in the process of their own improvement.
- The team arrived with their own way of writing/designing microservice and APIs and since most of our projects are similar in design and can be taken over by any individual contributor in no time.
- Using a ”bot” improves the productivity of code reviews as we don’t have to spend time on futile details and can entirely focus on the important content.
- All rules don’t apply to every subteam in the engineering organization. Therefore, it’s important to specify or change some of the rules to fit their specific needs.
- Imposing standards can lead to misunderstandings, such as why some of the rules are there. Empathy and open communication are key in explaining the positive impact standards will bring long-term
Scale your coaching effort for your engineering and product teams
Develop yourself to become a stronger engineering / product leader
Andrew Tsui, a Product Leader, works to build great teams that are independent, demonstrate mastery of their domain, and fully commit to their purpose.
Director of Product at Startup
Harsha Shekar, Engineering Manager at Atlassian Corporation Plc, explains how he brought up and eased new members into his team, while navigating through multiple challenges.
Engineering Manager at Atlassian
Arpan Dalal, Sr. Director Engineering at RepairPal, speaks of his effort to build an organization from the ground up in a brand new domain of the mom-and-pop gardening space.
Sr. Director Engineering at RepairPal
Kirsten Zverina, Head of Product at Abethos Ventures, shares some decision-making mechanisms like FAQs and tenets, that can help reduce the pain of scaling teams.
Head of Product at Abethos ventures
Alex Oleinikov, Software Engineering Manager at People.ai, shares how he started a team from scratch and what he had to put in place before the first hires began to arrive.
Software Engineering Manager at People.ai
You're a great engineer.
Become a great engineering leader.
Plato (platohq.com) is the world's biggest mentorship platform for engineering managers & product managers. We've curated a community of mentors who are the tech industry's best engineering & product leaders from companies like Facebook, Lyft, Slack, Airbnb, Gusto, and more.