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

90 Answers 90

Dual monitors

share
67  
@this.Daniel: "Need" and "Really really helpful" are two similar things. I'm sure you could mow a lawn with scissors, but a mower is really helpful. –  Josh K Oct 12 '10 at 16:02
22  
@ this.Daniel: I'm almost willing to say it is a must if you want to be productive. –  ysolik Oct 12 '10 at 16:02
15  
I've never understood the push for multiple monitors for programmers. Maybe it's just me, or maybe it is because I have a nice large primary monitor, who knows? I'd suggest that the monitor setup is very important though and perhaps a better answer would be to provide some flexibility in display options to the preference of the developer. –  JohnFx Oct 12 '10 at 16:10
25  
I'm trying to get my company to go to 3. –  Kevin D Oct 12 '10 at 16:10
14  
One advantage (for most Windows programmers at least) of dual monitors over big singles is the lack of really excellent window managers. On *Nix, you can break all your toolbars and windows up and scatter them, letting the manager put it together pleasingly for you. On Windows, having an extra monitor is like having a neatly segregate design space so you can have two "full screen" apps running at once and get full use from both. –  CodexArcanum Oct 12 '10 at 19:00

Coffee Machine

share
4  
I don't think it matters as long as you have access to freshly brewed coffee :) –  ysolik Oct 12 '10 at 16:04
17  
Coffee machine on the desk is a bad thing. I speak as someone who spent a summer in a windowless two-person cubicle with a coffee machine and an inexhaustible supply of cream & sugar at arm's length. That was when I learned what waking upon the weekend with caffeine withdrawal was like. –  khedron Oct 12 '10 at 16:06
2  
Boooo, caffeine is bad for your programmer's mind. It makes your thought processes stumble. Drink yerba mate', or just a glass of water, or juice. You'll notice how much better concentration you have. –  Trip Oct 13 '10 at 10:35
7  
This comes under the heading of "Things programmers want but probably shouldn't have for their own health" –  Martin Brown Oct 14 '10 at 15:15
1  
Caffeine is certainly one of my biggest productivity boosters. It actually helps me focus much better than I do without. But I think finding the right balance on this is a highly personal thing. For me it's best to have a big, hot cup of coffee in the morning and not much else until the afternoon, then it's tea only. If I deviate from this I'm sure to slow down. –  TokenMacGuy Dec 12 '10 at 18:58

Ergonomic chair

I think one would definitely need an ergonomic chair since most of your time is spent in front of the PC. If you are using a notebook then a notebook stand would be nice as well.

Sufficient light, not too much noise and coffee :)

