Change is a regular part of what we do at Rally. Depending on how you count things, I’ve been on between 4 and 8 teams. Here they are. The teams marked with a star are only a slight variation membership-wise from the previous team and contribute to the ambiguity of the numbers: Enemy of the State, Miyagi-Do, Jules Winnfield*, Memento, Memento* (+3 members), Shake Weight, Steel Panther* (Shake Weight -1 member, +4 others), and !pants* (Steel Panther -1, +1).

For everyone on those teams, the name meant (means?) something. I now believe that a team should change names every time it has a fundamental shift in membership or in purpose. By giving a team a name, you give it an identity, a sense of focus, and power over its goals.

Regular reshuffling of teams is what we do. Sometimes, that shuffle is a wholesale reallocation of personnel. Other times, it’s a subtle shift – a minor tweak – a formation shift once the offense is on the field. Virtually every time, relocation is at the discretion of each developer. If I wanted to start doing extensive front-end work next month, there’s a team I could join. People have sought out my team. Others have left. The lifespan of a developer on a team is roughly the same amount of time they think they are learning, having fun, and helping the company by serving that team.

Our organizational structure isn’t the only thing that facilitates shuffling of teams. Our space is awesome. I took some shots of our recent shuffle, but they sucked because they’re backlit. For now, rely on Jeff Smith’s post on our new space for pics of why it’s so flexible.

As Jeff stated in the post I linked above, our space is amazingly configurable for a few reasons. Most importantly, there are no permanent interior walls and both power and network are run along the ceiling. The overhead power grid has units that provide power and can be slid along the rails or detached and relocated entirely. Network drops run along the same channels.

Physical proximity is an important part of our team structure. We do have valuable contributors who work remote, but when team members are in the same office, they are expected to be near each other. I’ve never inhabited a space that is more conducive to moving team members near one another than the one we have now. If our setup is unsatisfactory today, we can change it and be up and working again in an hour. Try moving cubicle walls in an hour. Good f***ing luck if you have an office.

The end result of our physical space and our team culture is a highly reconfigurable work environment that facilitates each team’s way of working. One hundred percent pairing? We’ve got teams (and setups) for that. A more even mix of pairing and individual work? We’ve got teams and setups for that. In both cases, our space can accommodate.

On a side note, take a look at former Rally-er Rod Hilton’s post on pairing stations for an example of our pairing setups. The advanced levels of that post are things we do here. Despite the fact that I troll his FaceBook posts about how awesome school is, I do have to recommend Rod’s writing. Especially when he’s speaking about how awesome Rally is (even indirectly) :)