The Ultimate Guide to Massive and Rapid Team Scaling

Share on facebook
Share on twitter
Share on linkedin
Share on reddit
How to Notice and Prevent Software Developer Burnout

How to Notice and Prevent Software Developer Burnout

How do you notice and prevent software developer burnout as a team lead or engineering manager? Burnout affects each person a bit differently. It often starts subtly and progresses incrementally. Developer burnout feeds into a vicious loop that can make your developers quit or even change career path. If not corrected, it can also lead to health consequences. The good news is that its onset can be identified, prevented, and rapidly alleviated. Let’s examine how.

Read More »
Effective Code Reviews

Best Practices for Effective Code Reviews

More than half (53%) of the software development teams do code reviews on a daily basis, according to SmartBear’s 2019 State of Code Review. They find, as one would expect, that more frequent code reviews have a direct correlation to higher-quality code. As their report goes on to say, “There is a compounding effect when you introduce all the benefits of code review into daily behavior. Communication improves, knowledge about the codebase is shared, and fewer bugs make it through development to QA.”

Read More »

By GITENTIAL TEAM

With the war and untold tragedy unfolding in Ukraine, a lot of software companies are helping to make a difference, not just with donations, but by hiring Ukrainian developers, too. In some cases, a LOT of them. One of the questions we’ve received a couple of times in recent weeks has been, “How can we add a lot of developers fast?” This is also relevant to any rapid growth company. While we’ve covered team scaling in the past, we haven’t covered this kind of scenario in as much depth as it deserves. 

Most of our blog is a team endeavor and credited to the Gitential Team. It’s my personal preference to not be so public, but it is appropriate in this case to note that I am a US citizen living in Odesa, Ukraine, on the Black Sea, as a permanent resident. I’ve lived here 17 years, moving here straight after serving a 15-month contract in Iraq for EG&G and LSI. There, I served as a civilian contractor in logistics alongside the US Marines at Al Taqaddum and later as the promotions coordinator at our PMO in Camp Anaconda. 

Since then, I’ve worked alongside a number of Ukrainian software teams and at the end will share what you can expect from Ukrainian developers and considerations on working with them, whether in a centralized or remote environment. Concurrently, in Iraq, though only a small portion of our personnel consisted of IT staff, it was a massive and rapid mobilization – going from nearly scratch to supporting ~1500 personnel across 28 camps in less than a year. It wasn’t always smooth sailing… for that matter, there wasn’t a whole lot of water around.

History Lessons on Scaling Up Massively and Rapidly

In World War II, both the German and American armies massively, rapidly, and efficiently scaled up their armed forces relying on the Rule of Thirds. Before WW2 started, the German Wehrmacht expanded from ~100k troops in 1935 to 3.7 million in 1939. The US Army exploded from 270,000 troops in 1940 to almost 1.5 million in 1941. That counts only the initial mobilization, millions more followed. 

In essence, the personnel from one unit would serve as the cadre for three units. A unit would train for 4-6 months. As the training was completed, the process was repeated. One unit provided the “core cadre” for nine units. The training set the stage for privates to be promoted as sergeants and lieutenants to become captains, and so forth. And all of this was done without the benefit of advanced analytics, or even MS Excel. 

So, in a similar fashion, one software development team can expand into nine teams in a year – and still retain a reasonable level of efficiency. Analytics and AI can help to make the process if not go faster, certainly much smoother. Leastwise, even the fastest-growing companies will only be engaged in hiring hundreds of developers; not hundreds of thousands of developers.

Why Does Team Size Matter?

Scaling is a function of your number of original teams, team member roles and experience, team size, training period, and funding. Agile software development teams have an industry average of ~7 members each, broadly varying from three to nine. The reasons for this tie into issues of efficiency as we’ve discussed in Team Organization regarding the Ringelmann Effect and Metcalfe’s Law.

Illustration of the Ringelmann Effect

One of the main points here is balancing cost and performance. Smaller teams (3-4) are more efficient but tend to cost more than larger teams, while the latter are inherently less efficient. When budget is not an issue, finding developers with the specific skills needed often is. The Ringelmann Effect advises (it’s not a law per se) that larger teams don’t equate to greater productivity.

Having the right ratio of people in each role is also important for a smooth workflow, but this varies according to the nature of each project. Team organization varies quite widely, but to simplify, their roles consist of project managers, engineering managers, and software developers, augmented with business analysts, designers, other specialists, and sometimes QA technicians. In many teams, QA is largely the responsibility of developers. 

By sticking to Agile principles, we can get some useful numbers to balance cost and performance when planning to rapidly scale up your company.

 Maximum EfficiencyOptimal Cost and PerformanceMaximum Capacity