share
3  
+1 for chairs! ` ` ` ` –  Josh K Oct 12 '10 at 16:02
3  
Definitely not too much coffee! :) (I don't like coffee.) –  thursdaysgeek Oct 12 '10 at 16:18
1  
@this.Daniel: +1 for chair, perhaps the thing my workplace lack the most... –  Matthieu M. Oct 12 '10 at 19:14

An expensive but very good thing to have is an electrically height adjustable desk. Allows the developers to work sitting as normal or raise the desk (with the touch of a button) to a height that lets them work standing up.

share

A Do Not Disturb option

I actually like working in a place where I am not isolated all day long, where I am in tune with what else is going on in the office. But sometimes the thing I need most is the ability to shut out all the noise, and to send a strong " do not interrupt me unless there's a fire" signal.

share
3  
Same here. Headphones all day. –  Ternary Oct 12 '10 at 19:25

Proper Lighting

Either Natural, incandescent or indirect/diffused lighting is a big plus for me. Flourescent lighting makes me feel like I'm in a sweatshop and gives me a headache.

share
5  
Hey I love fluorescent lighting. Yellow light gives me a headache. –  Sandeep Datta Oct 13 '10 at 4:28
2  
@sharptooth - Not to mention the inevitable crappy ballast that makes it flicker. –  JohnFx Oct 14 '10 at 13:41
1  
I hate incandescent lightning. It's too dark and doesn't blend well with the light from the screen. Fluorescent all the way. –  EpsilonVector Dec 13 '10 at 13:53

Paper and pencil and eraser!

There are things that you just can't help but express better on paper. Initial drawings, sketches, etc.

share
3  
See also: Whiteboard. –  Jared Updike Oct 14 '10 at 22:00

A nice note book for taking notes with a pen or a pencil. As much as I love computers, I find having a nice note book for writing down ideas, taking notes during meetings, diagram drawings, etc. absolutely indispensable.

share

A large Whiteboard
Very handy for brainstorming and communicating ideas when working with other developers. Don't know if I could live without mine.

BTW: Those tiny velcro attached CUBE white-boards don't cut it.

share
3  
I dunno, I never really got into white boarding. For collaborative stuff that can't be managed over IM, iPads seem to do the trick just fine. But I couldn't write something legibly on a whiteboad to save my life :p –  nlaq Oct 13 '10 at 0:40
2  
We have a 4'x8' chalkboard in the room we work in (we're 3 in this particular space, which is maybe 10'x20') We'd much rather have chalkboards, as they're less messy, and the guys from the cubicles outside don't steal your markers :) –  Mark Oct 13 '10 at 19:21

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

Latest generation hardware, such as solid-state drives.

share
50  
1. Borrow an SSD to a friend. 2. Install it in your current computer. 3. Open the current project you are working on. 4. Build it. 5. Tell your friend you are sorry but someone stole your the SSD in the street. –  user2567 Oct 12 '10 at 16:56
1  
Yes, it will change your life. Believe me. I was suspiscious myself before I saw the results. –  user2567 Oct 13 '10 at 9:02
4  
From 2 times to 4 times faster for disk intensive operations such as building a project. –  user2567 Oct 13 '10 at 16:18
1  
An alternative is a very fast Raptor drive. –  invert Oct 15 '10 at 12:59
2  
Rob Perkins: Your argument hardly makes any sense. Only developers of desktop machines could ever fall for the "fast enough" fallacy, but even if you just consider this special case, it depends on the skills of the developer to get it right. I might argue that a faster machine allows the developer to work faster, so he has more time to tinker with optimizations. –  user281377 Mar 10 '11 at 19:10

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

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

Smart Colleagues Who Enjoy Debating Solutions

For me, the one thing that makes a fun and relaxing environment is the people you work with. Surrounded with smart people who are passionate about software craftsmanship is a great way to do that. Everything else is like dual monitors, helpful, but not vital.

I find it interesting that most answers (up to this point) are physical things no one has mentioned the benefits of collaboration.

You can develop in a cave, but its easy to lose sight of the big picture.

share
15  
Ugh nothing drives me crazy faster than coworkers who have no imagination and can't work toward a temporarily abstract solution to a very real problem... –  dash-tom-bang Oct 12 '10 at 22:10
5  
+1: Great answer. I wish I could give this a +10. –  Jim G. Oct 13 '10 at 0:22
3  
A few years back I had to leave a company for lack of pay and my family's needs. I dreamed afterward about the two sharp guys I worked with there for over a YEAR, because of how I missed my interactions with them. I still dreadfully miss having really smart and motivated colleagues. :( –  ErikE Oct 14 '10 at 0:24
1  
I wish i could up vote three times. This guy I have here just can't accept the fact that things move on and is refusing to learn new things. –  kizzx2 Oct 14 '10 at 7:21

Headphones

alt text

share
16  
+1. I'm wearing that exact pair right now. –  Josh K Oct 12 '10 at 16:58
23  
Can I prefix "noise-cancelling" to that? Many times I don't want music -- I want peace and quiet. –  Christian Mann Oct 12 '10 at 19:18
5  
I would think that the ideal workplace being designed would negate the need for headphones. –  Steve Evers Oct 12 '10 at 21:29
3  
Good isolating in-ear headphones/earbuds not just for the listener's sake but also for the ones near him. Cheap earbuds tend to "leak" noise so the others hear it too. –  Fanis Oct 13 '10 at 13:27
3  
@JFW: Actually, I find that I'm quite able to remove mechanical noise from the background. Conversations are what push me out of the zone. They're also more difficult to remove mechanically, so meh. –  Christian Mann Oct 13 '10 at 17:26

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

Caffeine and a lot of patience...

share

The Internet

As Joel Spolsky said, "The internet should be as freely available as air."

share
10  
@JohnFx, sadly no. In many places, the internet is severely limited under some false notion that it will increase productivity. For programmers however, it is simply a necessity. –  Stargazer712 Oct 12 '10 at 20:24
45  
I have a friend where every site that is identified as a "blog" is blocked, even if it's a programming blog. My friend described cases where he searched a problem on google, saw a page that looked like it offered a solution, but was unable to access that page –  JoelFan Oct 12 '10 at 20:56
4  
@SpashHit - I would quit so fast it wouldn't even be funny :) My condolences to your "friend" ;) –  Stargazer712 Oct 12 '10 at 21:04
14  
@SpashHit: I work in the biggest Italian industry, and there the firewall policy is very dumb. Most of the blogs are blocked, however I can often rely on Google's cache. Also any URL with "sex" is blocked. Luckily I don't have to use expertsexchange :-) –  Lorenzo Oct 12 '10 at 21:46
7  
This should be the number one answer in my opinion. Dual monitors and so forth are certainly a productivity boost, but if our Internet connection goes down I'm better off taking my 14 inch laptop and heading to the nearest coffee shop with free Wi-Fi. –  Tim Goodman Oct 13 '10 at 9:08

