You might be surprised of what is the perfect office for a geek
A good software developer is, at one level or another, a computer geek. And while they might seem normal persons on the outside, if they are truly software developers, they have inside a special way to see the world, and a special relationship to work.
You have to understand that most of us have a relationship with computers that differs vastly from mundane people. We need to understand what goes on inside, we need to understand how it works, we’ve got to build stuff ourselves, we need to solve puzzles.
Good software developers consider themselves like artists. They are going to stare in awe at a beautiful piece of code as if it was a Van Gogh. They are going to work on a meaningless (to you) challenge, just because they have this drive inside to understand, make better, weave their own magic. They have an imperious drive to create things.
You have to understand that if they didn’t work for you, they would probably work on the same kind of projects at home anyway. In fact, most do.
And the key word is here: Home. We all started coding in our basement/attic/bedroom. And this is the place we work best.
A story about a poor office
I have often seen attempts of the top management to reorganize office space. In one of my companies, my team had built a little grotto for itself. We were sixty in a big open space, but the team rearranged shelves, tables, drawers, everything they could, to make a private space, carefully isolated from the outside world.
The top management didn’t understand why it was important, and felt we were cutting ourselves from the rest of the open space. It was bad to cooperation and communication between teams. Hence, our nice little shelter was ripped apart, and all the space merged, in order to promote cooperation, communication and synergy between the teams. Imagine a big open space with no walls, no cubicles, only grapes of desks.
The result was a drop in motivation, in sense of belonging, and there was no gain in productivity or communication whatsoever. On the opposite, the team felt like it was now working in a factory. And this is BAD.
In fact, there even was a drop of communication, because the environment got so loud that people stopped talking to each other just to keep their sanity.
So what are the characteristics of a good office for a geek?
The key is to provide your people with the best office space in their frame of mind, not yours.
You want them to feel at home, indeed better than at home, so that they don’t leave work a 5pm to work on their own project in their lair.
Let me give you a few hints:
- Silence. When not playing Quake, these guys need to be able focus. And you'd be amazed how focused a developer can get.
- Gadgets to play with.
- Good hardware, as good as their home computers.
- Food and the ability to eat at their desk.
- A good sound system if they want to play music.
- The ability to wreak havoc in the office with Nerf Guns when the pressure builds up too much without disturbing anyone.
- A private space to enhance the sense of belonging to a "special unit".
Ideally, there should be no more than 2 or 3 persons in an office. Ten is a maximum.
Build them a lair they feel comfortable in. They won’t leave it anytime soon. And if they have to climb stairs to meet up with another team, so be it. It will do them good to do some exercise and get them some fresh hair anyway.
Anecdote: don't step into a developer's lair
A friend of mine recently had the visit of a marketing guy in his office. And his office is the definition of a lair. Curtains closed, dim light, computer parts everywhere. The first thing the marketing guy said was: "How can you work in a space like this?", and he opened the curtains. From what I’ve been told, my friend nearly threw him away in rage.
How dare you tell a developer how his office is supposed to be? He knows better than you, thank you very much! He has probably been coding since he is twelve, and has had time to refine how his office in order to maximize his productivity.
Conclusion and warning
All this said, I trust you not to put them in the basement. This is not what I mean with this post. But you have to understand the frame of mind of your people if you want to put them in the best work condition. Build them a place where they want to spend time.
And, btw, promoting inter-team communication is your job. You won't just solve it by breaking holes into walls.