An article, describing an interview with Joel Spolsky (CEO of StackOverflow) at the Geekwire Summit, states that developers aren’t looking for ping pong tables, lounges, fire pits and chocolate fountains as it decreases the overall productivity.
In the article Joel describes the needs for developers to have a closed office, where they can tune out and concentrate, go to a discussion board to ask and seek questions. Obviously this stands very much aligned to Joel’s company, StackOverflow (SO), which is an often frequented destination for developers who needs answers to technical problems. I’m not going to go into my own personal opinion of SO or the value it has (or hasn’t where that’s the case), but more to look at what the core message of the article is about. Namely office environments.
Office environments and Developer Productivity
We all know that crunch-time is a stressful part of our jobs. When we’re almost there and deadlines are looming. We need to focus on delivery and we need to get things done as fast as possible.
This means uninterrupted time with your code and external distraction can seriously hinder concentration and drop productivity. We (read: developers) handle that in multiple ways. We work from home; we wear headphones to block out ambient noise; we close the door; Obviously in some environments that’s not possible.
In my experience, it takes approximately 15 minutes to get into things and reach your “Zen” zone. This is where you’re focused solely on writing the best code you can. Having a constant flow of people around you moving about is a distraction and can very well mean that you never reach that zone throughout your entire day. That’s bad of course. But we also have other distractions. Colleagues and team members asking questions. Emails inbound that needs your attention then and there. Your phone ringing or messenger application popping up. None of these distractions has anything to do with having a hip environment with said ping pong tables. They’re part of your life to some extent.
So for all of the focus on your environment not containing ping pong tables, breakout lounges and so forth, there’re many more ways to distract us than just that. We need uninterrupted time to focus – that’s obvious.
Does having a ping pong table in your office distract you from your work? Ok, if you go there instead of writing code or if team mates are loud and disruptive when playing, then yeah it does indeed bring a level of distraction to your job.
We can all agree that we need to concentrate on getting the job done and the environment can definitely bring that distraction.
Is ping pong bad?
Earlier I mention the ping pong tables and can agree that it brings distractions to your environment. But it also brings something else to your environment that a sterile, closed environment doesn’t: Time at the office, with friends and colleagues, that helps bond traditionally introverted people together. That’s also very important. We shouldn’t forget that developers achieve very little on their own. Most projects of any substance are a collaboration between many developers, all working on specific tasks. When we work as a team we are likely to be far more productive than when we work in isolation. That at least is my view as I’m an extremely extraverted developer. I personally need interaction with my peers and colleagues; I don’t need it all the time but it energises me a lot more than sitting in a closed office for 8hrs (read: as long as it takes) a day. My productivity drops throughout the day and i counter that with some social engagements. Yes, it’s time where I don’t write code but it helps me recharge my batteries.
On long hauls – projects lasting months, if not years, the long term effect of having something to take your mind off things are extremely important. We cannot thrive positively if all we have is stress and 100% concentration. We are humans and need to engage with other people. The ping pong table can offset some of that stress.
Ok, I’m focusing on the ping pong tables a lot; It could literally be anything. Air hockey, pool tables, arcade machines, dart boards and any other activity that can offset and counter build up stress in people. I’m thinking long term, which I don’t think Joel is in his views from the article. I’ve never seen, in my nearly two decades in this industry, that staff retention wasn’t a big problem for companies. Of course it is. Losing talent is a major issue and not just for software companies. If you’re just looking at developers as a productivity figure, you’re likely going to be losing some along the way. Work environments are extremely important for retaining your staff and not all developers are the glass wearing nerds that just run on caffeine (ok, we do), pizza and long nights at the office crunching code for 20hrs a day. As a matter of fact, those are the rarest type of developers today. Programming used to be viewed as magic and attracted only the most introverted personalities. Today not so much.
Finding a balance is far more important long term
I think it’s possible to get the best of both worlds. Yes, you may not attract talented developers purely because you have ping pong tables. Of course not and with that I agree 100% with Joel. But also just offering them the ability to work from home and closing the door to your office isn’t going to make anybody excited.
You need to balance both worlds and we as people aren’t just black and white. You can have both. Don’t place the ping pong table in the middle of your developers cubicles, look further in your office layout. Have the break out rooms built in a basement, or another building if you have the cash to build a campus. Give developers the best of both worlds so that it’s possible to have your cake and eat it.
I personally don’t believe that developer productivity can be measured in how many lines of code they have written. I think that’s a very flat view of what a developer do and personally don’t see that productivity is dictated purely by the environment you are in. Of course, Joel isn’t being all that black and white either and he raises some very good points during his talk at the Geekwire Summit. He compares the rates Facebook pays over other tech companies. They pay more and he contributes this to the fact that Facebook can’t attract developers due to the work environment. I think it’s a little bit more complicated than that to be honest.
The strategy for attracting a developer is very different to that of retaining one.
Mostly a developer want to work on cool projects, with the newest technologies. I can understand that. I wish for a lot of things in my career to have been different, but am now also realistic enough to understand that not all projects are the most exciting in the world. Sometimes you have to eat a sour apple and that’s really just part of life. Much like paying taxes and servicing your car.
The point of finding a balance with what you want, need and can get becomes far more important the longer you stay in the industry. Longevity is incredibly important.
As an IT consultant (read: developer mercenary) I understand that I cannot rely on my client and projects to give me all I want in life. Of course, I’m often far more transitional than a traditional in-house developer and some, if not all, of the rules doesn’t apply to me personally. But I’ve been doing this for long enough to understand what to focus on that’s important to me.
If I have to choose of a perfect environment for me than It would clearly be that I had the office door to close when necessary, that I could work from home when I wanted and that I worked on the newest platforms available. I would also want that ping pong table available to me and my colleagues when I needed a break. Work isn’t always just about work. Yeah, cake..eat it.
But why can’t I have both – doesn’t seem that hard to me to be honest and it doesn’t have to be that complicated.
Article: Just shut up and let your devs concentrate, advises Stack Overflow CEO Joel Spolsky – http://www.geekwire.com/2016/just-shut-let-devs-concentrate-programming-expert-advises/