Reno, NV    +1 (800)0 621-0871

Go back

Business

Cave and Campfire — Our Custom Office Layout for Professional Agile Development & Pair Programming

  |  March 5, 2013

UPDATE July 1, 2013: See the result of our new design: AELOGICA Opens New Office in EcoTower – Bonifacio Global City

Why We Need a New Office

We’ve had a few good quarters here at AELOGICA and have outgrown our cramped 26 sqm “serviced office” where we crammed 4 pair workstations and 4 solo cubbies. We have ten chairs. Yep. It’s crowded. A serviced office is a little like Heroku: Easy to set up, but expensive to scale. We did not want to expand where we were ($/sqm too high!) so I’ve spent a good chunk of the last six months not hiring anyone (well we made an exception for Luis) and looking for a place to go.

The market for office space here that is such that you pretty much have to take a space that is handed over as a “warm shell.” That means it has walls, ceiling tiles, aircon, lights and a cement floor. You have to build it out to suit. There are no cool loft spaces either — just 8 brand new office towers.

Fortunately, our hard work has positioned us to take this critical step. The best part is that this is an opportunity to really try to make an ideal software development environment — or at least as ideal as it can be within our budget.

The good news is we have no CEO or board or Facilities Manager or HR to get in the way. The only constraint is cost and basically we leased the smallest office we could find in a building that would be available for turnover in the first quarter.  That means we get only about 155 square meters of usable space. There will be no ping pong table. So what! Right?

Other Examples (or Counter-examples)

So how do you go about designing a proper office for software development?  I googled some agile office space and nothing really impressed. Our current setup (see below) presents problems when multiple client Skype calls are going at the same time. Let’s take a look at the famous Pivotal Labs:

Pivotal Labs - Pair Programming

Better. But still this is no where I would want to work. I love pairing and I appreciate group energy and a big “open-plan” office may please the bean-counters but it seems to be hostile to the quiet collaboration so essential to our practice.

Our Requirements

Let’s start with our requirements. Our project teams work in sizes of 2 or 4 developers. Others have observed that self-managed agile teams can grow to 6 developers (3 pairs) before the communication and coordination requirements seem to dictate the need for a full-time project manager. If you grow beyond 6, the rule is you should divide into two 4-person teams. According to this scheme, our team rooms should support 4 to 6 developers. This keeps the most high-bandwidth communication within one space and generally on-topic. If you need to know something quickly and another team member has it in his or her head, you need to ask them without disturbing the flow state or work of other teams. A team room accomplishes this. Team rooms also allow us to have all project standups take place around the same time without crosstalk.

We have 9 developers right now, plus Celda and me. We plan to double in size over the next year and we’ll probably hire an admin/office manager. So we need room for 20 and we hope to be able to squeeze 24-26 if need be. If we grow slowly, that’s okay, we’ll be comfortable. If we grow quickly, we’ll need to scout another office in 12-18 months.  Here are some of the other requirements:

  • a private space where I can have conversations and take phone calls
  • several team rooms for the typical project configuration of 2-4 developers
  • a common area where the whole company can gather for standup
  • an information radiator wall where we can display build/system/company/project status
  • a casual area where people can go to check email or where a guest can “camp out” with their laptop
  • a pantry where we can stock snacks and do light food prep, make coffee, etc
  • bench type seating so everyone can eat together
  • a nook where you can go for a private conversation or to stare out the window

I approached a firm that designs and manages these projects and went through two or three design sketches with them before I realised they just didn’t understand what we need. We are not a call center or a BPO (the two most common types of businesses here) — we are not even a typical software development house. We practice pair programming and agile development.  We need to balance collaboration with concentration.  We do not need to cram everyone into a cube farm or an “open plan” concentration nightmare. We do not need to squeeze the space for maximum utilisation.  We are a little tribe of software craftsmen and women. We hire the best and smartest people we can find.  They deserve an appropriate space.

Our Design

In frustration, I cut up one of the proposed layouts and re-arranged it to copy some of the best features of various places I’ve worked over the years.  Below is my interpretation of a “Caves and Campfire” model.

A common pattern is “Cave and Commons” with the idea that programming and pairing happens in the commons while developers retreat to the cubbies or caves around the perimeter of the commons to handle personal work or whatever. I sort of turn this on its head by placing the paring in project-caves placed around the campfire. The campfire is the gathering place and where the information radiator does it’s thing. (I have a theory that we humans have replaced staring into fire with staring at a screen but that’s for another post.) The campfire should be where everyone will gather for company-wide discussion, standups, ceremonies. It is where we can host our community events and invite others into our “living room.”

Notice, the glass curtain wall is along the top.  The 3 team rooms are separated from the main space by tempered glass. This glass doubles as a dry-erase marker surface and post-it note wall.  In the common area we have a wall that will host an information radiator monitor and smart tv so I can skype with the company for standup when I am away.

The 3 team rooms and the common area form a large space supporting information transfer but with the team rooms isolated from distracting noise or chit chat so the teams can focus without feeling cut off from the tribe.  The team rooms also have glass windows between them to increase natural light transfer and to allow a standing person to check if someone is in another room without leaving their pair. The glass starts at a height above eye level so sitting people are not distracted by or even conscious of those opposite them on the other side of the wall.

A stand-up, high table stands between the common area and the pantry for casual laptop-ing and stretching legs.  These are good for intermittent checking of email or even several hours at a time alternating between standing and sitting at a bar-type seat. Sitting here means it’s “probably okay to interrupt me.” You will naturally intercept everyone going to and from the pantry. This is also a great place for a client or guest to camp out.

In a pinch we could sacrifice my executive room to squeeze in two more pairs if needed.  We have an extra “main room” behind reception with a server/datacom shelf.  This could be a conference room or a more isolated pairing area — a skunk works or training room — with access from the executive room.

The pantry features a long bench family-style table (what’s shown is more of a conference table but you get the idea) and a private nook where you can eat alone and stare out the window if you want. We are also debating whether to spring for a shower/changing room at the far end of the pantry to encourage people to exercise or bike to work.

We plan to have our pair workstation tables locally handcrafted from sustainable wood.

All in all I think this design gets us almost everything we want or could hope for at this stage in our growth.  After all we are moving from this:

To this:  http://360.io/jw93hA

It is a bit of a stretch to get all of this done in the next month before we need to vacate our current space.  Wish us luck!

UPDATE: (July 1, 2013) See the result of our new design: AELOGICA Opens New Office in EcoTower – Bonifacio Global City