112
votes

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: https://stackoverflow.com/questions/3911911/stuff-every-programmer-needs-while-working-closed

10
  • 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, 2010 at 8:04
  • 38
    Why don't you ask your developers what they want? Oct 13, 2010 at 11:54
  • 7
    Conjugal visits
    – Greg
    Nov 4, 2010 at 0:29
  • 1
    Nice salary!!!! Nov 18, 2010 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, 2010 at 15:49

90 Answers 90

10
votes

A sound-proof office.

1
  • would that be to block inbound or outbound sound?
    – LRE
    Jan 16, 2011 at 5:27
10
votes

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.

8
votes

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.)

8
votes

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.

8
votes

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?

0
7
votes

supervisor/manager

  • who cares about you as a person
  • who encourages laughter
7
votes

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.

1
  • 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, 2010 at 22:30
6
votes

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.

6
  • something like microsoft.com/hardware/mouseandkeyboard/…?
    – Jiew Meng
    Oct 13, 2010 at 9:00
  • @jiewmeng that's a keyboard, i'm talking about newegg.com/Product/…-48-007-317--Product
    – wheaties
    Oct 13, 2010 at 14:56
  • Or you could aknowledge that RSI is a psychosomatic symptom, and fix it with some mind-tricks. Check out www.tmshelp.com
    – Nailer
    Oct 28, 2010 at 13:26
  • @Nailer: It most certainly isn't psychosomatic, it's highly debilitating.
    – Orbling
    Jan 15, 2011 at 1:11
  • @Orbling: Oh, trust me. I've had it. I was able to reduce symptoms in 5 minutes to next to nothing once I realized it was my brain that clamped up the muscles in my hands thus reducing bloodflow to my arms.
    – Nailer
    Jan 15, 2011 at 8:11
5
votes

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.
13
  • what is an exotic keyboard and mouse?
    – Jason
    Oct 12, 2010 at 20:18
  • @Jason, the word is too heavy to describe what i wanted though. :P but i prefer keyboard and mouse set with which typing and point-n-clicking is very comfortable.
    – Donotalo
    Oct 12, 2010 at 20:39
  • Big monitor? Yes. Fast system? Shrug, I've seen programmers run circles around most working on nothing but VT100 terminals.
    – Jé Queue
    Oct 12, 2010 at 20:40
  • @Xepoch, don't have idea what VT100 terminals are and what do you mean by run circles.... a fast machine will compile my code faster, will boot/restart my pc faster, will load applications faster, large ram will help to run several applications simultaneously etc.
    – Donotalo
    Oct 12, 2010 at 20:46
  • 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... Oct 12, 2010 at 21:20
5
votes

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.

2
  • I like VMWare as it has some nice features that allow visual studio debugging of VMs Oct 14, 2010 at 15:31
  • Not only is it nicer to be able to have a VM to run IE, but also VM's to run XP/Vista/Win7 and IE6/7/8 and FF and Opera and... Just having a second PC won't give you that flexibility (unless it has a VM....) Oct 15, 2010 at 12:45
5
votes

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
1
  • I've come to appreciate this idea so much with my current job. Sometimes, I wish I could just do something else for an hour during my day. I think it would go a long way. Jul 18, 2011 at 2:16
5
votes
  • 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

4
votes

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

1
  • 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.
    – riwalk
    Oct 14, 2010 at 19:18
4
votes

A punching bag

Great way to blow off some steam.

1
  • I have on occasion been tempted to substitute co-workers for punching bags
    – LRE
    Jan 16, 2011 at 5:28
4
votes

Headphones + white noise generator

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

4
votes

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

4
votes

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.)

3
  • 2
    In the old days we just used to take the handset off the hook. Oct 14, 2010 at 15:29
  • Having a phone is only a good thing until someone passes your phone extension on to some clients.
    – Bobby
    Oct 25, 2010 at 7:47
  • I'd like my colleagues to be within walking distance.
    – user1249
    Mar 10, 2011 at 19:51
4
votes

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.

3
votes

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

1
  • +1 for Google. Best search engine ever! (At least due to its simplistic display.) Mar 10, 2011 at 18:34
3
votes

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.

3
  • Sometimes not having a super-fast computer means you have to pay more attention to detail (and optimization), which means your program will behave better on your user's wimpy computers.
    – Michael H.
    Oct 14, 2010 at 6:13
  • @khedron Yes that's right. For that we can have a separate test computer. Having a computer which is less powerful makes me to wait for a bit to have it build the program after I make changes, in case the program is huge. It mainly affects compiled languages. Sometimes I need to build parts by part since it runs out of memory. We can have separate build system, but this is when we develop (program).
    – user4626
    Oct 14, 2010 at 6:27
  • did you mean 17"
    – Midhat
    Oct 16, 2010 at 15:32
3
votes

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.

2
votes
  • Quiet office with large windows
  • Good ergonomic hardware
2
votes

Supplement and Multivitamin ....

2
votes
  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.
1
vote

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.

1
vote

I prefer two monitors,Quiet office, good machine.

1
vote

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).

1
vote

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

1
vote

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.

1
vote

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.

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