Planning for Success:
How to Scale Software Development Teams

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

Run-through

Are you in a company that’s reached a stage where it’s necessary to scale your software development team? If so, congratulations! Growth shows you’re on the road to success. To continue forward, there are some things to consider before jumping into your plan for scaling up. A lot has been written about tech startups and managing enterprises. Not so much has been written about the process of scaling up development teams. But there is a well-defined process for scaling up rapidly. While challenges and organizational growing pains are inevitable, with proper planning and tools you can tackle them like you would any other day at the office.

Should your organizational structure change over time?

Conway’s Law, defined by Melvin E. Conway, states, “Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.” Early stage startups barely have a structure and some aspire to remaining flat, non-hierarchical organizations.

An organizational structure – and the architecture of the systems it creates, has to change and evolve over time, too.  As you have some idea of the system you need to create, you can structure your team accordingly. Here are the most important factors, you should consider when changing. They can significantly impact your team requirements.

  • Project manager’s capacity
  • Team-member cross-functionality
  • Complexity of the project
  • Funding runway and financial constraints
  • Project stage

Typical Structure of A Startup’s Software Development Team

Team size can vary depending on the project. In Agile, it’s recommended to keep small self-contained teams with 3 to 9 members. Seven is around average across the industry. Agile encourages having team members able to fulfill multiple roles. In Waterfall, teams typically exceed 15 members typically with dedicated, non-interchangeable roles. However, we will focus on Agile as it’s the methodology most startups are at least trying to use.

The Roles in a Software Development Team

The roles in a software development team

The above diagram shows what a typical software development team looks like. You’ll only need one PM and one BA. A startup will need 1, maybe 2 designers. In some teams, developers are responsible for their own testing and QA. However, your project may require front-end and backend specialists. So, a startup will likely need a few, maybe several developers.

Specialized roles like DevOps, ML/AI or data scientist specialists, Automation QA, etc., can be added to the team, as needed. Often, one individual may fill two or more roles – a project manager with BA and QA experience could potentially fill three roles. While all of these roles are useful for a software project, they are not needed for every part or component of the software.

Expanding Your Development Team

Agile software development allows for different parts of a software program to be designed in parallel even though other components proceed sequentially. So, as we know – it’s highly likely that at some point, we will need to add more developers, possibly many more.

Instead of adding everyone to the top level Software Development Team, it’s best to incorporate the additional developers in Feature Teams wherever appropriate. In this expanded structure, all of the feature teams could be represented in the broader team by an engineering manager or by the team leads.

A Scaled-Up Development Team

A Scaled-Up Development Team

Plan Your Software's Lifespan Team-Size

An important factor you should consider is that today’s software is trending with a 6-8 year lifespan. Complex software, defined as having a million or more lines of code tends to last 12-14 years. Obviously, it’s not practical for a startup to make detailed plans for the lifespan of its software. However, most software follows the same overall development trajectory as relates to team size over time.

  1. Startups tend to begin with “a minimum viable team” to produce a proof of concept or Minimum Viable Product.

  2. If successful in attracting investors, startups begin to ramp up to peak development effort for its release and full-feature versions. Variables apply to whether the company plans for serial or parallel development for multiple platforms.

  3. Post-release, the development effort tends to wind down for continuous improvement and maintenance efforts.

  4. New technologies, competition, and market demands may prompt occasional or periodic spikes in development effort.

  5. Eventually, development is placed on life support before it’s discontinued entirely.

If you’re successful with your startup’s first product, consider rolling your development team to work on new software projects. Who said you can only have one? Not only does being successful with one project increase the likelihood of success with other projects – they in turn help your initial project to be more successful, too.

Are you instead aiming to scale up your own software development agency? Is your team already successfully tackling 2-3 software development projects? By following the scaling process and principles we’ve discussed, your agency could easily tackle two-dozen similar-sized projects within two years or less depending on how focused you are.

Use Automated Analytics for Distributed Teams

The ability to track the work of developers working from home and outsourced teams has always been of some concern to managers. And yet, most managers have been pleasantly surprised that overall productivity has increased. Communication has improved. Their developers are even (mostly) happier.

Still, it’s important for managers to keep an eye on how their developers and projects are coming along. Gitential provides automated software development analytics providing four levels of oversight – at the company, project, team, and individual developer levels. Metrics are organized around the four main drivers of software development – quality, productivity, efficiency, and teamwork.

Valuable as a management tool to identify challenges and bottlenecks, it’s also useful as a training tool for prospective team leads and engineering managers. If your startup grows, they’ll likely lead distributed teams of their own. They’ll need to be able to identify factors contributing to challenged tasks – like high code churn or possibly an outsourced developer having little exposure with a certain programming language.

Automate Your Software Development Metrics

Gitential helps you to improve the performance of your software development team based on their Git activities with actionable insights. It’ll help you automate the gathering of software developer and engineer performance metrics, interaction analytics, frequency of commits, volume of code churn, and more! With this data, you can begin measuring the benefits of teamwork in software development, identify what’s holding your team back, improve cycle time, and more. Try Gitential now for free – no credit card needed!

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.