Software Development

10 ways to create the optimum developer environment

How well you accommodate the needs of your developers can make or break their ability to work productively.

Many employers put little thought into how their office environments affect the production and happiness of their employees. While I can't vouch for other professions, I know that the right decisions in the workspace can pay big dividends in keeping workers happy and productive. Here are 10 things to consider when planning workspaces for your development staff.

1: Ergonomic offices

Being a software developer often involves spending hours sitting at a desk staring at a computer, so it is important to have the right ergonomics. A good desk and chair, the proper lighting, and the right computer equipment go a long way towards increasing productivity throughout the day.

2: Quality equipment

Companies love to standardize on inexpensive computer equipment. After all, most computers sit around with idle hard drives and CPUs most of the time and rarely fill up their RAM. Users typically fill up a single screen with a single application and go to work. Developers, on the other hand, need extra horsepower. Hard drives get filled with all sorts of things, and CPUs and memory get pushed hard while working on big projects, especially during testing and compiling. And screen space is at a premium; the more monitors you can put on a desk, the better. You will also possibly need a KVM and additional computers and devices (Macs in a Windows organization, various smartphones and tablets, etc.) for testing purposes.

3: Access to project stakeholders, users, and analysts

A big roadblock for a software development project occurs when a question comes up, but there is no way to get it answered quickly -- or there are so many layers of organization to talk through that the answer makes no sense. You do not need to give your programmers the cell phone number of the customer's CEO, but you do need to make sure that they have the access they need to get their questions answered promptly and accurately without having to go through a pile of middlemen.

4: Ability to adjust the workspace

Not everyone likes the same layout for their seating. A common problem, for example, is having a window or light putting glare on a screen. By allowing your team to adjust their workspace to suit their needs, you are enabling them to be as comfortable and productive as possible during their workday.

5: Privacy by default

It is hard to overestimate the productivity loss to projects because developers are shoved into close quarters. It isn't just that they need space. It's that software development is a job that requires long-term concentration and focus, and things like people having conversations right next to a cubicle can completely ruin that concentration. Obviously, you can't give everyone a soundproof box. But the more privacy people have, the better they can write their code. Yes, "open floor plans" have become a fad. But I have met only a handful of developers who prefer them, and plenty that have big issues with them.

6: Enough space for ad hoc, informal meetings

While people need privacy to work, they also need a place to share information and ideas. For programmers, informal meetings happen all the time. Maybe a question needs to be asked or a specification clarified. If you do not provide a good place for these meetings to happen, they will happen in inconvenient places instead, like the middle of hallways or someplace else that is disruptive. Either provide offices big enough for these meetings to occur or set up a few small conference rooms that do not require reservations.

7: Whiteboards or sketchpads

Talking about code is often a highly visual affair. Many of the developers I have worked with do much better when discussing their projects if they have something to write and draw on. Whiteboards or those large sketchpads are an inexpensive way to make it easier for these programmers to work together.

8: Creature comforts

When you have projects that often require extended work hours, it certainly helps if the workers have access to some things that will help them stay in the office for long stretches. A well-stocked break room with a variety of coffee and tea and snacks (remember to have some healthy options in there!) helps a lot, especially when the alternative is a drive to a gas station or convenience store or just going hungry.

9: IT support

Unfortunately, the needs, goals, and limitations of many IT departments put them at odds with the needs of developers. For example, developers need a wide variety of computers and devices to test applications on. But IT likes to have a few standard configurations, and bringing in devices into the mix that IT hasn't vetted is a risk. Likewise, IT departments frequently require certain settings or applications to work within the system that developers may not be able to live with (like not having local admin rights). It isn't a matter of who is "right" or "wrong." It is simply a problem of totally different needs. Having as much cooperation from the IT department as possible, while still allowing IT to meet its goals of security and cost management, is critical for developers to work efficiently.

10: Respectful work environment

In the last year or so, there has been a lot of talk about "brogrammers" -- a sort of combination frat boys/programmers who feel the need to turn the workplace into a truly awful environment in the name of being hip or fashionable. Well, from the stories I have read, not only are many of these workplaces blatantly illegal, but they are a miserable place to work unless you are "one of the boys." Females and those over the age of 30 are embarrassed if not offended by such places.

