Imagine that your airplane is landing and something goes wrong with one of its hydraulic systems — a wing is not moving or landing gear is not operating correctly. It's a severe risk, and airplane designers implement fail-safe systems based on redundancy, duplicating or even triplicating most critical components to increase its reliability. If there’s an error in one element, there’s always another one to do the job. Our bodies are great examples of redundancy too. Vision loss in one eye would not cause you to become blind, and hearing loss in one ear won’t make you deaf because you still have another one fully functioning.
I’m sure you are familiar with redundancy and use it all the time. It’s quite common to have a backup hard-drive or even backup laptop in case something goes south with the main one. When we are shaping the work as managers, we often overlook the risks of not having a backup option, and it can lead to severe problems when a crisis happens. We need to remember that duplication is one of the best ways to mitigate risk and ensure success.
The worst number
“One” should be the worst number for you if you’re an entrepreneur or a manager. One of anything will potentially cause trouble at some point. If you have only one source of income or only one client, there will be a situation when you’ll have to find a new one urgently. One skill will make you more susceptible to job market changes and will make it harder to find a job. One person that knows how to do the job will immediately put your project or even business at risk when he or she gets sick.
Of course, doubling up is not something you can do and has its drawbacks. For example, an organization where every employee has someone as a backup has twice as much people which adds a lot of complexity (you need managers for managers of managers). It’s also quite expensive and time-consuming to keep doubles for everything. But applying Pareto Principle and adding redundancy to most critical parts will help you manage your risks much better.
Cross-training is an excellent way of increasing redundancy in a team. It allows you to prepare lower-level employees to move up in the organization or add the flexibility to respond to some temporary needs or crises. Not everyone likes to be cross-trained and be an expert in multiple disciplines — some people prefer to be an expert in just one area or discipline. But those who are willing to collaborate across disciplines get an insight into the bigger picture and allows them to understand other team members better.
Spending time outside of employee’s specialty has a lot of personal benefits for an employee too. As I said above, trying each other’s shoes helps to understand the challenges of other team members better and increase team cohesion. It also improves communication a lot because lingo becomes familiar and abstract concepts are more easily shared. It also enhances the overall capacity of the person to learn and broadens horizons of what can be learned next
In software development team changes can be quite stressful because of the context knowledge that everyone working on the project has. When a new team member is joining it usually takes several months before they can get up to speed and usually it’s not acceptable to reduce team’s productivity for that long. In that case, semi-regular changes of people working on the project might help. When done right they can strengthen the product and make the code better.
One of the main benefits of the developer or just any job rotation is keeping process documentation up to date. Developers have their processes of code reviewing, testing and deploying and they have to be written down so that anyone new who’s joining can get up to speed quickly. Another benefit is a more standardized process that is rounded over time by new members who are joining. It’s easy for a team who’s working together for a long time to keep rough edges only to discover that no one new can’t work the way they are used to. When new people are joining all the time, the process becomes more friendly to newcomers.
Importance of job rotation for software development
There’s a big issue of inertia in software development. When you’re working on the same project for a long time, it’s easy to stop noticing little sacrifices that have been made. But when someone new is joining, they have a broader context and see everything with fresh eyes. She can quickly find lots of technical debt issues you forgot about a long time ago. She’ll also tell you what parts of the codebase are hardest to understand so that you can either refactor them or improve the documentation.
And of course, changing projects or even modules within the project is crucial for developer growth. Developers need to learn new things, try new libraries and techniques and try different tech stacks. Jumping on a complete greenfield project is also very refreshing — there’s nothing better than being able to design the architecture from scratch after you’ve learned so much. Teams that are working with the same project for a long time can lose drive to keep learning and become comfortable with what they know and have which is very risky in an ever-changing world of software development.
Both cross-training and job rotation might be quite stressful both for managers and employees. It can cause anxiety, but these changes can bring fresh energy, help mitigate more significant risks and improve the project overall. It’s inevitable that productivity will be lost for a short period, but it’s a small price to pay for decreased risks and increased efficiency. Think of it as insurance against the crisis that is inevitable. No matter how great your team is and how everyone likes working together there will be times when people go on vacation, get sick or leave to make their dreams come true. It’s a manager’s job to make sure the team is prepared for that.