Project Manager3-4 projects7 projects9 projects
Engineering Manager and Team Leads3-4 direct reports7 direct reports9 direct reports
Business Analysts, Designers, and Other Specialists*3-4 teamsVery situational, but it’s rare for companies to have less than 1 designer for every 50 developers. The usual ratio is about 1:10. 
* Other specialists can include ML/AI, Data Scientists, QA Technicians, etc. not otherwise part of a dedicated team. 

A “typical” engineering manager’s direct reports might include 3-4 team leads, 1 business analyst, 1 designer, and 1-2 specialists (perhaps a data scientist and a QA team lead).

Ad Hoc vs. Staged Expansion

The normal hiring and vetting process can take a lot of time – reviewing resumes, conducting interviews, onboarding, and everything that goes with that. When hiring developers en masse, you have a decision to make – hire them one at a time as fast as you can process them, or hire in waves with common start dates. 

Hiring many developers and giving them the earliest possible start dates may be easier to support initially alongside your regular daily tasks. But, doing this adds an enormous amount of long-term complexity in constantly having to shift onboarding efforts, sprint planning, assigning mentors, when to conduct one-on-ones and performance evaluations, and so forth. 

Developers like stable teams and environments, the less chaos and disruption the better. Each developer added to an existing team can substantially alter sprint planning, team dynamics, and performance. The chaos typical to a high-growth startup, as we’ve covered previously, can easily push turnover to 25+% per year. That’s likely to be much lower for Ukrainian developers though. Still, this warns against large-scale ad hoc hiring beyond mission-critical expertise.

Staging the hiring and onboarding process on a predetermined schedule dramatically simplifies the effort. It’s not as personal, it can appear like an “assembly line” – but you can more easily compensate for this after each team is formed. It’s not just a matter of getting everyone started, but how you get everyone started. 

  • Group like activities together for optimal efficiency.
  • Have a common reference point for tracking developer performance.
  • Simplify scheduling of one-on-one meetings and performance evaluations.
  • Start everyone off on the same footing and assure that everyone receives the same orientation, training, introductions to other stakeholders, is given access to resources, etc.

The goal is to help your teams and developers steadily improve so they can deliver your project according to specifications, on time, and on budget. That’s really hard to do when your team is constantly changing.

How Fast Can You Expand?

It can take 3-6 months for a developer to come up to speed on a new codebase depending on project complexity and how well they are supported. The 90-day review for new hires is a good evaluation point to assess how well everyone is doing, how well they work together, and to identify candidates for your next wave of team leads. Your new prospective team leads will need additional training, discussed below, which could take an extra month. 

Though possible, it’s generally difficult to imagine retaining a reasonable level of efficiency with a team expansion cycle time of less than ~4 months. It’s also hard to imagine a company going from 1 to 27 teams in a year just on the basis of funding levels. Even then, developers are in a shorter supply than funding. But, stranger things have happened – the past two years being a bundle of good examples.

Here’s how this kind of rapid expansion might look:

Planning for Rapid and Massive Scaling

Original Team Size 1st Cycle – 3 Teams 2nd Cycle – 9 Teams Optional 3rd Cycle – 27 Teams
3-5 9-15 27-45 81-135
6-8 18-24 54-72 162-216
9+ 27+ 81+ 243+

The Challenges of Rapid Growth

Expanding rapidly bears a number of challenges, especially in today’s remote work environment. In Iraq when we were starting from scratch – without even an HR manual and everyone making up answers, initial turnover was running over 60% on just 3 months in the country for a one-year contract (coinciding with everyone’s first vacation). This owed largely to inconsistent, conflicting, and constantly changing policies complicated further by an initial lack of managerial training and a common set of administrative standards. 

Contract hopping was a big issue then and remains an issue as all software developers are in high demand and regularly approached by recruiters. It’s such an issue that Apple recently gave large retention bonuses to keep Meta from pilfering them. That’s just one of many challenges to keep an eye on – but there are plenty of things you can do to create a smooth(er) transition for everyone. Here are a few.

Challenges and Remedies for Scaling Up Fast

Challenge

Remedies

Mitigating High Turnover
  • An effective onboarding program to properly introduce your company, project, team, cover HR and administrative issues, and set everyone up with software and access credentials.
  • Regular one-on-one meetings (weekly or bi-weekly) to keep everyone aligned and focused on objectives.
  • Establish communication channels and protocols to cover different levels of urgency and time zone disparities.
  • Define common days and hours in which everyone needs to be available for team meetings, training, and team activities.
  • Establish and promote awareness of career paths, continuing education programs, and pay/performance/promotion criteria.
