Skip to content
December 19, 2006 / Bob Black

Leave Me Alone…

…and let me code.

Joel Spolsky once wrote on the 12 points that make a great software development team. If a team meets all of these criteria, chances are the developers on that team will be pretty happy.

But only tech-savvy folk read Joel’s blog. And if you work in IT (or hey, most places), there’s a fairly good chance you’ll end up working for someone that has little to no previous software developer experience, and therefore doesn’t identify well with software developers. I’ve been down this road multiple times, and each trip was largely a repeat of the previous one.

This post is for those managers who want to keep their developers content and productive, but are not quite sure how to go about it because, as we all know, developers are so mysterious. No no no, scratch that. We’re not mysterious at all, it’s the process of creating software that’s mysterious. Staring at a screen all day is way different than working a jack-hammer on a street corner. How is a manager to tell if their developers are actually getting work done? Well, that is a question lots of people are still trying to solve, but this post is about keeping developers happy, not gathering metrics.

But hey, let’s start off with productivity. Productive developers are happy developers, or so I’ve heard. Here’s my thoughts on how to keep your developers happy, and therefore productive.

All software developers know about the zone, that mysterious place of intense concentration that produces hundreds of lines of code and makes us wonder where the time went when we “awaken”. Several times I’ve coded right through lunch and not realized it until almost 5:00 in the afternoon. The zone is good. But it takes at least 30 minutes to get into the zone. To make sure your developers can get into (and stay) in the zone, there should be…

a) No interruptions. Interruptions should be kept to an absolute minimum, or if possible entirely eliminated. It’s hard to get into the zone when you know you have a meeting coming up in an hour. Granted, this is my perfect world fantasy, and there are still instances where interruptions can’t be helped (for example, when an angry client is upset), but minimal interruptions is still the ideal.

b) No task switching. Having a manager call or email every hour or so with a new emergency is the atom-bomb of counter-productivity. If you have that many support emergencies, something’s big time wrong with your development process, or the way developers are used in your organization. I once worked in an organization where developers fulfilled a part-time (sometimes full-time) role as application support personnel, while simultaneously carrying on normal development activities, which didn’t work out so well as far as productivity went. This should be a no-brainer, specifically if you’re interested in gathering any sort of accurate software development metrics.

c) Quiet working conditions. The absolute best working conditions I ever had were when I had my own, private office, with a door. The worst conditions were when I was right next to Human Resources and got to hear them interviewing candidates, arranging blood drives, and taking phone calls about employee benefits all day. Oh yeah, sometimes they would discuss their sex lives too… loudly and in the hallway, which I have to say was interesting to listen to but didn’t help me write more code.

I also once sat next to a gentleman coder that would take a few hours out of his day to arrange dates with women he had met on the Internet. That was interesting as well, but likewise didn’t help my productivity.

Quiet working conditions are important because developers need to concentrate. Not quiet as in: like the baboon cage at the zoo, but quiet as in: like the library.

Obviously this post isn’t about successful project or program management, it’s about environment management. Software Development takes a lot of time and a lot of thought, and so an environment should be created that gives developers a lot of quiet time to think. In a nutshell, I guess you could say Leave Me Alone is the key to developer productivity, even more so than cool toys like multiple monitors and super-duper PCs.

Give it a try and see how much more productive your developers are.

Leave us alone, and let us code. 


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: