How to Scale Your Engineering Team to Accommodate Growth
On the surface, it may seem that scaling an engineering team is the best way to cater to a bigger market or to enhance the product rapidly. However, expert engineering leaders will tell you otherwise.
A higher number of engineers doesn’t always translate to increased output.
While rapid startup growth is often portrayed as desirable, the reality can fall short of expectations. Scaling engineering teams brings its challenges, as Ben Horowitz highlights in his book “The Hard Thing About Hard Things.”
“Rapid growth rarely equates to a proportional increase in team output, often leading to diminishing returns and reduced overall productivity.”
Kate Heddleston, Director of Engineering at Samsara, reinforces this notion in one of her blog posts:
“When the new Senior VP of Engineering took over at a major Silicon Valley tech company a few years back, the first thing he had to do was freeze hiring. The company had been growing rapidly and their engineering team had hired aggressively, but they had reached a point where each new engineer they added to the team decreased overall productivity.”
Over the years, we have partnered with startups and enterprises in various industries to scale their engineering teams. And during these partnerships, we have observed a pattern – when a development team surpasses 20 members, attempting to double the team within a year often leads to challenges. In fact, the more engineers you add, the more complex it becomes to maintain the development velocity.
So, when should you consider scaling?
As a growing startup, you will need more engineers in your team when:
- Your customer base is growing rapidly and requires additional resources to support their needs effectively.
- Your roadmap expands to more platforms, necessitating specialized engineering expertise to develop and maintain the product across different environments.
- Deadlines are being missed, indicating that the existing engineering team is stretched thin and requires reinforcements to meet project timelines.
- There is a skills gap within the current team, resulting in limitations in executing certain aspects of product development. Bringing in additional engineers with the necessary skills can address these gaps.
- You have achieved product-market fit, indicating a positive response from customers. Scaling the engineering team allows you to capitalize on this opportunity by rapidly iterating, enhancing features, and capturing a larger market share.
However, according to the Startup Genome Report, a whopping 70% of startups jumped the gun and tried to scale up without having their processes and basic foundations in place. This premature scaling turned out to be a major reason why many of these startups failed. Lesson learned: it’s crucial to build a solid base before going full speed ahead with scaling.
Based on our experience, we recommend going ahead only when you have the following aspects in place:
- A strong core engineering team that is committed to the success of your startup in the long run
- Scalable infrastructure that can accommodate the growth of the tech team and the increasing demands of the product. This includes robust hardware and software resources, scalable cloud-based services, and an architecture that can handle future growth without major disruptions.
- Established agile processes
- Metrics and analytics frameworks to measure the performance of your engineering team
Prioritizing these foundational elements before scaling ensures a solid foundation, minimizes risks, and sets the stage for successful growth and scalability in the long run.
Challenges involved in scaling an engineering team
Growth comes with challenges, including finding the right people, establishing effective processes, and nurturing the right culture. Let’s look at some of the significant challenges you may have to face while scaling your engineering team.
1. Decreasing velocity
As we have already mentioned, scaling an engineering team can lead to a decrease in velocity, impacting the speed and efficiency of work delivery.
As the team grows, communication and coordination become more complex. Increased lines of communication may lead to delays, or worse, miscommunicated project goals.
Moreover, the onboarding process for new team members takes time. Plus, knowledge sharing and collaboration may suffer as the team expands. As a result, the overall team productivity is affected. Cultural and process adjustments required during scaling can also disrupt workflow, impacting velocity until everyone adapts to the changes.
How to overcome decreasing velocity
- Implement clear communication channels, such as regular team meetings and project management tools, to ensure alignment and efficient information sharing.
- Develop robust onboarding processes that enable new team members to quickly integrate into the team and understand the codebase and workflows. We leverage Confluence to create centralized knowledge repositories and facilitate knowledge sharing across our team.
- Prioritize maintaining code quality and proactively manage technical debt. I still remember when we partnered with a fintech startup to help them solve the problem of decreasing velocity. It turned out that they were also up against another major issue: huge technical debt. To address this, we launched an organization-wide initiative called Fix the Debt, which involves allocating resources, time, and effort to refactor and improve existing code and enhance overall code quality. The scale-up hasn’t had to deal with technical debt as a major problem since then.
- Establish scalable processes and leverage automation tools to improve efficiency. If you don’t already work with an agile methodology, you should do it yesterday! Also, we have helped scale-ups create repeatable processes using Jenkins and GitHub Actions, so we recommend giving these tools a try.
- Get feedback from team members and measure KPIs such as cycle time, lead time, and throughput. Use this data to refine processes, remove bottlenecks, and optimize team productivity.
2. Team and management structure breaks
The needs of your team change as you transition from finding product-market fit to scaling the organization. When scaling a tech team, your existing team structure and management practices will likely face significant challenges and require adjustments.
Tim Howes is a founder and engineering manager who successfully scaled his startup from zero to 650 employees in just 18 months. He also later scaled Yahoo’s mobile engineering team from 150 to 350. Based on his experience, he suggests three crucial changes in your employees’ requirements that you need to be aware of:
– First, as the team grows, the reliance on a single engineer diminishes, and the need for effective communicators who can drive organizational change arises.
– Second, while the ability to react quickly is important in the early stages, as you scale, it becomes crucial to focus on fire prevention and maintain stability and efficiency.
– Lastly, individuals who work independently and passionately should be recognized and rewarded, but fostering a culture of knowledge-sharing and positive behavior is vital to avoid a toxic environment and promote long-term success.
How to meet these changing requirements
- We recommend building smaller teams that have autonomy in shipping independent products. Amazon’s Two-Pizza Teams approach enables them to operate with agility, encouraging fast-paced iterations, early and frequent experimentation, and swift implementation of acquired knowledge.
- Define the role of managers and fill those positions thoughtfully. This may involve promoting existing tech leads to managerial roles or hiring external candidates who bring senior expertise and a fresh perspective.
3. Difficulty in attracting and retaining talent
Attracting, retaining, and growing top software engineering talent requires significant resources and attention from team leaders to navigate the complexities involved.
Initially, relying on personal networks for recruitment may work well. However, this in-network hiring strategy tends to lose effectiveness as the company scales, especially after reaching a certain growth stage, like the Series B round. You will need to explore other recruitment methods like cold recruiting, generating inbound leads, etc.
Hiring new team members can be a time-consuming process, taking anywhere from a few weeks to several months, depending on the level of the position. This investment of time and resources can divert valuable attention and resources away from developing and improving the product.
Unfortunately, even after going through the resource-intensive hiring process, there’s still a high turnover rate due to intense competition for talent. When team members leave, they take their expertise and skills with them, which can cause delays in project delivery.
Moreover, the remaining team may face heavier workloads, and the trust and loyalty within the team can be affected. The awareness of new opportunities may also tempt others to leave as well, leading to further attrition.
How to attract and retain top tech talent
- Look beyond traditional job boards and consider attending industry conferences, hosting tech meetups, or engaging with online developer communities to connect with highly skilled individuals who may not actively be seeking new opportunities.
- Use applicant tracking systems (ATS) and collaboration tools to streamline communication and collaboration between hiring managers, recruiters, and interviewers.
- Implement mentorship programs where experienced engineers can guide and support junior team members. Honestly, the retention rate at Simform has drastically improved after we began assigning a senior team member as a ‘work buddy’ to each new hire.
- Another simple move that worked well for us was to help employees stay aware of their upcoming milestones by documenting their progress.
4. The widening gap between tech and non-tech teams
When technology and business strategies don’t work together smoothly, it can make it hard for people in the company to coordinate and collaborate effectively. This can lead to decreased productivity and reduced value in software delivery.
A common problem is getting agile development teams and the rest of the company to coordinate well, especially in larger organizations. The way things are usually set up, with hierarchies and separate teams, makes it harder for tech and non-tech people to work together. For example, if there aren’t clear ways for them to talk and understand each other’s goals, it’s tough to collaborate and stay on the same page.
Another issue is that people don’t always know enough about what other teams are doing. When you don’t have a good understanding of how different parts of the company are connected, it’s harder to see how your work fits in and make smart decisions. This can lead to things not lining up properly and create risks at different stages of the development process, like assigning resources and estimating timeframes.
How to bridge this gap
Simform is a big advocate of the product mindset.
As soon as we partner with businesses to help them scale their tech teams, we work towards ensuring open communication between stakeholders within and outside the engineering team. We conduct strategic planning sessions with the leadership and ensure everyone understands the business goals and the resulting engineering goals. This helps align each department’s strategies and projects with the startup’s common objectives and ensures all the teams work in synergy.
An example of another company implementing these practices is Spotify. They have adopted a product mindset by establishing cross-functional teams called “squads” that bring together individuals from different disciplines. Each squad is responsible for a specific aspect of the product and works collaboratively, using tools like shared backlogs and regular sync-ups, to ensure open communication and alignment towards common goals.
Atlassian also promotes open communication through its “ShipIt Days” initiative. These are dedicated days where employees from various teams are encouraged to work on innovative projects of their choice, fostering cross-functional collaboration and sparking new ideas.
How to scale your engineering team – a holistic approach
1. Assess current workloads and future needs
Start by evaluating the current workload of your engineering team to understand their capacity and productivity. Identify any bottlenecks or areas of inefficiency that may hinder scaling. This analysis helps determine if additional resources or process improvements are necessary.
Next, clearly define your startup’s growth goals and objectives. Consider factors such as target markets, product roadmap, and anticipated user base. This information provides a foundation for assessing the engineering needs required to support the desired growth trajectory.
Lastly, identify the specific skills and expertise required to meet the startup’s engineering needs. Determine the gaps between the existing team’s skill set and the required skills. This analysis helps in determining whether hiring new talent, upskilling existing team members, or outsourcing certain tasks is necessary.
While doing all of the above, don’t forget to Involve all the key stakeholders, such as product managers, business leaders, and existing team members, in the assessment process. This collaboration ensures a comprehensive understanding of requirements and also fosters buy-in for the scaling plans.
2. Define goals of scaling and success metrics
Pre-defined goals provide a clear direction and purpose for the whole scaling process. These goals act as guiding principles, helping to align efforts, allocate resources effectively, and prioritize actions.
Here, I would specifically like to talk about how the tech leaders at Simform created a solid strategic foundation by outlining specific goals for each aspect of the engineering operations. We also defined the success metrics beforehand to ensure we remain on track as the scaling phase goes on.
Some of the goals we included in our scaling strategy were:
Objective: Increase team size and capacity
Goal: Determine the target number of engineers or developers needed to meet the growing demands of the business.
Success metrics: Number of new hires, time-to-fill vacant positions, team capacity utilization.
Objective: Enhance technical skills and expertise
Goal: Identify specific skills and knowledge gaps within the team and consider upskilling or acquiring new expertise.
Success metrics: Number of team members upskilled, certifications obtained, improved performance in technical assessments or coding challenges.
Objective: Improve efficiency and scalability
Goal: Implement processes and technologies that enhance efficiency, scalability, and productivity.
Success metrics: Reduced time for project delivery, increased number of successful deployments, improved system performance or uptime.
Objective: Foster innovation and research
Goal: Encourage a culture of innovation and continuous learning within the tech team.
Success metrics: Number of new ideas or prototypes generated, successful implementation of innovative solutions, recognition or awards received for innovative work.
These goals provided us with a means to assess the impact of our scaling strategy, measure success, and ensure that the engineering team’s growth aligned with the company’s overall objectives.
In short, setting goals should be an indispensable part of your scaling journey. They provide focus, motivation, and a roadmap for sustainable and impactful growth.
3. Plan the new organizational structure and define clear roles to fill
Throughout my leadership career, I have witnessed several occasions where engineering teams work without an operating framework or a clear structure. And all these instances almost always led to disastrous results. Without a solid team structure in place, I have seen:
- Engineers focussed on building features instead of creating software that solves problems
- Unstable code with lots of bugs
- The need for complete refactoring
- Frustration and loss of trust among team members
- Delays in time-to-market and hence, revenue generation
I understand that startups hate hierarchies and the startup culture revolves around wearing multiple hats simultaneously. However, when a startup begins to scale, its goals and objectives evolve. Restructuring the engineering team allows you to realign the team’s structure, processes, and roles to support the company’s new growth objectives.
The first thing to do here is to define clear roles and responsibilities for each team member. For example, as the engineering team grew at Spotify, they implemented the “Squad” model, where small cross-functional teams were formed with clear ownership of specific features or product areas. Each squad had a product owner, a tech lead, and other necessary roles to ensure clear responsibilities.
If Netflix could do it after 25 years of operations, you can do it too
Netflix made a big move after 25 years by restructuring its teams to address various challenges. One challenge was giving clear career paths to new graduates. They created a “mid-level” position like Software Engineer II to offer realistic growth opportunities and prevent them from leaving due to slow advancement.
Another challenge was attracting top talent. Without defined levels, it was tough to showcase opportunities for senior-level engineers. Introducing levels allowed Netflix to demonstrate that they value and reward experienced engineers, making them more appealing to talent from big tech companies. The leveling system ranged from Software Engineer to Principal Software Engineer, providing a clear structure for career progression.
While the transition caused some tensions and discontent among engineers, it was necessary to address the company’s complexity and ensure cost efficiency. The restructured teams, with clear levels and expectations, helped Netflix align compensation practices, attract and retain top talent, and offer a focused career growth path.
Commonly used team structure for scaleups at various stages of growth
The ideal structure of an engineering team can vary based on factors such as the organization’s goals, the nature of the products or services being developed, and the team’s specific requirements. However, here is a general outline of the team structure for different team sizes:
Engineering Team Structure at 20 Members:
- Engineering Manager: Oversees the team and provides guidance, sets goals, and manages resources.
- Tech Leads: Experienced engineers who provide technical leadership, mentorship, and guidance to the team.
- Software Engineers: Responsible for writing code, implementing features, and ensuring high-quality software development.
- Quality Assurance/Test Engineers: Focus on testing and ensuring the quality of the software.
- Product Managers: Collaborate with the engineering team to define product requirements and priorities.
- Designers: Work closely with the engineers to create user-friendly and visually appealing interfaces.
- DevOps/Infrastructure Engineers: Handle infrastructure, deployment, and maintenance of the development and production environments.
Engineering Team Structure at 200 Members:
- Engineering Directors/Managers: Oversee multiple teams and coordinate cross-team collaboration.
- Team Leads: Lead individual teams and manage day-to-day operations, including goal setting and resource allocation.
- Backend Engineers: Specialize in server-side development and handle the core logic of the system.
- Frontend Engineers: Focus on client-side development, user interfaces, and user experience.
- Full-Stack Engineers: Capable of working on both the frontend and backend aspects of the development.
- Quality Assurance Engineers: Conduct testing, automation, and quality assurance activities across teams.
- Data Engineers/Scientists: Manage data pipelines, analytics, and data-related tasks.
- DevOps/SRE Engineers: Ensure smooth operations, system reliability, and efficient deployment processes.
- UX/UI Designers: Collaborate closely with product managers and engineers to design intuitive user interfaces.
- Product Managers: Lead product planning, prioritization, and coordination between engineering and other teams.
Engineering Team Structure at 500 Members:
- Vice President of Engineering: Oversee the entire engineering organization, including multiple departments or divisions.
- Engineering Directors/Managers: Manage various departments or divisions within the engineering organization.
- Department Leads: Oversee specific engineering areas, such as infrastructure, applications, or platform development.
- Team Leads: Lead individual teams within departments and manage team-level operations.
- Engineers and Specialists: Work within specific teams, focusing on their respective areas of expertise.
- Architects: Provide architectural guidance, ensure consistency, and review technical designs.
- Project Managers: Coordinate projects, ensure deadlines are met, and manage resources across teams.
- Technical Support/Operations: Handle post-development activities, support, and maintenance of deployed systems.
- Data Scientists/Analysts: Utilize data to drive insights, make data-driven decisions, and improve products or services.
Again, these structures can vary depending on the organization’s specific needs, and additional roles or positions may be required based on the industry, technology stack, and business objectives.
4. Establish processes for short and long-term wins
Creating processes is yet another way to structure how your engineering team functions. Here are some practical steps to consider:
- Start with a planning process that considers both the long-term and short-term perspectives. This phase should identify key drivers, align different teams, and set Objectives and Key Results (OKRs) to guide your team’s efforts.
- Transition to a monthly execution cycle based on the annual plan. Conduct regular planning and review sessions to analyze important metrics, market trends, cross-functional initiatives, and team deliverables. By aligning on top goals for each month, you can maintain momentum and establish a consistent rhythm between quarterly reviews.
- If your organization frequently releases updates, such as on a weekly basis, adopting a deliberate prioritization process becomes crucial. By prioritizing projects every week, you can effectively manage short-term goals and achieve desired outcomes within a shorter time frame.
- During periods of rapid growth, focus on identifying and nurturing systems that provide leverage for your company’s growth. Give priority to areas that can have a significant impact, such as developer tools, continuous integration/continuous deployment (CI/CD) pipelines, and application performance monitoring.
5. Hire reliable engineers and implement a solid onboarding process
Finally, it’s time to get started with hiring. Hiring exceptional engineers for your startup requires a strategic approach and thinking beyond conventional methods. Here is some not-so-common advice to help you attract and hire top-notch engineers:
- Look beyond traditional job boards and explore niche communities and platforms where exceptional engineers gather.
- Highlight the unique technical challenges your startup is tackling and how engineers can contribute to solving them. This can be done through blog posts, tech talks, or open-source projects associated with your company.
- Emphasize the level of autonomy and responsibility they will have in shaping the product or technology stack. Highlight the impact they can make and the opportunities for career growth within your startup.
- Instead of relying solely on traditional interviews, incorporate technical challenges or hackathons into your hiring process. Provide candidates with real-world scenarios or problem statements that simulate the type of work they would be doing at your startup.
- Look for candidates who exhibit a passion for your industry, a growth mindset, and a willingness to learn and adapt. Assess their ability to collaborate, communicate effectively, and thrive in a fast-paced startup environment.
It’s not enough to bring good people on board; they must be efficiently onboarded, integrated into the team, and aligned with the mission that led to their hiring.
How to onboard new hires effectively
One effective method is to pair each new hire with a dedicated “buddy” who can help them navigate their role and team dynamics. Encourage your team to see assisting new hires as part of their own responsibilities.
Regular check-ins with both new employees and their teammates are crucial for monitoring progress and addressing any concerns or challenges. By investing time and resources in proper onboarding and training, you can expect long-term benefits and improved team performance off your scaling efforts.
6. In pursuit of speed, don’t lose sight of the quality
I understand that you are scaling your engineering team to probably ship features faster or deliver services to more clients. While you are busy doing that, it’s easy to get so lost in speeding things up that your team unintentionally begins to compromise the quality of your product or services.
Simform has gone from being a small team of 20 engineers to a full corporate organization with over a thousand employees. We have been able to consistently deliver superior quality services because of a few simple but significant processes:
- We asked every team to create a dashboard to monitor key quality metrics and initiate product reviews with a focus on quality. By making it clear that quality is a priority, we encouraged the entire organization to prioritize safeguards and maintain high standards.
- We created a checklist that includes essential items every product team must address before releasing a product.
- We also incorporated code reviews and automated testing in our processes to create a framework that consistently upholds quality standards and identifies potential issues early on.
Scaling an engineering team should be done strategically and with a solid foundation in place. It is important to assess the current needs, define growth goals, and identify skills or resource gaps before scaling.
Challenges such as decreasing velocity, team and management structure changes, difficulty in attracting and retaining talent, are common when scaling. However, these challenges can be overcome through clear communication channels, robust onboarding processes, scalable processes and automation, smaller autonomous teams, and fostering a culture of knowledge-sharing.
Don’t settle for mediocre growth. Partner with Simform for guaranteed scaling success!
We understand the importance of scaling and have honed our expertise in helping businesses like yours conquer the challenges along the way. By teaming up with Simform, you will tap into our wealth of expertise in scaling strategies. From assessing the scaling needs to creating a scaling plan and hiring resources the right way, our seasoned consultants will effectively guide you through every stage of your scaling journey.
Don’t let growth be a challenge; reach out to us today to explore how we can transform your engineering team into an unstoppable force!