Fundamentals of forming a team

In this blog, I will provide my view on what are the fundamentals while forming a team.

Srihari Udugani
The New Manager


Photo by Hans-Peter Gauster on Unsplash

Many managers have this constant thought that whether the team is balanced or not? Whether there is enough members to do the right job?

When senior management ask about the hiring plan, managers freeze as they don’t know what are the gaps.

One of the reason behind this is these managers, don’t really understand what makes up a team and how to understand whether there is right members to do the job.

In this blog, I will provide on how to arrive at the right composition of the team to cope up with the scope of work.

The Difficulties

In software development organisation, let’s look at some of the situation where Managers get stuck without a proper solution.

Situation#1: Some managers are not sure whom to assign when there is a need for deep technical work.

Situation#2: Some managers don’t understand why the development speed has reduced substantially and how to increase it.

Situation#3: What is the right set of team members needed during a new product design or a big feature development?

Why managers cannot answer the above situations? Because, while forming a team, many managers miss the key aspect - composition of the team.

Just by having more experienced members or more members with varied experiences will not help. There has to be a composition based on the depth of knowledge that is needed to operate effectively.

The Fundamentals

In general, the composition of team is decided based on two broad categories of members - Generalists and Specialists.

Generalists are the ones who have broad skills to handle end-to-end development of a product or a module. Example a full stack developer who understands backend and UI.

Specialists are the ones who have expert skills on certain technology or programming language or frameworks. Example an expert in building data platform using NoSQL database.

Any team need a balanced composition of generalists and specialists depending on the scope of work. Without a balanced composition, managers will not be able to identify the right set of member to the scope of work.

For example, if there are only specialists in the team, then there will be good speed in development. But, these members don’t care about the end-to-end scenarios as they will be too focused on their area of expertise.

Similarly, if there are only generalists in the team, then, for complex technical challenge, like improving performance across all the modules, you may not have the right member to work on it.

One may argue that a team member with more experience should be able to handle all kinds of complex problems. Unfortunately this is not true.

If you recall, when you were a developer and if you were a backend developer, then you will try to enhance the skills related to backend rather than on building expertise to build a robust UI.

So, if you are given a deep technical problem in UI, because you have, let’s say 15years of experience in backend, will you be able to solve it?
May be you will identify issues in backend, but you will not be able to say whether there are any issues in the way the UI is designed.

The Good practices

So, if there has to be a balance of generalists and specialists in the team, how to identify the right combination? This is where the scope of work will come into play.

As a manager, you must look at the current scope of work for the team and the future scope of work to make a decision on the composition.

Here are the 3-broad scenarios you can consider while deciding the composition of the team.

Scenario#1: Product or project is in early stage
When the product or project is in early stages, many technology consideration would be needed to design components with faster turn around times. But relatively lesser work on end-to-end product development.

In this scenario, having more specialists and fewer generalists will help. This will ensure the specialists can deep dive in designing components needed and generalists can stitch all the components to deliver the whole product or project.

Scenario#2: Product or project is in path of reaching mature stage
When product or project has gone through several releases and there are few customers or users have started using the application then, there will be work related to adding pending features, solving stabilisation issues as core components would have got designed and implemented.

In this scenario, having equal number of specialists and generalists will help. This will ensure the specialists can continue to deep dive in the areas where the stabilisation or performance issues are coming up. And generalists can continue to deliver the new features or fixing bugs in the existing features.

Scenario#3: Product or project is matured
When product or project has reached a stage where it is more of fixing bugs, enhancing existing features or adding new features and occasionally solving performance or stabilisation issues then, deep technical work will be relatively lesser when compared to delivering a complete feature using the core components.

In this scenario, having lesser specialists and more generalists will help. On need basis, specialists can look at the core components and continue to enhance it as needed, without any dependency on the enhancement or addition of new features. And generalists can continue to work on delivering feature as requested.

Final thoughts

Based on the scope of the work and the upcoming work, deciding the combination of team members will help you to cope with demand of work.

This also gives you reference point on justifying why certain number of specialists and generalists are needed for the team while discussing with the senior management.

With the combination of specialists and generalists, decide the experience of each member depending on the complexity of the module or the future work that is coming in your way.

If you need a faster development cycle for features, then hire more senior generalists members with few junior generalist members.

Similarly for specialists also you can decide the seniority based on the type of architectural changes that are needed.

By trying out different combination of specialists and generalists, as a manager you will be able to meet the expectations of senior management and provide complete transparency on hiring needs.

This will ensure the team has always the right members to deliver the scope of the work assigned for the team.

Happy management!

If you learnt something from this blog, please consider leaving a small tip.

Further reading



Srihari Udugani
The New Manager

Knowledge Made Simple and Structured, Decisions Made Clear. Happy success!