Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've been tasked with creating a fun and relaxing environment, one thing I know that I want is ergonomic mice and keyboards, others have suggested exercise balls and bands.

What is it that every programmer needs while working? What might not be necessary but would be nice to have anyway?

Note: this question was asked previously, but has been recommended to be posted here. See this link for the previous responses: http://stackoverflow.com/questions/3911911/stuff-every-programmer-needs-while-working-closed

share

locked by Yannis Rizos Mar 13 '12 at 20:41

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

3  
Wow what company is that, treat there employees so well! :) Wish I am able to join such a company too! –  Jiew Meng Oct 13 '10 at 8:04
38  
Why don't you ask your developers what they want? –  Thomas Stock Oct 13 '10 at 11:54
7  
Conjugal visits –  Greg Nov 4 '10 at 0:29
1  
Nice salary!!!! –  Amir Rezaei Nov 18 '10 at 10:50
1  
Something that may not have been mentioned - good temperature/humidity/air quality control and nice bathrooms. I, for instance, get more hungry while working during hot summers than cold winters, because the temperature inside is negatively correlated to that of outside. Ideally the correlation should be slightly positive, but still be close to zero. –  Job Dec 12 '10 at 15:49
show 5 more comments

90 Answers

A sound-proof office.

share
show 1 more comment

Self Discipline

Like it or not, we're not all Pablo Picasos or Walt Whitmans who can code only if and when the muse strikes us.

Most programmers have likely already discovered they're asked to code things they're not personally enthused about all the time. You also need to find a way to reach inside yourself and pull out good code even when the mood is wrong.

share
add comment

Choice

While I think your motives are good, I would recommend not deciding on an ergonomic keyboard and mouse, dual monitors, etc. One of the things that motivates good people is autonomy. I would look at getting them "the best" as much defined by the individuals as possible. This can easily be accomplished by giving people a budget and allowing them to spend it as they see fit.

While the team needs to agree on some things, common source control, open concept or private offices, there are plenty of things where there no advantage to everyone having the same thing. If someone want's a different chair and they're comparable in price, why not?

share
show 1 more comment

A decent chair. (If you can afford it, a Herman Miller Mirra is absolutely wonderful for someone sitting in a chair for many hours a day.)

share
add comment

A change room with a good shower, and somewhere to store your stuff.

Going for a run in the day or riding to work make the day so much better, except if you stink for the rest of the day. Plus, it enables people who might not bother getting outside the chance to do so.

share
add comment

supervisor/manager

  • who cares about you as a person
  • who encourages laughter
share
add comment

Workstation OS freedom

If you're an open source shop, let your developers choose between Windows, Mac OS X, or their favorite flavor of Linux for their workstation.

