In defence of open floor plans for engineering
I’m a sworn enemy of doors, and always have been. At Trilogy, my first real job out of school, I refused to be confined to my cubicle and I’d take my laptop to sit with others, creating, in effect, my own personal rotation program. When I realized that this sped up my learning, it turned me into a lifelong door-buster.
For me, it has always been about knocking down barriers to communication. At Celestica, I was always the first person to ask “Why don’t we just walk over and ask someone?” and at Microsoft, where my manager had a closed office, I’d knock on his door 5 to 10 times each day seeking input, asking questions, and gathering feedback.
Did I do this more than was necessary? Perhaps, but I learned a tremendous amount in these unscheduled 1:1’s and enjoyed a great rapport with my managers. Despite my efforts though, their doors were still closed by default and my questions would sometimes go unanswered.
Today, as the world takes a reactionary turn against open office floorplans and articles from The Wall Street Journal to Fortune lambast them, calling for more of the door-driven disconnect that I’ve battled throughout my career, I have a few things to say.
The argument for offices: Getting into flow
Why are open offices, which are used by 70 percent of workplaces worldwide, suddenly under siege? Most argue that it’s about silencing the din. People complain that the noise offsets any collaborative gains and when everyone wears noise-canceling headphones anyway, we might as well have offices and doors.
Others argue that it’s role-based. While sales, marketing, and management might excel in open-offices, it’s hard on engineers who need uninterrupted quietude to get into flow. If you can’t get into flow, you can’t do meaningful coding, or so the theory goes. Yet I’ve discovered quite the opposite over the past ten years: Engineers excel in open offices not in spite of them, but because of them.
But maybe that’s because I’ve always chosen to conduct engineering a little differently.
Programming is a team sport
“If you want to go fast, go alone. If you want to go far, go together.”
— African Proverb
I believe that programming is a team sport and pair programming is the most effective way to deliver high quality software. For those unfamiliar, pair programming is where two engineers sit side-by-side to trade off typing and checking each other’s work. Most people react to this idea with the same initial skepticism: Won’t they write less code?
To which I reply, “Exactly.” There will be less code, but far better understood code. It eliminates much of the time most teams spend on quality assurance and debugging after the fact and gives you more momentum. By seemingly going slower, you actually end up going a lot faster.
By seemingly going slower, you actually end up going a lot faster.
Plus, having two keyboards doesn’t make you go twice as fast. Many people assume that the bottleneck with coding is typing, but the bottleneck is actually at the thought level — it’s at deciding what to code. When two engineers use one keyboard, you have twice the quality of insight and higher overall productivity.
Two engineers also create a self-healing train of thought. The fear that companies have with open floor plans is, of course, train of thought derailment — the idea that it takes 15 to 20 minutes to recover from interruptions. But two engineers can bring each other right back into it. The Venn diagram of them both simultaneously getting stuck is incredibly slim, and the peer pressure (pair pressure?) of working with a teammate keeps them focused.
Pair programming can also tangentially lead to better prioritization, which I can demonstrate with an example:
Let’s say you’re an agile team with two tasks, A and B. B is more important than A. In a traditional team, you can assign one engineer to each and do them simultaneously. In pair programming you’re more often forced to prioritize. In many cases, when B is completed, the need to work on *old* task A gets replaced by a new task B2. By simulating a forced prioritization, you’ll automatically waste less time building the wrong things.
The advantages don’t end there. According to the Harvard Business Review, how you select these pairs has a significant impact on the productivity of the entire office. Researchers found that pairing people with opposite strengths led to a 17 percent increase in efficiency. An average performer placed near a high performer becomes 10 percent more productive.
According to the University of Utah’s department of computer science, pair programming “improves design quality, reduces defects, reduces staffing risk, enhances technical skills, improves team communications and is considered more enjoyable.” Pairs are also perfectly adapted to thrive in the wild savannah of open offices.
Why I think open floor plans increase efficiency
So back to our discussion of open floor plans. In these environments, our paired developers, who quickly snap each other back into flow and better prioritize their time for quality work, still face loud noises. How can they function? They can lean in and participate in that din.
1. Open offices allow for learning through osmosis
In my experience, developers learn through osmosis. They have to be interacting with others. If everyone has their noise-proof headphones on, but are chittering away on team messaging apps, they’re still distracted. All they’ve accomplished is that they’ve decreased the quality of their communication and it drags on longer.
Our brains process real interactions far faster than text. In-person, people can communicate with body language which, if you believe the old studies, accounts for a majority of the message. In our office, engineers stand up and declare, “I have a problem!” and not only do they get answers immediately, but so does the whole team. Everyone who didn’t think to ask the question levels up, and because they’re working in pairs, they get drawn right back into flow.
2. Open offices supercharge innovation
There’s a joke in pair programming that if you have an odd number of team members you can pair the last one with a giant stuffed banana and achieve the some of the same effectiveness. Why? Because merely having to explain yourself — even to a stuffed banana — can help you think through your problem. If you’re paired with a person, all the better, and together you can troubleshoot from different perspectives. Diversity of thought is proven to increase innovation and problem-solving abilities and in my experience, open offices amplify this to turn your entire team into a buzzing neural network.
3. Open offices increase productivity
Closed offices offer people the opportunity to fritter their time away. They’re procrastination sanctuaries, and I should know — I’ve had one. Open offices, on the other hand, permit everyone to see everyone else’s screens and it creates an inherent social pressure to stay on task. If people need to take breaks (and they should, frequently) they should take a real break.
We encourage our people to hang out near the media center, take a nap, or go for a walk and get fresh air. When the day is done, we force them to go home. Our work days are capped from 9 to 6 because I believe well-defined limits help developers focus and allow them to sprint harder. As with any race, you know you can give it your all once you see the finish line. And, according to the CDC and an ever growing body of scientific sleep research, using your brain is like working out a muscle at the gym: You need rest and recovery. Otherwise, you’re just tearing it and never letting it rebuild.
It’s all about the defaults
At the end of the day, it’s important to think about your office space in terms of defaults. Defaults are powerful and whether you choose open, closed, or some sort of hybrid, the message you are sending to your company is that it’s the expected standard.
If everyone has an office, you are closed-off by default. People internalize their complaints, hold onto their questions, and collaborate less fully. Here at Helpful, we’re open by default and paired by default. We can retreat to breakout rooms and we can divide into individuals when we need to, but we’re broadcasting the message that we’re better together and better off communicating. Our mission is to build products that connect people and I can’t think of a better way to embody that than to live it through our office setup.
If, for some bizarre reason, our team ever found ourselves in a closed environment, I hope that I’d have some employee who’d come knocking at my door 5 to 10 times each day. And I hope that as a leader, I’d have the awareness to take the thing off its hinges like Jeff Bezos and have it turned into a table.
You can have your office any way you want it. What’s your default and why?
If you found this post helpful, give it some👏s & share it with your friends!
P.S. Helpful is a new company I’m working on. Check it out here to learn more.