Role rotation tutorial

Laura Barcziová
5 min readJan 17, 2024

--

In recent months, with my colleague and teammate Tomas Tomecek, we wrote a series of posts on how we manage shared responsibilities by utilising role rotation in our team. If you haven’t read them yet, here they are:

We have received a lot of great feedback and questions, but one of them kept popping up. “How do we actually start with this rotation thing?” Good news — that’s exactly what this tutorial is about! So let’s break it down into 7 steps.

1. Think

Let’s be honest: this is the least exciting step. However, you should definitely not underestimate its importance.

Trust us, a bit of thinking can prevent hours of wasted time and frustration.

So before jumping right into something that may not even be a good fit for you, please ask these questions first:

  • Do we have repetitive tasks in our team?
  • If there is a newcomer on the team, do we have sufficient documentation that we can point them to so that they can take up any task?
  • Is there a responsibility that only a handful of people have?
  • Are people willing to learn from each other?
  • If one person goes on vacation for a month, will others be lost in covering for them?

Read on if you answered yes, mostly.

2. Write down tasks

Welcome to the first practical step! It seems you have a bunch of periodic tasks in your project. Let’s write them down! Here are a few examples:

  • You should pay attention to questions and discussion in channels #foo-bar and #bar-baz on Slack. Questions from outside of our team should be answered within an hour. You are welcome to tag experts from the team if you don’t know the answer.
  • Create a new release of project foo. Follow the instructions in [link].
  • Watch alerts from the monitoring. The list of links follows:
    - Monitoring tool 1
    - Monitoring tool 2
  • Attend meetings X, Y and Z. You will represent our team there, bring relevant feedback back to the team.
  • You are in charge of writing the status report XYZ. It needs to be delivered via email to foo@example.com by Friday, 2PM.

3. Group the tasks

Now the creative part: we need to group the tasks into roles (or responsibilities).

It’s critical to have a good balance: you don’t want a role that is too hard or demanding because your team members will resent it. The tasks should also be related to each other so that the role covers ideally just one area. The number of roles within a team should be proportionate to the team size so that it doesn’t happen that you end up with a team of 6 people and 10 roles. Based on our experience, an optimal scenario is to have a number of roles that is equal to or a little bit less than the total number of team members.

Here’s a list of solid roles:

  • Interaction with community.
  • Interaction with customers.
  • Leading internal meetings.
  • Representing the team on external meetings.
  • Managing new deployment.
  • Watching alerts and monitoring.
  • Happiness manager: bring joy to the team.

4. Define the process

Hurray, we can move forward and define our rotating roles!

Here are the main parameters to set so this process can work for all team members:

  • Length of one cycle: one week is great, two weeks are fine too, a month can be interesting.
  • When exactly the rotation happens: Monday 8:00, Friday 4PM.
  • How do you handle weekends? We don’t work over the weekends 😎 A different solution: weekend could be a dedicated role!
  • Who makes the rotation? The manager, team lead, one of the roles, a bot.
  • How does the rotation happen? It’s best to have a deterministic algorithm because it’s predictable and folks know up front what they’ll get in the next rotation.
  • Where are the roles defined: Jira cards, GitHub project, Confluence, intranet, wiki…

Please make sure that everyone on the team agrees to the process. Once they do, let’s go for our first rotation!

Example of a role definition

5. Role rotation in action #1

Now that you’ve identified and grouped tasks, defined your roles and agreed on the details, it’s time to start your first round of role rotation! It is easy — just assign team members to the roles. It’s up to your definition of the rotating role process how the assignment happens. This is like a practice round, giving everyone a chance to try out different tasks. Be supportive during this phase and help each other, especially if someone is tackling a task for the first time. You can ask on standup how’s everyone doing in their role.

And make sure to ask for feedback from your team. Their input is crucial for refining the role rotation in the upcoming rounds.

6. Automation (optional)

To make the role rotation even more efficient, you can consider incorporating automation for managing the process. Initially, it’s fine to do it manually, it should be just a few clicks. But over time, it’s amazing to have it automated so you can forget about the manual steps.

You can get inspired by our team — we have a simple script that is scheduled to run each Friday. This simply rotates the roles and assigns them to the team members based on the list of GitHub accounts. While this step is optional, it can significantly ease the process.

GitHub action running the script that rotates the roles used in our team

7. Evolve

Implementing role rotation is not a one-time action, it is actually an ongoing journey. Each cycle can provide valuable insights for refining and optimizing the process. Encourage your team members to share their experiences and suggest improvements! You can utilise e.g. retrospective meetings for these discussions.

Also, the team’s needs might change too — new tasks may show up, and some could fade away. Be open to this kind of change as well.

Example of an adjustment of a role

By consistently iterating and evolving, you can create a dynamic work environment that promotes individual growth and overall team success!

About authors

This post was written in collaboration with Tomas Tomecek. Tomas and I both work in the same team at Red Hat and share passion about open-source.

--

--