Not only do you need to avoid having a "boys club" environment, you need to be tolerant and respectful of a wide variety of people. And the reason is simple (above and beyond the obvious morals and ethics): Programmers come from a wide variety of cultures, backgrounds, and circumstances. If you want to have an environment where work actually gets done, you need to foster an attitude of respect for each other, plain and simple.

What else?

Are there other items you think contribute to a pleasant, productive working environment for developers? How close does your own environment map to this list? Share your thoughts with fellow TechRepublic members.

About

Justin James is the Lead Architect for Conigent.

11 comments
lunchbeast
lunchbeast

...with my first developer job twenty years ago. It's a testament to how little value my current employer places on IT, but I now have none of them, and neither does anybody else (in IT) at my company. And yes, I'm actively job searching.

SpiritualMadMan
SpiritualMadMan

I know this is easy to overlook for commercial developers. But, for those on Government Jobs this is an all caps 2nd comming issue. Access to Developer Web Sites. This is the number one gripe about working on-base! I can't say the number of times I've needed an open source add-in or patch and the site has been blocked. Or, just looking for an answer I haven't solved yet and, you guessed it, the site is blocked. These are good respectable sites I go to at home all the time, too. Government IT support on the network connected computers is virually non-existant. Try to get a second monitor installed. You can "ask" for a site waiver. And, in a year or two you might get a no answer! And, of course your IDE and developer software is illegal on a Network connected machine so you have to work off-line and transfer files back and forth via portable hard drive. Of course, you then have to decrypt what you bring back from your network computer. Of course I should be grateful... Seeing as I am doing what I love without certs or degrees. And, with the economy so bad...

sbjiva
sbjiva

I develop from a home based office which I have equipped over the last 6 years. I have a large Desk & comfy chair and my main tool is a Whiteboard. Using duel view with a 24 Inch LED display and powerful laptop certainly helps my productivity and efficiency. Above all I need peace and quiet to hash out large amounts of code. I can't code in an open plan office its just to distracting.

dimonic
dimonic

Back in school, breaks were an occasion to run, play football (soccer), and generally blow off steam. I would make much use of a small gym, or even a basketball hoop at my workplace (and a place to shower). I often have breakthrough ideas while in the shower after a workout. While I am at it, a place to shower would encourage more cycling to work as well (another thing that gets my creativity juices running).

rakotomandimby
rakotomandimby

Your list is all true for EU citizen. In other countries, where 1 computer price is equal to 1 month wages, the list is shorter: just pay more.

Jeff_D_Programmer
Jeff_D_Programmer

1. Minimize disruption. I am the Sr. Developer for a SMB and I have people walking into my office with no warning about a dozen times a day. They try to be polite by standing there and waiting until I finish my current thought but when your deep in code, a 5 minute question about a totally unrelated subject can add 30-45 minutes to your project! 2. Flexibility in schedules. I have NEVER met a coder who could write/resolve code by a clock. Sure, we all have to follow schedules, and time needs to be controlled, but estimates are just that - estimates! Developing code is an art and a two hour task doesn't start at 9:15 and end at 11:15 on the nose. Each task needs to be brought to a logical stopping point before switching to another. A developer may reach that point early, or may run over. I've worked with too many managers who think developers are making widgets and can crank out code on a timetable stricter than most railroads.

Tony Hopkinson
Tony Hopkinson

the privacy of their own room. In fact I work with a few of 'em. I can just block out my surrounding but others use music as open plan is the only option. That's good list, about the only thing I'd add, which you'd think was a given, would be good software tools.

Slayer_
Slayer_

I only just finally got my own office, for 2 years I have been in a cubicle next to and across from the support people, who are on the phone constantly. Before that, I shared an office with 2 other people. I also just finally got my white board back (now that I have an office). Now if only the support people would stop bugging us...

code_slingerz
code_slingerz

I have worked in such a place. It was truly horrible. There was little or no supervision so it was more like Lord of The Flies than a software shop. Ppl were super competitive to the point were asking a question was seen as weakness. Some went as far as keeping their code in password protected zip files. I mean how messed up is THAT?

JamesRL
JamesRL

My first computer job, in the 80s, had a shower. Cycling to work was great three seasons of the year. It was a great way to clear your head.

Slayer_
Slayer_

There are bicycle paths all the way here, but I am just to unfit.