---
title: Team Rotations
teaser: How we move people between projects.
tags: playbook
author: Dan Croak
published_on: 2010-09-16
---

thoughtbot currently consists of 14 developers and 5 designers. This summer, we
organized into 4 smaller teams. We rotate teams every 2 months.

We started our third rotation this week, a moment which prompted the designers
to create movie posters for their new teams.

[![Autobahn](http://images.thoughtbot.com/ui/autobahn.jpg)](http://images.thoughtbot.com/ui/autobahn.jpg)

The benefit of team rotations to clients is increased quality.

Each person brings something unique with them. Maybe they're quick with
Javascript, have a deep knowledge of Postgres, are known to ruthlessly seek
performance in test and production environments, have a knack for logo design,
or have a Rain Man-like recall of <abbr title="Cascading Style
Sheets">CSS</abbr> selectors.

From the developer perspective, each time we've rotated, I've noticed the new
folks immediately find code that drives them nuts. The existing team had built
up a tolerance to some normally offensive code after seeing it every day.

[![Bowser](http://images.thoughtbot.com/ui/bowsers-castle.jpg)](http://images.thoughtbot.com/ui/bowsers-castle.jpg)

In that way, the rotations keep the designers and developers sharp.

By seeing more projects, we're able to build better pattern recognition. What's
the same on every project? How should
[Suspenders](http://github.com/thoughtbot/suspenders) evolve? What's the boring
stuff that we're doing frequently and can be extracted?

[![Remote Branch](http://images.thoughtbot.com/ui/remote-branch.png)](http://images.thoughtbot.com/ui/remote-branch.png)

When a project continues across a rotation, we try to keep one person on the
team for consistency. We do lots of pair programming right after the rotation.
I've found a nice side benefit of those pairing sessions is I've learned as
much about vim as the application under development.

We manage our sales pipeline so that we don't start new projects right before a
rotation.

Another goal is for teams to work on as few simultaneous projects as possible.
With our previous free-for-all, some people had to work on 3-4 projects a week.
That's too much context switching. With the rotations, it's easier to schedule
fairly and easier to keep the weekly projects down to 1-2 per team.

[![Tres Mosqueteros](http://images.thoughtbot.com/ui/tres-mosqueteros.jpg)](http://images.thoughtbot.com/ui/tres-mosqueteros.jpg)

We think we've introduced a virtuous cycle that benefits clients, makes us
stronger designers and developers, and makes everyone a little happier. We're
only four months in, though, so if you see us around, ask us if it's still
working.
