Treat ‘em like interns! Creating mini-internships for employees is an easy way to uplevel people. It's a low-barrier way to learn new skills, improve empathy, promote the sharing of ideas, and even reduce attrition.
Internships are fantastic! You bring in someone before they have all the qualifications you are looking for or who can’t commit to a full-time role themselves. It's a great system. They give people who are likely still in academia insights into industry-specific problems and what the day or day of working is like.
You can apply the same pattern to your existing workforce. A rotation program lets someone “try” another job for a while. It exposes people to new problems, tools, and solutions they bring back to their original team. The best part; they don’t have to be challenging to run!
The benefits go beyond the individual. Everyone involved gets exposure to new ideas. The key components are:
Employee development: Rotational programs allow employees to learn new skills, work on different projects, and interact with different people. This can help them to grow their careers and become more well-rounded engineers.
Empathy building: Rotational programs can build stronger teams by allowing employees to work with different people and learn from each other. This can lead to improved communication, collaboration, and problem-solving skills.
Company culture: Rotational programs allow people to experience different parts of the company and learn about its values, customers, and needs. Promoting sharing reinforced the cross-pollination of ideas and transparency.
Setting Ground Rules
Set clear expectations for everyone involved. The people rotating, all managers involved, and any other stakeholders. Changing managers, even for short periods, can go sideways.
Start with these three questions. Who can rotate? What “working” during the rotation is like? What (if anything) changes because you are in a different position?
Who can rotate matters to the people who want to rotate, those people’s managers, and the managers they would rotate to. They all have different concerns, and when push comes to shove, the manager’s concerns matter more. You don’t want to find out there were known and unadvertised issues between people who are working closely. Or put someone in a position with low trust in the employee/manager relationship.
What is expected of people needs to be clear upfront. If the rotation is three months, will they work on bug fixes, new features, or an exploratory project? They won’t be around to maintain it (like an intern!), so how does that handoff work? Will they be on-call for the new team? What about the old one? There are a lot of questions, many of which I detail below.
What accessorial part of the job change is critical to make clear upfront. If you rotate to a position that is at a different level, does your compensation change? Title? Are you changing the reporting structure in your HR systems? Does this impact people on H1B status?
How to Rotate
Give everyone the option to opt in at every step. It makes it more challenging to run the program and will save you a ton of problems down the road. First, you need teams to take part. Then, people on those teams. Then comes matching, getting sign-off on the matches, and finally rotating people.
Select the scope, duration, or timeline. Aligning rotations to your company’s quarters reduces stress for teams. If your company already runs internship programs, borrow from them so people will be familiar with the flow.
Publish the timeline of when applications will be open. Include when decisions on rotations will be announced. Also, the dates individuals will rotate to other teams. Share this with potential managers and ICs early. Use the schedule to get feedback on how this program aligns with any planning, offsites, or other factors in the business.
Find teams willing to participate. These are engineering managers willing to allow their teams to apply for rotation. Good questions to ask: if no one rotates into your team, can people still rotate out? How many individuals can rotate out at once, even if replaced with rotations in? Would you accept someone rotating in with minimal experience in the role? Who would not be allowed to rotate under any conditions?
When you have teams, send them a survey asking who wants to rotate out and to where or doing what. Some people are interested in specific business problems and want to join a known team. At the same time, other people want to learn a skill and are less concerned with where they learn it. Regardless, give people a way to set their preferences, and be sure to communicate that it's a best effort to match them that way. They can always opt out.
Filter individuals that a manager told you can’t participate. Why wouldn’t they be allowed to? No one should be allowed to rotate if they aren’t in good standing; don’t have people on PIPs now on another team. Some people may be critical components of upcoming projects that the team can’t lose. There are many reasons, and the team’s manager needs to have the option to keep people with them.
Iterate on how to match people to teams. Matching sucks. Just do it and send it out to engineering managers. I used DOT files or Mermaid to visualize preferences and ballpark solutions. Gather feedback from EMs. If a manager rejects someone, you must rematch with that new preference. It's going to take a few iterations. I’ve had managers want to meet in person to talk about someone before they gave the OK to rotate. Be flexible.
Once the rotations are approved, send them out. You need a surprising amount of lead time on this. If a team is losing someone, it might take a few weeks for them to wrap up work and do a handoff so they can cleanly transfer. A month is about the shortest.
Matching needs to be opaque. Don’t answer why an individual was or was not included in the rotation. The results are the results. Providing details may expose issues between a worker and their manager to others. Respect the privacy of those involved. We said anyone not included in the rotation would get priority next time.
What is expected of people
Cut responsibilities with the old team as much as possible. Treat it like an internship; they aren’t taking classes while working for the new team. It is their full-time job to work with the new manager and team.
Getting commitments upfront from everyone on the expectations of the role. Depending on the scope of teams involved, some people won't be learning skill sets that are new to them. Like when a mobile or frontend engineer joins an Infrastructure team. Without being explicit, a manager might expect a senior engineer to work at that same level. When, in fact, they have no experience in the tools or type of work now required.
Communicate how reviews are affected. The details here are dependent on how involved HR is in the process. At smaller companies, we didn’t involve them at all, and at large publicly traded ones, they were part of every step of the process. I asked for forgiveness and not permission.
When they are minimally involved, we said the manager they rotated to would provide a summary of the individual at the end of the rotation. The original manager would integrate this into their feedback. Everyone agreed that participating at all would be a positive signal.
Ask why people don’t want to be involved. When someone doesn’t want to be part of the program, find out why. They could be making assumptions, or you could have miscommunicated something. Finding that “No” can be more helpful than a fast Yes. Even when their concerns or reasons are valid.
Close it out
Celebrate the successes and deal with the fallout. I sent a review to managers and the people who rotated for feedback on the program—asking about the types of projects they wanted vs. got, where the misses were, and how the process of rotating generally gives solid ways to improve.
Schedule a way for people to share the projects they worked on during the rotation. Similar to interns sharing their work at the end. Its closure for the session allows you to showcase successes to other parts of the company. I hate when this runs long, and I cut people’s mics at two minutes…
There can be fallout that needs to be dealt with. People will ask to stay with the team they rotated to or want to transfer to another team or whatever. The problems became the responsibility of the managers involved, not of the rotate program coordinator. Assist where you can, integrate feedback, and let the standard business processes take over where they need to.
Summary
A good rotation program keeps employees engaged and helps everyone involved. I’ve seen people switch professional direction, develop strong customer-centric mindsets, or no longer left wondering if they wanted to learn CSS after being part of a rotation.
Any program is only as good as the teams involved. Make sure they have the flexibility to adapt things to their needs and that there are minimal surprises for everyone involved along the way.