The global economy is growing right now, and that’s good for businesses on most levels. The challenge is this: When the economy is robust, people have more options. That means employees can leave for better opportunities at other companies that are growing.
Turnover can be especially bad for engineering / development teams, because losing crucial knowledge from a dev team can set back the entire road map.
If a great performer in marketing leaves, that would also be a loss, but the tactics of marketing can usually be picked up by the rest of the team. When a great developer leaves, though, you lose both knowledge and skill that can have massive implications for future product/service development.
You have a few different options to decrease turnover potential within your engineering team:
Pay them better.
Even though we talk about a lot of different reasons why people leave jobs (“purpose,” etc.), two primary reasons are project and money. Good thing is that among good engineers money is not most important thing and to some degree it can be compensated by whole work package.
Engineer who is being treated well and has overall good benefits is only going to jump to a competitor for significantly more money. So, if you pay top of market, you will much easier attract and retain developer teams.
The problem: Most companies are cost-averse or not structured in a way to pay top of market, and you’ll never be able to compete with global enterprise companies in terms of developer salaries (think Google, etc.). So, this option is not usually doable for most organizations. What you can do is to focus on complete package like work-life balance, attractive projects, education, good career opportunities etc.
Outsource your engineering and development.
This is what we do, and we use what’s called a “Team Extension Model.” In the Team Extension Model, Serengeti is a supplier responsible for maintaining a stable offsite development team that seamlessly integrates with the customer’s internal engineering team.
The supplier -- us -- is responsible for managing the remote team and delivering according to the customer’s roadmap, product requirements, and timeline. We maintain a dedicated core team that emulates an engineering center owned by the customer as closely as possible.
Its advantages are scalability and flexibility in team size, composition and skill set, as well as the added focus of a management team experienced in similar engagements.
Download our Guide to successfully managing a distributed software development team
This allows application logic to be broken into smaller parts, which makes it easier to teach to developers. The main current model is homogenous applications, where developers need to learn a great deal about everything tied to the road map, application architecture, the timelines, etc.
In a microservices context, the crucial information is “chunked,” which means that if one developer leaves for a different opportunity, you just need to reteach the sections of the app process that the departed developer was working on.
In a homogenous model, when a core developer leaves, he/she might be taking a massive amount of knowledge with them.