Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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:


locked by Yannis 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.

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
Why don't you ask your developers what they want? – Thomas Stock Oct 13 '10 at 11:54
Conjugal visits – Greg Nov 4 '10 at 0:29
Nice salary!!!! – Amir Rezaei Nov 18 '10 at 10:50
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

90 Answers 90

A working brain is what you need the most.

Everything else depends upon it

  • 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


An outdoor terrace with comfortable chairs, power outlets and a wifi access.


Colorful Post-It notes. Simple, versatile, and inexpensive. I use them for everything. To do, ideas, grouping, brainstorming, learning, etc.

  1. Silence.
  2. Silence.
  3. Silence.
  4. A flat keyboard + any number of gadgets wanted by the programmer (and this varies).
  5. Own office.
  6. Freedom from ridiculous inquiries by non-tech staff, including some clueless (technology-wise) CEOs.
  7. Access to educational resources, like books.
  8. Headphones and a large share with selection of great music.
  9. Free food is appreciated, though not necessarily a major plus.
  10. Ability to work with cool technologies, whether it's just the cutting edge release of a framework, or implementing a fuzzy controller for sorting numbers (I know this is a very dumb example, it's here for illustration purposes).
  11. Silence.
  12. A no-noise environment
  13. Coworkers who do not speak
  14. Call-out-only phone
  15. Quiet working environment.
You forgot to mention silence, but +1 anyway. ;) – Adam Lear Oct 12 '10 at 19:33
@Ann - right, let me stress the importance of silence :D – Jas Oct 12 '10 at 19:47
How about a trap door that is keyed to activate by voice recognition of the words "Do you have a sec?" – JohnFx Oct 13 '10 at 4:32
@JohnFx, how about a trap door activated by human voice alone? :D – Jas Oct 13 '10 at 10:18
I like a noisy chaotic environment. Silence makes me want to kill myself I know I'm on my own on this one. – rerun Oct 16 '10 at 2:09

No telephones. Ok, a compromise: have a room set aside for phone calls.


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.


The possibility to work from home!


May be someone has already said it, but there should be a fortress of solitude and if that is not feasible atleast a corner of solitude.


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.


  • Innovation and creativity
  • Exploration
  • Opportunity
  • Motivation

In decreasing order of importance.

  • Ability to choose own rig/chair
  • Ability to choose own software, withing reason IDE etc
  • Plenty of Tea/Coffee and Water (very important)
  • No stupid internet policies (no streaming etc)
  • Time to work on own projects
  • A fast Computer

  • A good internet connection( can't see that loading sign for too long )

  • Liberty to wear what I want ( ofcourse in a limit )

That much would be sufficient :)


A Hardware clock


Well from my experience so far I think the following things are absolutely vital:

  • Powerful development machine
  • Dual monitors (at least 22" or 24")
  • Decent chair
  • Unfiltered internet (I don't know how many useful sites I've seen blocked by WebSense)
  • The ability to decorate/furnish your workspace (it's amazing how much this can help you be comfortable/at east)
  • Good support servers for version control, wiki, backup, testing with other applications if your solution stack includes several, etc.
  • Lighting that doesn't make you feel like your on a supermarket floor.
  • Some nice big green plants
  • High performance pcs, Dual 22" LCD screens
  • A developer wiki
  • Sectional dividers so everyone can have their little privacy and not look at each other all day. Avoid cubicles though... there still has to be an interaction environment.
  • Ample workspace
  • Game room witha pool table/Ping Pong table, nice tv, PS3/XBox/Wii with some multiplayer games.
  • A nice kitchen
  • Balanced snack/drink machine that caters to healthy and non healthy eaters.
  • Nice outside area that is cool in summer where people can sit and relax and eat.

The work is the most important aspect. You can have all these things but still feel like your stuck in a terrible job. Work ahs to feel like fun, and the fun stuff has to be a bonus.


A Water Cooler

I don't have one and I bring two water bottles with me every day.

Many other answers have covered things like dual monitors and recreation areas (music and the like).


Some flexibility in hours

Not everyone is most productive at the same time of day


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.



BTW, dual monitors are overrated.

  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.

For me a gym. I'm a physical guy and I know a lot of programmers are not, but I need to go and work out or i'm just not as productive. It doesn't have to be much but a place where you can do pull ups or sit ups a chin up bar and a punching bag. however I would do this after you have 2 monitors and a place where ideas are debated but those have already been mentioned.


Personally, I always have Sopranos episodes running in the background or on the screen beside me, its always great when you hit a road block to just tune in for a few minutes to clear your head with some Paulie Walnuts!


A Model M keyboard.

I hate those loud and noisy keyboards. I prefer modern, flat and close to noiseless keyboards, because I can't stand anymore to hear that noise for more then 8 hours a day. – Bobby Oct 18 '10 at 22:33

Right to use his own methods and allowed to do new experiment rather then using same old methods and sticking to the old rules. and of-course Light instrumental Music


Fast (i.e. 10000+rpm) disks!

Nothing frustrates me more than waiting for I/O, where I find my computer can't keep up with my thinking.


Color laser printer (can be shared, but should be no more than 20' or so from one's desk).


Memory upgrade

because sometimes the model I'm building in my head just won't fit.

  1. Dual Monitors (I got that, yay me.)
  2. Access to newsgroups (me no have it:/)
  3. Free coffee (I got that, too, yay me.)
  4. Blackboard.
  5. One or more bookshelves.
  6. Laptop.
  7. In-house training on software engineering processes, tools, etc.
  8. Ability to create your own "helper" tools (if they help you get the job done) in any language of your linking (which is different from using any language outside the official ones for developing the main products you are getting paid for.)
  9. Part-time student assistance.

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