Meeting/Conference Rooms

If your programmers are going to be sharing a space, you might want some smaller conference room(s) off to the side for groups to meet and discuss projects without interfering with others.

share
1  
That doesn't require you to sign up for it. –  Michael K Nov 1 '10 at 19:48

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

The programmers bill of rights

share
2  
That article links to a very interesting read on the mental state of flow, aka 'hack mode' - en.wikipedia.org/wiki/Flow_(psychology) –  invert Oct 15 '10 at 13:48

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

A Training Plan

We're all expected to know everything about everything, new and old. More often than not, we're expected to do so at our own time and expense. Oh, sure, I was occasionally allowed to attend a conference, so long as it was 1.) free, and 2.) didn't take any time.

I find that one thing I'd love to have is a training allotment of not only money, but time. A small investment (a week and a class fee) by the employer pays off not only in increased knowledge and productivity, but also morale, and I'd argue even loyalty. Why go somewhere else if you are letting me grow as an engineer?

share
5  
+100 if I could. –  underdark Oct 15 '10 at 19:42
1  
@underdark: Please, tell 99 of your friends... :) –  Wonko the Sane Oct 15 '10 at 19:54

A Bench Outside

Seriously, sometimes the grind gets heavy, a problem is too hard, and you just need sunshine, air, and a moment to think while listening to cars drive by. Nothing like a quiet place just off to the side of the building to go and think for a moment.

share
23  
What's this "sunshine" you you speak of? –  Wonko the Sane Oct 12 '10 at 20:16
4  
aka: smoke break for frazzled programmers. –  Morgan Herlocker Oct 13 '10 at 4:08
1  
@CodexArcanum Awesome! So zen, so true. –  Trip Oct 13 '10 at 10:37
6  
I prefer a place to walk instead of a place to sit. Nothing unblocks a tough problem like a nice walk. –  pkaeding Oct 14 '10 at 2:58

Great tools. Be it editors, debuggers, compilers, OS, VCS whatever we are most comfortable and productive with.

Open standards. This gives us flexibility to use tools of our choice to work with. So no MS Exchange emails solution, no doc, docx, xls, ...

Simple processes. The mundane should be either taken care, or the process should be simple enough so as not to come in between what we love the most.

Extra chair, available nearby. Very useful if we want to discuss something with your peer or during code reviews.

Biggest baddest monitor you can get. Get as much screen real estate as possible. Whatever helps us see more code at once. This includes dual/multiple monitors, though I personally find it difficult to use multiple monitors. So I prefer one single large high resolution monitor.

Comfortable keyboard and mouse placed at proper height and distance.

White board, notepad (preferably unruled), pencil (a pen will not do, most admins fail to see the difference), board markers (multiple colors) ...

The usual stuff that applies to any other desk job - proper lighting, air circulation, space, regular supply of fresh coffee, quiet environment, ...

share
  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.
share
19  
+1 for silences –  TGnat Oct 12 '10 at 19:20
51  
You forgot to mention silence, but +1 anyway. ;) –  Anna Lear Oct 12 '10 at 19:33
6  
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
6  
@JohnFx, how about a trap door activated by human voice alone? :D –  Jas Oct 13 '10 at 10:18
5  
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

A door.

Seriously, everybody should have an office with a door they can shut when they really, really need to get some work done. You can leave it open most of the day, but for those times when you're carrying a lot of state in your head and you really don't care about some random media event or sub-culture in-joke, you need a door you can close.

I also like a good solid wall I can kick if I need to, but that's probably just me.

share
4  
A cubicle drone who constantly has people walking behind him, peeking in on what I'm doing, having "hallway meetings" in the hall right beside me, and so on, I can attest at how much more productive and comfortable I'd feel with a door. –  CodexArcanum Oct 12 '10 at 19:25
1  
@pramodc84, I'd sacrifice a window for a door any day :) –  Stargazer712 Oct 14 '10 at 19:11

A breakout area.

Somewhere where you can walk away from your desk and really chill out for a bit.

share
3  
But it should be noted that this is not a place to be having meetings. –  Martin Brown Oct 14 '10 at 15:20
1  
Ping pong table? couch? Xbox! –  Michael K Nov 1 '10 at 19:47
1  
@Michael, what adorns the room I think is secondary to actually having somewhere to go. –  Toby Nov 2 '10 at 8:54

An Expense Account

share
7  
And you know, it doesnt have to be a lot. But its a real PITA if the company requires you to go through a bunch of hoops just to register a $30 text editor or something. –  GrandmasterB Oct 12 '10 at 20:23

As much screen space as possible and big desks with space to put post it notes somewhere.

share

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