Internal Promotions
  • Review your current team for prospective team leads and/or software engineering managers. 
  • For those to be promoted, provide training on performance analytics, any administrative/HR functions they will need to cover and align on KPIs and critical objectives.
  • More below.
“Right” Team Size and Mix
  • Observe the “Ringelmann Effect” – inefficiency scales with team size. Most Efficient = 3; Optimal Cost/Performance = ~7.
  • Aim for one mid-level developer per every 3 junior developers.
  • Aim for one senior developer per every 3 mid-level developers.
  • Best to organize on a per technology and/or programming language basis as fits project requirements.
Learning the Codebase and Coding Standards
  • It will take up to 3 to 6, months for new developers to reach “full speed” on existing code (relative to project scale/complexity).
  • This can be partially mitigated or accelerated by having team/tech leads who are already experienced with the code via mentoring, walkthroughs, standups, etc.
  • Maintain and promote centralized resources developers are encouraged to use and reference – software, services, frameworks, libraries, style guides, re-usable code, definitions of Good Enough Code, outlines of work processes, etc.
  • Select which automated tools and linters should be used, along with their settings to reinforce style guides, effective commenting, etc.
High Code Complexity
Validate Skills and Identify High Performers
  • When hiring en masse you may not have the time to fully vet everyone like you normally would, suffice that it’s wise to have something like a 90-day onboarding plan and/or probationary period to better assess new hire skills.
  • Performance analytics can help you objectively identify each developer’s skill and affinities.
  • A developer may know multiple programming languages and may have greater skills in languages other than the ones for which they were hired or tasks they’ve been assigned. This needs to be factored in relative to company/team needs. 
  • More below.

Promoting from Within, First

Before your onboarding process begins, it’s important to review your existing developers and team leads for promotion as team leads and engineering managers, respectively. It’s important to verify with each individual if this is a promotion they want as these involve less coding, favor people skills, and can often change the trajectory of their career path.

There are several benefits to gain by promoting from within. 

  • Shows your developers that there are promotion opportunities and professional career paths forward in your company that can encourage long-term retention.
  • Familiarity of company, policies, benefits, different stakeholders to provide an HR element in introducing and informing new team members about everything they need to know, or at least who to ask. Access to information not just to perform their job, but company benefits and programs are also helpful for better retention.
  • If expanding existing teams and projects, knowledge of the project and its evolution, codebase, structure, specifications, and performance can be used to align on critical KPIs, assign tasks, conduct walkthroughs, etc., all apply to enhanced efficiency.

Training Team Leads

What can be said here also extends, at least in part, to software engineering managers. Team leads are likely to spend much less of their time coding and managers may spend little or no time coding. Both will need more people, leadership, and administrative skills. 

Developers on most teams will already have exposure to a lot of the routine – sprint planning, daily standups, retrospectives, one-on-one meetings, use of project management software (like JIRA), and the like. Instead of being a participant though, they’ll be responsible for planning, leading, and managing these activities. That can be a bit different, but shouldn’t be a huge leap. Your original team leads and engineering managers should provide tips, training, and an overwatch role until the newly promoted feel comfortable in their role.

Developers routinely work on complex tasks, but they will need to pick up some HR training. Easy peasy! This extends to validating timesheets, approving and processing vacations and sick days, proper reporting, time management, awareness of company policies and benefits programs, how to handle disciplinary issues, and the like. Most of this is pretty easy, suffice that telling a developer she can’t take the vacation time she submitted a month ago because her expertise is needed to meet the release schedule – yeah, that’s not going to go over well.

AI-Powered Digital Assistants as a Training Tool

Identifying software delivery challenges and how to resolve them is a more complex function for team leads and managers. The AI-Assistant that Gitential is developing can greatly assist all stakeholders in software development – from Executives and BI Analysts to Engineering Managers and Team Leads. 

When scaling up rapidly, an AI-Assistant provides invaluable help in simplifying and easing the landing for newly promoted team leads and managers:

  • Dashboard provides all essential team metrics at a glance to show where your team is most challenged – and performing well.
  • Data-driven “Insights On-Demand” with Next Best Actions on what you can do to assist your team or individual developers on a per metric basis. 
  • Offsets hours and even days of manual research to find ways to improve your team’s performance, freeing up time to implement or let you code more.
  • Real-time alerts for when performance on selected metrics fails to meet standards.
  • Benchmarking to compare developer, team, project, company, and industry-wide performance on a per metric basis – to help set realistic goals and help identify which ones are applying best practices for you to consider adopting locally.