share
4  
+1 because this is so true and I wish so much I could migrate my work-environment to Linux (I'm writing .NET Software for Windows...go figure). –  Bobby Oct 18 '10 at 22:30
add comment

Ergonomic keyboard trays

If you're going to be typing for most of the day, RSI will hit you at some point in your career. These help relieve the stress.

share
show 6 more comments

Mix Up the Workweek by Setting Your Own "20-Percent Time"

Many large companies have policies that allow employees to spend some of their time working on their own projects. These programs are often used to entice high-caliber job applicants, as well as encourage innovation. For example, Google has what it calls “20-Percent Time”, where its employees spend one day each workweek on project they’re passionate about.

Why?

  • Innovation and creativity
  • Exploration
  • Opportunity
  • Motivation
share
show 1 more comment

PC componenets:

  • High resolution and/or wide screen monitor having resolution at least 1680x1050, diagonally at least 19". Technology: LCD or higher, having response time < 10 ms. Good color reproduction and wide viewing angle are also important (thanks to Billy).
  • Processor should be Core 2 Duo or higher.
  • RAM should be 2 GB or higher.
  • Fast (>= 7200 RPM), large (>= 320 GB) hard disk. If possible, employ SSD.
  • A set of exotic keyboard and mouse, possibly wireless.

Other:

  • Large enough desk space.
  • Free beverages.
share
4  
I don't think response time should matter for programming -- you're not playing games on a programming system, and that's about all response time buys you. Color reproduction and viewing angle are much more important... –  Billy ONeal Oct 12 '10 at 21:20
show 12 more comments

Virtual Machine Software!

Depending on what you're developing you might also want some virtual machine software like VMWare or Parallels. For instance if you develop websites and do so on a Mac there is no way to run Internet Explorer on a Mac anymore. You either have to reboot into Bootcamp, which is a huge waste of time, or you can have a tiny VM running with Windows in it that you can use to test IE. Some people claim to use WineBottler, an API wrapper, to run IE but it never worked for me and the moment IE gets an update the wine bottle breaks. It's easier just to have a TinyXP distro in a VM.

Of course you could spend a couple grand on a second computer or have a test machine set up with Windows but that's a huge pain in the rump. When we did that someone was always breaking it and then you couldn't test. Using a VM made testing instantaneous and put the power back in the programmers' hands.

share
show 2 more comments
  • A massage chair.

enter image description here

  • A USB toaster.

enter image description here

  • Wet tissues.

enter image description here

  • A trash can.

enter image description here

  • A foot rest.

enter image description here

  • and many others.

EDIT: Among other tools, I most need a chair like below.

enter image description here

share
add comment

The best thing you could probably do, however I am unclear of your budget is get everyone maximum space and privacy (However these don't go well together). With this in place, programmers can create their own comfortable work environment

share
1  
+1. I actually really like this one. An empty office and a budget would really motivate me to accept a job offer from a company. –  Stargazer712 Oct 14 '10 at 19:18
add comment

A punching bag

Great way to blow off some steam.

share
show 1 more comment

Headphones + white noise generator

I either use the one at SimplyNoise, or a free iPhone app called White Noise Lite

share
add comment

A really good text editor and knowledge of its key bindings.

share
add comment

A Phone!

Why hasn't this been said yet? I need a phone to communicate with my colleagues, much easier than e-mailing them sometimes.

(Off course, my phone has a log-out/turn-off button on it so I don't get disturbed when I want to.)

share
2  
In the old days we just used to take the handset off the hook. –  Martin Brown Oct 14 '10 at 15:29
show 2 more comments

Windows that you can open.

Not the software kind. The wood/metal frames with glass you look through to see the outside world.

I hate being completely enclosed in a sterile office. I've been a dual-monitors guy since the 1990's, and I live in Seattle, but I'd give up free coffee and half of my display area to have fresh air in the summer.

share
add comment

a computer, a mouse, a keyboard, and a monitor, a REALLY nice chair. oh, and google.

share
show 1 more comment

What I like is:
A super fast computer.
A large enough monitor. (Debugging in a 17' is horrible).
Super ergonomic chair.
A private room.
Talks via chat or emails only for most of the part.
Quality headphone
Water bottle with fresh lukewarm water.
Calm atmosphere.
A sofa to lie down.
A locker to keep personal things
A book (to scribble some thoughts).
Use which OS, IDE etc (left to the programmer).
Fast internet connection with no restriction (ok adult contents can be restricted. Nothing else.)
I need good friends and fellow programmers of preferably same age.
A girl to flirt with may be ideal since life is so boring. And programmers hardly have got any girl friends. (hah! just kidding)
A free time where we can pursue any hobby that we like. Food available locally. Needn't go out of the building to have one.

share
show 3 more comments

Good enough colleagues.

I'm in a private game programming school right now, and obviously there are not enough clever people in my class, unlike the one of the same year of the last year.

By clever enough I mean maturity, interests, programming experience and self-motivation to solve a problem by his own self rather than asking other student rather than the teacher.

share
add comment
  • Quiet office with large windows
  • Good ergonomic hardware
share
add comment

Supplement and Multivitamin ....

share
add comment
  1. Other beverages (hot water for tea, fridge for cold drinks). Believe it or not, we're not all coffee nuts.
  2. Customizable workspace: coders have, if nothing else, strong opinions about how we code. I often walk off with a fountain pen and notebook to start coding (often outside, on the floor, or in other strange places). The more control coders have over our process, the more productive we can be.
  3. Business processes, etc. that allow us to customize our soft tools as we do our workspace: i.e. don't use proprietary protocols or formats that force us to all use the same client apps.
  4. Work/life balance: despite popular opinion, programmers may have lives. Some of us have significant others and/or children. Not only is it hard to attract and keep great coders if you work them 60h/week, but the ones you do keep will often be too burnt out to be productive.
  5. Work/learning/community balance: I think someone already covered this, but coders need chances to grow their skills and network with coders outside their office bubble in order to stay at the top of their game. This is especially true of coders working primarily on open-source products. A few hours/week of community coding, and a conference or two a year can make a dramatic difference in your coder's ability and productivity, as well as your company's clout with other programmers, some of whom you might want to hire.
share
add comment

This may sound ridiculous, but a music room for musically-inclined developers stocked with relatively inexpensive instruments and modest amplifiers.

While working remotely at home, there's nothing better at keeping my brain actively thinking about solutions than practicing my guitar.

share
add comment

I prefer two monitors,Quiet office, good machine.

share
add comment

Easy access to refreshments, for example a coffee pot in the room (if that's your preference).

There's nothing worse than grabbing a quick coffee before embarking on the next section of code, and being ambushed by users with support issues or managers who want "a quick chat" (or worse, vica versa).

share
add comment

A game room where he/she would not be disturb while is cleaning hes/her mind.

share
add comment

Quiet.

Low light.

A steady and never-ending supply of soda, or other caffeinated beverage of choice, never more than an arms-length away.

A computer fast enough that you don't leave the zone while waiting for a compiler or debugger to finish. Obviously for larger projects this becomes difficult, but ideally I never ever wait on the computer.

share
add comment

A window manager with multiple workspaces and a terminal-based window manager such as GNU screen. Multitasking can be very difficult without an organization system.

share
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.