4 reasons why team augmentation is a good idea

As a software development house we provide our clients with basically two options:
- we can provide a team of developers that will build an application on their own (it usually happens when a client wants to start a project from scratch)
- we can provide a team of developers that will augment the client’s team (routinely, it is a case when a client wants to maintain/add a feature to existing, usually a big application)
In this article, I would like to talk a little bit about the latter and the advantages it brings to your company and your team.
Enhances your coding
Team augmentation usually brings a lot of pair programming and mutual reviews between your team and the client’s unit. There is quite a big chance that during those moments you can take over or learn some new good practices. As I mentioned at the beginning, team augmentation usually happens when the client needs help with a massive existing project. It might be daunting at first, but solving problems in a complex system is very educational. Optimization and speeding up certain parts of the application might help you with a deeper understanding of your programming language and the environment used for deployment. If refactoring is needed, rewriting old parts of the system or adding missing tests might also strengthen your problem-solving skills.
Shows different approaches to project management
Leading the group of people that work in different locations and sometimes different time zones brings a lot of challenges. During team augmentation, you can see how the client tries to resolve those challenges. It usually takes a few iterations to build a stable work environment between many companies and it is a great way to learn which things work and which things make the collaboration harder. There is also a possibility that the client uses a different management software than your company so you can try it out and check which one is better.
Boosts your language
You can skip this part if you are an English native speaker. If you are not and you augment the team from another country, it is safe to bet that you will be communicating using English. There will be a lot of meetings and pair programmings where you can practice your spoken English. And for sure, reviewing and commenting the code or simply corresponding using emails, messaging/ticketing system will not remain indifferent towards your written English.
Sharpens interpersonal skills
Last but not least: by working with people from different cultures and dealing with possible strange behaviors like not always polite code reviews or stubborn adherence to their reasons (even though those reasons are outdated or not supported by evidence) you and your team hone negotiation skill and practice feedback.
Summary
It is much simpler to build a new application from scratch. It is also much easier to work with a group of people that you already know and trust. Therefore, augmenting client’s team might seem like a more difficult path to take. But as I pointed out in this article, there are many advantages to it and I would like to encourage you to get out of your comfort zone and try team augmentation. It might be highly beneficial for you and your team members.

