How I built a bigger, better dev team
Ten key insights to scaling your development team the smart way
Despite tech layoffs running amok these days, receiving a bit of funding to expand your small development team can feel like a beacon of hope amidst the chaos. However, this opportunity also introduces its own set of challenges, such as scaling your team the right way to avoid unnecessary risk.
Merely doubling or tripling your number of developers without any forethought will get messy - and fast! In the past, I’ve seen EMs hire quickly and erratically, but they had no idea what they were doing or how to make it work. They went through onboarding and paired up new hires with a buddy in their dedicated teams. Soon after, everything went downhill when they realized they hired too many devs at once. Fast forward a few months later, they had to “restructure” because the company had cash flow problems — more than half the team was let go overnight.
To avoid such nightmarish scenarios, here’s what you could do to scale your dev team without fail.
Embrace microservices architecture
Move away from monolithic designs by adopting a microservices architecture. This approach involves organizing teams around well-defined, bounded contexts that directly align with business objectives. This structure not only facilitates progress across diverse functionalities in parallel but also enhances scalability and agility while maintaining a focus on the overarching business goals.
Optimal team composition
Aim for a balanced team composition with each team working on a different product vertical. This all depends on your situation, but I suggest about 4-6 developers per team, augmented by 1 QA specialist and 1 product manager. This setup encourages focused efforts and fosters efficiency and coherence.
Empower technical leadership
Assign tech leads who not only possess a deep understanding of their domain but also have the foresight and capacity to anticipate how their decisions affect the broader company goals. These leaders should have the bandwidth to stay ahead of developments, enabling informed decision-making that aligns with the company's strategic objectives.
If you’re looking for a 2-day online workshop that offers immersive role-playing that simulates real-life managerial scenarios, this course is for you!
Be the engineering leader every developer deserves!
Pay serious attention to culture
Begin by integrating a small number of developers, closely monitoring and nurturing the team's culture. Observe whether they self-organize and gel well together. Scaling too quickly often dilutes company values, lowers quality standards, and compromises the existing culture. Aim for quality hires that enhance your team, not just fill seats.
Prevent burnout with task rotation
Consider rotating tasks and responsibilities periodically to maintain a vibrant and stimulating work environment, thereby mitigating the risk of burnout. However, it's crucial to approach this dynamic shift with transparency. Engage with your developers beforehand to see if they’re open to the idea; not everyone thrives under frequent shifts in context. This strategy can significantly enhance engagement and motivation, empowering team members to deliver their utmost performance.
Set clear expectations
Everyone needs to know what they’re doing, and need to buy into the bigger picture. Clearly define roles, responsibilities, and performance metrics from the outset. Transparent expectations prevent confusion.
Refine your onboarding process
Pinpoint the hurdles in your onboarding that newcomers encounter upon joining. Ensure all processes are meticulously documented. Solicit input from new hires to refine the experience for future members, enhancing documentation and related processes. Whenever feasible, prepare a backlog of simpler tasks that allow new team members to familiarize themselves with the work environment and gain initial momentum.
Communication is essential
As your team evolves and starts coding more, it's essential to establish communication norms. Quality coding is typically underpinned by a handful of core ideas that must be articulated in a universally understandable manner. And since most comms is async these days, getting good at writing ensures that all team members are on the same wavelength, enabling them to convey their ideas succinctly for rapid understanding. Also, something I noticed in the past: with good communication, your devs don’t get ripped out of deep work with meaningless notifications. I’m also of the idea that any time words are expressed, it must be done so in a way that facilitates quick absorption.
Implement continuous learning
Stagnation is the antithesis of progress. Incentivize your teammates to pursue ongoing education, skills development, and to stay abreast of the latest technologies and methodologies. This commitment can take many forms: from allocating time for team members to attend workshops and conferences, to hosting internal knowledge-sharing sessions. Creating a culture that values learning not only keeps your team competitive but also deeply engaged and motivated to push the boundaries of what's possible with your product.
Own your mistakes
Things can get hairy sometimes, but what's worse is when there's no one willing to admit to a mistake. Encouraging your teammates to own their mistakes and learn from them is fundamental. Cultivate a culture where errors are openly discussed, not as failures, but as opportunities for growth — both for the company and personally. This approach will help you navigate through tough times and demystify the process of innovation. Sometimes, it's the calculated risks that lead to brilliant outcomes.
By adopting these strategies, you can scale your development team effectively, avoiding the pitfalls that come with rapid growth. Remember, the goal is not just to expand your team but to enhance its capabilities, culture, and contribution to your startup's success.
“HAY” there, Tomek here. We just moved to Substack from Ghost, so we’d love for you to spread the word and share our content. By the way, we’ve got a significant library of educational resources and other great content here.