What AI Reporting Means for Executives

Normally, it’s hard to paint an entire country of people with a single broad stroke, but as we’ve seen in the news, Ukrainians make that easy. Ukrainians are polite, diligent, have an excellent work ethic, and tend to not be very dramatic about small shit. There may be some exceptions, but they’re few in number. There’s a lot more to know about Ukrainians though:

  • Ukrainian developers consistently rank in the Top 10 most technically proficient developers worldwide by SkillValue based on over 550 technical assessments – in 2019 they ranked #5 with a score of 93.17%. 
  • Most Ukrainian IT workers change jobs less frequently than their American and Western European counterparts – their estimated turnover ~10% per year – compared to current trends of over 14% in the USA.
  • Nearly all (80+%) Ukrainian developers have a high level of English fluency.
  • Their most popular programming languages, according to NCube, are JavaScript, Java, C#, Python, PHP, and Typescript, however many also know C++, Swift, Ruby, Kotlin, and Go. 
  • Ukrainian developers are most often involved in back-end, web and front-end, mobile, data processing, and desktop projects. 
  • Many very large companies like Alphabet, Amazon, Oracle, Samsung, Ubisoft, and countless others outsource to Ukraine.
  • Ukraine is set up to accept wire transfers through Swift, and a number of other payment options, and after a long, long wait can now receive money through Paypal which has waived processing fees through June 2022.

Concluding Notes

Scaling up fast is a complex effort in any situation. The numerous links referenced offer additional guidance for scaling, managing, and improving the performance of software development teams. Our strongest recommendation is to make the effort to properly plan to scale efforts on a scheduled basis. Whether you intend to hire 20 or 200 new developers, it’s worth starting the onboarding process either on the same day or in waves. Exceptions extend to rapidly onboarding developers with mission-critical expertise. Otherwise, chaos is categorically the worst thing for software development teams.

Our thoughts and prayers continue for all Ukrainians. Everyone at Gitential holds zero doubt that Ukraine will prevail, and in an epic heroic fashion as it has already. This should never have happened and we earnestly hope this War ends soon. And, a nice shout out to Anonymous for their efforts to pierce the Iron Curtain to help show “them” what’s really happening.

About Gitential

Gitential is an Analytics and Engineering Intelligence service provider bringing visibility and optimization highlights on teams’ productivity. Our mission is to enable faster, data-driven decisions to continuously improve software delivery team cost performance and proactive risk management.

Ready to explore different ways to improve your software projects’ efficiency? Schedule a meeting and we will be happy to listen to and discuss your needs.

Have a project but are not quite ready to contact us? See if Gitential is a fit for you!

FREE TRIAL FOR LIFE
for up to 5 repos, 10 devs and 3 months of data

Published: March 23, 2022

How to Notice and Prevent Software Developer Burnout

How to Notice and Prevent Software Developer Burnout

How do you notice and prevent software developer burnout as a team lead or engineering manager? Burnout affects each person a bit differently. It often starts subtly and progresses incrementally. Developer burnout feeds into a vicious loop that can make your developers quit or even change career path. If not corrected, it can also lead to health consequences. The good news is that its onset can be identified, prevented, and rapidly alleviated. Let’s examine how.

Read More »
Effective Code Reviews

Best Practices for Effective Code Reviews

More than half (53%) of the software development teams do code reviews on a daily basis, according to SmartBear’s 2019 State of Code Review. They find, as one would expect, that more frequent code reviews have a direct correlation to higher-quality code. As their report goes on to say, “There is a compounding effect when you introduce all the benefits of code review into daily behavior. Communication improves, knowledge about the codebase is shared, and fewer bugs make it through development to QA.”

Read More »
Code Churn: The Good, The Bad and the... Perfect

Code Churn: The Good, The Bad and the… Perfect

Code churn is regarded by many software engineers as the best indicator of a code’s quality and defect density. Most engineers will also agree that code churn is good or bad relative to when and why it is taking place. But it is worth understanding in detail because it is 100x less costly to catch a defect during the design phase than catching it during maintenance.

Read More »

Did you like our content?

Spread the word

Share on facebook
Share on twitter
Share on linkedin
Share on reddit

Subscribe to Our Newsletter

Don't miss our latest updates.
All About Software Engineering Best Practices, Productivity Measurement, Performance Analytics, Software Team Management and more.

Did you like our content?

Spread the word

Share on facebook
Share on twitter
Share on linkedin
Share on reddit

Subscribe to Our Newsletter

Don't miss our latest updates. All About Software Engineering Best Practices, Productivity Measurement, Performance Analytics, Software Team Management and more.