112

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

Desai Shukla
  • 111
  • 2
  • 3
  • 3
  • 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 08: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 04 '10 at 00:29
  • 1
    Nice salary!!!! – Amir Rezaei Nov 18 '10 at 10:50
  • hmmm, a keyboard? – haylem Dec 12 '10 at 13:46
  • 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
  • 1
    @Greg, that requires someone who is willing to show up :) – riwalk Dec 13 '10 at 04:43
  • Keyboard? Keyboard? I want a Minority Report interface dammit! – LRE Jan 16 '11 at 04:54
  • Being allowed to wear casuals to work. Some companies got the "casuals allowed only on Friday" rule. Sure, if you're meeting a client, formals may be necessary. But everyday!? – Nav May 28 '11 at 10:31
  • One point on ergonomic mice / keyboards. For heavy users the important thing is to vary position / usage reguarly so as not to overstress particular muscle groups, joints etc. For this reason I use one kind of mouse at home and another at work. Hence, if you're providing ergonomic mice / keyboards, provide a variety in order to allow people to swap between them. – James Youngman Feb 26 '12 at 11:10

90 Answers90

281

The Internet

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

riwalk
  • 7,660
  • 3
  • 29
  • 32
  • These days I'd think this was a given for just about any type of employee. – JohnFx Oct 12 '10 at 18:06
  • 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. – riwalk Oct 12 '10 at 20:24
  • @Stargazer712: _increase_? :) – dr Hannibal Lecter Oct 12 '10 at 20:50
  • 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" ;) – riwalk Oct 12 '10 at 21:04
  • @SpashHit, there were a few hours here that WebSense decided to block Google, so we couldn't even get as far as your friend. – Kevin Oct 12 '10 at 21:17
  • 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 :-) – Wizard79 Oct 12 '10 at 21:46
  • 1
    @SpashHit expert sex change.. sounds about right. you reminded me of this: http://www.i-am-bored.com/bored_link.cfm?link_id=23864 – WalterJ89 Oct 12 '10 at 21:56
  • 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 09:08
  • This is probably the one that you really must have. Great observation by the way, I didn't even think of it because it's so obvious. – Daniel Oct 15 '10 at 09:20
  • 1
    Not just the internet, but IRC too. There are great IRC groups for Ruby, Perl, Python, MySQL, Postgres and vim, just to name my favorites, and those can save hours of searching. Plus in-house IRC with groups for various areas of expertise/speciality can work wonders getting away from the knowledge silos and spreading the tribal knowledge. – the Tin Man Oct 17 '10 at 07:36
  • I can't write more than 10 lines of code without google – AndreasN Oct 22 '10 at 20:23
  • @Lorenzo: A friend of mine had to visit the IT department in his first week at a new job because the computer was simply blocked the moment he had googled for LaTeX related stuff. Never mind he actually was supposed to be working on LaTeX things. – Christopher Creutzig Oct 25 '10 at 07:28
  • Huh. You guys should take a look at some of the Indian companies. It is as good as No Internet. Scott Gu's site will not work. Jeff Atwood's Coding Horror is blocked with this message "Classified as Entertainment/Movies" presumably because of the word "Horror". There were days when I used to save Coding Horror's pages as Archive Single Page MHT files and email them to myself so that I can read them at office. So, Jeff if you are need of backup, I am always there :-) – Kanini Oct 28 '10 at 17:37
  • 2
    @AndreasN: Really? That's not actually a good thing. – quentin-starin Nov 18 '10 at 16:01
  • @qstarin, when the number of languages you know exceeds 10, you start having to Google stuff to remember specific details. Saying that using Google is bad is equivalent to saying that using code completion is bad. – riwalk Nov 18 '10 at 16:40
  • @Stargazer: I didn't say Google was bad. I said not being able to write 10 lines of code without google is bad. What does # of languages have to do with it? Do you work in 10 languages in a given week (actually, depending on what we call a "language" that's not even a stretch)? Does a language you worked in last year impede your ability to remember the important parts of the language you're working in this week? – quentin-starin Nov 18 '10 at 17:21
  • And I think any programmer would benefit with some quality time spent coding with nothing more than a notepad and pen. Yes, pen. – quentin-starin Nov 18 '10 at 17:22
  • @qstarin, I wonder what kind of job you have where you only use 1 language in a given week. I use C#, VB, Python, HTML/CSS/Javascript, and SQL in any given week. Google is my friend. I agree that you can't be completely dependent on Google, but memorizing whether a language uses substr() or substring() is worthless and has no bearing on your skill as a programmer. Just Google it. – riwalk Nov 18 '10 at 22:01
  • @Stargazer712: I'm sorry, but I still have to disagree with you. Not to mention you seem to be looking for an argument (where did I say I use 1 language?). I use as many as you, it seems. And very honestly, if you have to google to remember the sub-string syntax for *any* language you use **day to day** that is flat out inefficient. 10 lines of code is a pittance, and googling basic functions like substr would be like a woodworker who couldn't remember how to set the blade depth on his own table saw without pulling out the manual. – quentin-starin Nov 18 '10 at 22:21
  • 2
    @qstarin, When I am trying to determine the worth of a programmer, I look for a concrete knowledge of OO programming, an understanding of design principles, and the ability to write clean & easy to understand code (among other things). Based on what I have heard you say, you value a knowledge of programming trivia (lets see, .NET based languages use Substring(), python uses splicing notation, javascript is substring(), php is substr() with 3 params, and MSSQL has SUBSTRING() with 3 params. Doing that without Google must mean I'm a brilliant programmer, right?). – riwalk Nov 19 '10 at 00:49
  • And yes, using 3 versions of substring() yesterday impedes my memory of what the syntax is for a 4th version is today. Maybe that means I'm a bad programmer. – riwalk Nov 19 '10 at 00:50
  • 1
    At least in the US, there can be legal problems with unfiltered internet, and some sort of porn filter can be necessary to avoid legal liability. – David Thornley Feb 08 '11 at 17:58
267

Dual monitors

ysolik
  • 6,340
  • 4
  • 34
  • 50
  • 6
    I don't think one would need dual monitors to program. – Daniel Oct 12 '10 at 16:00
  • 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
  • 2
    @ysolik Actually it's not a must to be productive, I can be productive on my 15" notebook monitor as well. – Daniel Oct 12 '10 at 16:11
  • 2
    +1 It would not be vital to have dual monitors, but it would be highly productive – Jhonny D. Cano -Leftware- Oct 12 '10 at 16:11
  • 6
    Having another monitor definitely brings up productivity. I usually open my IDE on one screen while documentation and other related (but not that important) stuff are opened in the other. Switching between windows can be really time consuming if you think about it. – Terence Ponce Oct 12 '10 at 16:30
  • 3
    I agree with @JohnFx.. it's not set in stone that dual monitors are better. In a lot of cases I'd pick a larger single monitor over the dual monitor. In other cases I'd pick dual. Plus, there's something nice about having a monitor front and center. I think ideally there would be a very large center monitor and 2 smaller ones on each side. Bonus points if you have monitor arms and can move them around when needed. – TM. Oct 12 '10 at 16:42
  • 2
    I read an article that discussed this and said its not the # of monitors but the amount of pixels that matters. Which pixels really translates to screen real estate and a single monitor with large enough pixel count is as productive as 2 monitors with a combined equal pixel count. I want to vote it up but think it should be changed from "Dual monitors" to "Enough pixels or screen real estate, Dual monitors or at least a single monitor with 2560 x 1600 or something" – Chris Oct 12 '10 at 16:54
  • 2
    @Chris: Two monitors give the flexibility that one, no matter how large, can't, especially if you use swing arms. You can move monitors around and rotate widescreens vertically. – ysolik Oct 12 '10 at 17:12
  • I love my dual and tri monitor setups as much as the rest I am just pointing out a conclusion from an article I read I believe from codinghorror. Wish I could find the link again. – Chris Oct 12 '10 at 18:04
  • 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
  • 5
    For the debate Dual vs Large: Dual offer a natural boundary, you can use "maximise" on two apps concurrently, which is very handy. Of course Dual & Large is even better :) – Matthieu M. Oct 12 '10 at 19:13
  • 2
    I have been trying to get myself used to dual-monitor setups multiple times over the last ten years, and every time returned to single monitor after a week. I have one big screen, `ALT+TAB` handy, and I'm very happy. It's not for me. – Pekka Oct 12 '10 at 21:39
  • 2
    Dual monitors are just awesome when you have reams of code to go through all the while using the other monitor for looking at your e-mail and multiple ssh sessions, each scrolling the output of something (a build, syslog, you name it.) Yeah, it's not a must, but for productivy (at the hand of a good programmer), there is just no comparison. This is the default setup we have at work for every single engineer. It simply kick ass when it comes to productivity. – luis.espinal Oct 12 '10 at 22:40
  • 1
    @Matthieu: Windows 7's Aero Snap feature diminishes that quite a bit though. Okay, sure, now it's possible to have 4 distinct display locations, but I'm not usually thinking of using the keyboard to move windows around. – Billy ONeal Oct 12 '10 at 23:21
  • Aren't dual monitors bad for ergonomics? – Andrew Grimm Oct 13 '10 at 06:00
  • 1
    There have been studies, I believe, that show that dual monitors really do increase programmer efficiency by about 10%. I can't cite any without searching for them, but I believe that's why so many businesses are fine with the additional expense of extra monitors. – rtperson Oct 13 '10 at 11:37
  • Yeah, we have a guy here whose monitor is so big (don't know the dimensions exactly) that everyone that walks by it says, "wow, dude that is huge!" He doesn't use dual monitors. – JoelFan Oct 13 '10 at 14:31
  • 2
    I really recommend three monitors for programmers, no matter the size. One for coding, one for documentation and one for testing. Of course it depends on your workflow: carefully configured window managers, IDEs and keyboard shortcuts can decrease the need for more screen space. A huge monitor with a proper WM could eliminate the need for more than one screen. – Sorpigal Oct 13 '10 at 14:53
  • 1
    And WinSplit Revolution - http://www.winsplit-revolution.com/ – Pat Oct 13 '10 at 15:07
  • 1
    I love having a 1920 x 1200 monitor because I can fit two related code files side by side in Visual Studio, with room for the solution explorer to spare. I have a second monitor, 1600 x 1200, but I think it's mostly a nice to have. When looking at docs or whatever I'm also not looking at my code. Alt-tabbing away from Visual Studio or looking at the other monitor are mostly equivalent. – Joren Oct 13 '10 at 17:09
  • 6
    @this.Daniel If you want to talk about *needs*, then all u really *need* is a computer with some sort of screen. Everything else is a *want*. Next thing you know, someone will argue an ergonomic chair is luxury, that they can program on two pieces of wood crossed against each other. Same goes for mice, keyboard etc. – codinguser Oct 13 '10 at 17:25
  • 1
    I wonder if the people who feel that they need dual monitors use desktop environments (e.g. OS/X, most/all linux DEs, maybe windows with some add-on?) that support workspaces. I have 24 workspaces, and just have to hit CTRL-ALT-{arrow} to switch between them. I find this plenty of real estate on my 14" laptop. On the other hand, I think I'd be totally lost with only 2 effective workspaces. Are people who consider dual monitors essential *also* using workspaces? – intuited Oct 13 '10 at 19:27
  • @intuited: I do, but for separate purposes. I use workspaces for separate tasks (development work on one, support work on other products on another), but dual monitors so I can have my IDE on one and documentation on the other. If they still printed decent documentation I'd just have one monitor and a manual, but... – TMN Oct 13 '10 at 19:46
  • 1
    @TMN: Save the Trees, Don't Print. – Matthieu M. Oct 13 '10 at 20:10
  • 1
    I'd rather have a 27" iMac than two monitors. – johnsyweb Oct 14 '10 at 11:59
  • 1
    Two monitors is an absolute must. Skip the exercise balls if you have to. – Jason Oct 14 '10 at 22:17
  • @Johnsyweb: I'd rather have *two* 27" monitors than one. – Dean Harding Oct 15 '10 at 00:13
  • Dual monitors? damn i can't live without three now. ;-) – icelava Oct 15 '10 at 03:55
  • I run 5 monitors at home. A little overkill, but 3 I find is a good number. 1x24 main code screen, 2x19 either side. Use VS2010 multimonitor support to put some other code on one of the screens (ie, aspx file on one, code behind in another, or unit test on one, class in test on the other), and then on the 3rd one is either web page I'm coding, or unit test runner. – RodH257 Oct 15 '10 at 11:08
  • I'd rather have 3+. I can always think of something else to put on them. – Ryan Ternier Oct 15 '10 at 21:22
  • @TMN: interesting.. yeah, it gives you another "axis". I've found myself wishing that my workspace layout was a 4x4x4 cube, or a hypercube, or some kind of interlinked tree structure, rather than a 2D array. – intuited Oct 17 '10 at 03:28
  • Even dual monitors with multiple workspaces don't cut it often times. I juggle documentation in PDFs and in the browser, company calendar and email and in-house chat/conferencing, remote and local terminal and ssh sessions with debugging and editing, plus occasional editing locally. I have two more monitors on order to help me not have to switch workspaces every minute. – the Tin Man Oct 17 '10 at 07:40
  • I have 2, and I constantly run out of room. I like to spread out my Eclipse views so I have more room in the main window/monitor for code. That way, I can see more than one code file at once. – Michael K Nov 01 '10 at 19:41
  • Dual? I feel cramped and *know* I work slower on anything less then three 1920 pixel wide monitors. I just wish it was easier to find 1920x1200 vs. 1920x1080. Love the extra vertical for those extra few lines of code. – quentin-starin Nov 18 '10 at 15:58
  • Two monitors is not an absolute must. The lawn mower/scissors example is creative, but what we're talking about here is the difference between having one pair of scissors or having two. – riwalk Dec 01 '10 at 22:20
230

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.

Steve Duitsman
  • 281
  • 1
  • 2
  • 6
168

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.

JohnFx
  • 19,052
  • 8
  • 65
  • 112
  • The last company I worked for put me in a large lab. All the walls had hooks for 1m * .6m white boards. It was whiteboard heaven. – sixtyfootersdude Oct 12 '10 at 23:03
  • 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 –  Oct 13 '10 at 00: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
  • I LOVE whiteboards... You don't even need to write! you can draw frenetically as well to show your points :-D – Khelben Oct 14 '10 at 08:16
  • Personally I'd like all the walls in my office to be painted to be whiteboards. Unfortunately my co-worker doesn't agree. –  Oct 18 '10 at 20:56
  • I have a little one I keep at my desk - it's great for design problems. The big one we use for discussions. "A picture is worth a thousand words." – Michael K Nov 01 '10 at 19:43
  • Whiteboards? In my previous place we just drew on the windows! (with wipe-clean whiteboard pens of course :)) – ChrisAnnODell Nov 18 '10 at 21:27
151

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

Daniel
  • 1,150
  • 2
  • 10
  • 20
113

Time Allocated To Research

Be it tooling around with a potentially usable new tool/technology or reading up on a methodology, time to research is critical.

Anecdote:

When I started my current job, Fridays were terrible because all of the evening telemarketing staff worked the day shift on Fridays. I started working at home on Fridays and took 50% of that time at home and devoted it directly to researching. I got up to speed on the codebase, the vendor tools, methodologies that we used in no time and discovered some new techniques/processes that I ended up putting in place to great effect.

Steven Evers
  • 28,200
  • 10
  • 75
  • 159
104

Headphones

alt text

grokus
  • 7,536
  • 4
  • 31
  • 46
  • +1: I'm wearing the 595s right now. Well worth the extra cost over the 555s. The audio quality and comfort are astonishing. – Sam Dolan Oct 12 '10 at 18:18
  • 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. – Steven Evers Oct 12 '10 at 21:29
  • Do noise-cancelling headphones still cancel outside noise if you're not playing music on them? – Kyralessa Oct 13 '10 at 04:12
  • @Kyralessa probably yes but a cheaper alternative will be noise suppressing earplugs! – Autodidact Oct 13 '10 at 04:26
  • 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 Hatzidakis Oct 13 '10 at 13:27
  • @SDX2000, with earplugs I find the sound of my own head (swallowing, breathing, etc) more annoying than outside noise. – David Murdoch Oct 13 '10 at 14:20
  • @sdolan: You can get 595 quality by removing the foam dampeners from the 555. ;) Other then that they are the same cans and *completely* comfortable. I could die in these headphones. – Josh K Oct 13 '10 at 14:29
  • @Christian Mann - One of those new Bose headphones have a feature where harsher/more mechanical sounds like the airplane engine and the rumble of the car are cancelled out, but you would still be able to hear other people talking. Would this be the type of noise-cancelling you're talking about, or noise-cancelling other conversations? – JFW Oct 13 '10 at 15:57
  • 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
  • it doesn't work for musicians I think. – setzamora Oct 13 '10 at 18:22
  • I use Ultimate Ears ear-buds: they totally blot out conversation in our open-plan office. Works a treat. – Jeremy McGee Oct 13 '10 at 20:05
  • I couldn't agree more on this one. Without headphones I just cannot get in the groove the same way. Plus it cuts distractions. Many times I've realized after a few hours with my headphones on that I didn't turn on the music! Just the noise-killing was enough. And perhaps the "thinking cap" autosuggestion of wearing them helping me get into working mode... – ErikE Oct 14 '10 at 00:25
  • www.rainymood.com plays the sound of rain, great white noise to work, and sleep to! – invert Oct 15 '10 at 12:51
  • I think headphones should be the only way people can listen to music. I've worked in offices where people played music through their speakers loudly, under the mistaken impression that the rest of us wanted to hear their tastes in music all day long. I am a musician, I love all sorts of music, but when I am concentrating I want to pick my own music to listen to. I should be able to put on my own headphones and not hear what they are listening to. If I can hear what they are playing it's too loud. Sennheisers are great but the Bose over-the-ear noise reduction are awesome. Extremely quiet! – the Tin Man Oct 17 '10 at 07:30
  • 1
    I think headphones can actually be detrimental because of the isolation from the team that it encourages. The best teams I've been a part of were one that had a good amount of technical cross talk. – dietbuddha Dec 19 '10 at 06:11
97

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.

AShelly
  • 5,793
  • 31
  • 51
  • 3
    Same here. Headphones all day. – Ternary Oct 12 '10 at 19:25
  • I suppose the "unless there's a fire" bit should be understood both literally and figuratively ? – Matthieu M. Oct 16 '10 at 14:29
  • I was going to answer "Quiet" but this works even better. – AnonJr Oct 16 '10 at 17:40
  • @Matthiew - I once worked in a place where the one area where you couldn't hear a fire alarm was where all the test equipment was. Also, I have Aspergers - and one of the symptoms is that when I'm "hyperfocussed" (can be much the same as "in the zone", though not always) people can literally shout into my ear and I won't hear. I *have* failed to notice a smoke alarm going off fifteen feet away before. And that's *without* my ear defenders for my (really, no joke) sensitivity to some quiet sounds. Neurological wiring issues can be a bit paradoxical. –  Dec 07 '10 at 13:49
  • I used to have a little sign that said "Piss Off, I'm Busy". For some reason other people didn't like it. – LRE Jan 16 '11 at 04:57
75

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.

JohnFx
  • 19,052
  • 8
  • 65
  • 112
  • Depends on the fixture too. For example, florescent in one of those "Mirrored Squares" (i.e. http://www.hitecsystems.co.uk/lights1.JPG ) fixtures is fine.... – Billy ONeal Oct 12 '10 at 21:18
  • 5
    Hey I love fluorescent lighting. Yellow light gives me a headache. – Autodidact Oct 13 '10 at 04:28
  • @SDX2000: IMO the problem is not in fluorescent lighting by itself but in it almost always being done wrong. It is usually too bright and of wrong color temperature. And since it's almost always done wrong I have to not like it. – sharptooth Oct 14 '10 at 11:51
  • 2
    @sharptooth - Not to mention the inevitable crappy ballast that makes it flicker. – JohnFx Oct 14 '10 at 13:41
  • @JohnFx: That's true, but the situation improves fast with electronic ballasts bcoming more widespread. It happens electronic ballasts are more energy-efficient and so companies are happy to employ them. However this doesn't do anything to brightness or color temperature. – sharptooth Oct 14 '10 at 13:46
  • My company replaced all of the fluorescent lighting in the building (All 5 floors) with sunlight balanced (D-50) lighting. It was a bit odd during the transition, but I like it much better than the cheap lights. – Mark Thalman Nov 18 '10 at 14:16
  • 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
  • I don't see "Mirrored Squares" reducing flickering. Not sure what causes flickering, but even magnetic ballasts alternate fast enough (100 Hz) for that to be absolutely not the problem. 6-10 Hz is the problem frequency. I suspect that it is more to do with dirty power supply (merely exasperated by absurdly high intensity). I've seen LED mood lighting in an A380 flicker. – Tom Hawtin - tackline Dec 13 '10 at 16:51
  • That's why I prefer coding outside during summer. –  Oct 11 '11 at 19:16
  • @WTP Obviously you don't live in Texas. =) – JohnFx Oct 11 '11 at 19:31
  • @JohnFx does "Holland" say enough? :) –  Oct 11 '11 at 19:32
74
  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.
Vlad Gudim
  • 1,215
  • 2
  • 13
  • 16
Jas
  • 6,254
  • 1
  • 31
  • 46
  • 51
    You forgot to mention silence, but +1 anyway. ;) – Adam Lear Oct 12 '10 at 19:33
  • 3
    @Ann - right, let me stress the importance of silence :D – Jas Oct 12 '10 at 19:47
  • 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 04:32
  • 6
    @JohnFx, how about a trap door activated by human voice alone? :D – Jas Oct 13 '10 at 10:18
  • In a pinch, the headphones alone will work in lieu of silence. – ErikE Oct 14 '10 at 00:28
  • 1
    I have 10 sales agents on the phone 8 hours a day behind me. No level of headphone will save me. – Incognito Oct 14 '10 at 15:35
  • If the political winds coming out of the PHBs prevent "mere programmers" from having solitary quiet offices, then Cubes with the tallest possible walls is the next-best thing. – BryanH Oct 14 '10 at 23:35
  • 2
    Add in "No phone" or "Call-out-only phone" - I use it to participate in conference calls, but if someone needs to call me, they're wasting my time. – BryanH Oct 14 '10 at 23:36
  • @BryanH - added. – Jas Oct 15 '10 at 00:48
  • 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 02:09
  • Definately the books. and a shelf to keep them on. – Michael K Nov 01 '10 at 19:46
  • What is a "flat keyboard"? – Ricket Dec 17 '10 at 01:35
  • @Ricket - it's a keyboard whose hight of keys resembles the one on a notebook, and for me as a programmer it's much easier to get things done on flat keyb rather than the one with "high" keys. – Jas Dec 17 '10 at 08:18
  • Oh gotcha, hmm I also don't know a better name for it than that. The keys use the scissor-switch mechanism but I don't think it would be called a scissor keyboard. :) In any case I agree with you, I like laptop keyboards better too. – Ricket Dec 17 '10 at 15:08
  • @Jas and I am in the opposing camp. Flat keyboards aren't healthy for my fingers. I thought I loved flatties until I tried a mechanical "high" profile kb. – mike3996 Jan 09 '11 at 12:55
66

Latest generation hardware, such as solid-state drives.

  • Make sure you buy a good one... it's easy for budgetary concerns to lead to cheapo SSDs which have worse write performance than a regular hard drive. – TM. Oct 12 '10 at 16:44
  • Current/latest hardware is a plus but I do not see the justification in an SSD. Most of my work is done in development environments on servers in the racks so my PC sees more network usage that local IO. Care to elaborate on what an SSD yields ? – Chris Oct 12 '10 at 16:52
  • 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. –  Oct 12 '10 at 16:56
  • For development work is it such a good deal? I know for high IO stuff yes but development? But its nice to have – Jiew Meng Oct 13 '10 at 08:56
  • 1
    Yes, it will change your life. Believe me. I was suspiscious myself before I saw the results. –  Oct 13 '10 at 09:02
  • @Pierre 303 : What's the difference between normal HDs and SSDs if you're not just looking at the performance? What results did you get? – JFW Oct 13 '10 at 15:58
  • 4
    From 2 times to 4 times faster for disk intensive operations such as building a project. –  Oct 13 '10 at 16:18
  • 1
    An alternative is a very fast Raptor drive. – invert Oct 15 '10 at 12:59
  • @JFW: If you leave the (awesome) performance aside, then you still have no moving parts in a SSD (less error-prone) and a lower overall temperature. – Bobby Nov 15 '10 at 14:10
  • No. If a developer has latest generation hardware, he will not sufficiently consider use cases with previous generation hardware. The result will be really slow software. – Rob Perkins Jan 15 '11 at 00:19
  • +1 for the hardware bit. Not so sure about SSDs just yet - how's their longevity so far? – LRE Jan 16 '11 at 04:58
  • 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
  • @Pierre: Building a project is not disk insensitive. Maybe you noticed that your CPU spikes at 100%; this means it's CPU intensive. – Andreas Bonini May 25 '11 at 14:50
  • @Kop: not on my system –  May 25 '11 at 14:58
  • @Pierre: out of curiosity, what language? I program in C++. – Andreas Bonini May 25 '11 at 15:08
  • @Kop: Visual Studio C# and the hard drive was clearly the bottle neck. I understand this may not be the solution to all building problem. –  May 25 '11 at 15:18
60

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.

RegDwight
  • 527
  • 1
  • 5
  • 12
TMN
  • 11,313
  • 1
  • 21
  • 31
  • 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
  • What about a window? or windows ;) – pramodc84 Oct 14 '10 at 04:14
  • I often use a meeting room when I need to get stuff done. The rest of the time I like the social side of sharing an office, but never with more than 3 other people. – Martin Brown Oct 14 '10 at 15:19
  • 1
    @pramodc84, I'd sacrifice a window for a door any day :) – riwalk Oct 14 '10 at 19:11
  • Earplugs! Or noise-cancelling earphones with just almost nothing playing. –  Oct 22 '10 at 06:53
  • @TMN: A martial-artist colleague would be better than a wall to kick. – Nav May 28 '11 at 07:57
54

Coffee Machine

ysolik
  • 6,340
  • 4
  • 34
  • 50
  • On your desk or in the break room? (reason I ask is because the guy sitting behind me has a Keurig single dose machine on his desk) – Peter Turner Oct 12 '10 at 16:01
  • 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. – Michael H. 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
  • I have a Tea Maker at my desk. – Malfist Oct 13 '10 at 19:19
  • try Caffeine-Sodium Benzoate injections to a large muscle (gluteus :D). this would give you a medical condition of being really caffeinated. – kagali-san Oct 13 '10 at 22:55
  • 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
  • Not just coffee machines, but a good assortment of tea. I gave up coffee but love chai and green teas. – the Tin Man Oct 17 '10 at 07:45
  • 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. – SingleNegationElimination Dec 12 '10 at 18:58
  • Drip-feed caffeine – LRE Jan 16 '11 at 05:00
48

A life outside of work.

Kramii
  • 14,029
  • 5
  • 44
  • 64
  • 25
    Sadly this is often something that the programmers need to realise as much as the management. – Martin Brown Oct 14 '10 at 15:24
  • 6
    Too many companies put a ball-and-chain on the developers by expecting them to be on call 24x7, handle emergencies at night, then be in the office the next morning. And then the companies are surprised when the developers get lousy attitudes, lose productivity or quit to go somewhere else that pays a lot more and doesn't put them on call at all. – the Tin Man Oct 17 '10 at 07:56
  • 2
    Life? What's that? – LRE Jan 16 '11 at 05:25
47

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.

CodexArcanum
  • 3,421
  • 21
  • 23
  • 23
    What's this "sunshine" you you speak of? – Wonko the Sane Oct 12 '10 at 20:16
  • I would add roof access to this if you are in a taller building. I just find something relaxing about chilling out at the top of the world – WalterJ89 Oct 12 '10 at 22:00
  • 4
    aka: smoke break for frazzled programmers. – Morgan Herlocker Oct 13 '10 at 04: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 02:58
  • Before wireless was invented I was working at a site that had a great patio where we could go for lunch. It was nicely landscaped and would have been a great place to go to work outside when the weather was nice. I remember wishing we had some sort of wireless access point that would keep us connected to the servers and hosts. – the Tin Man Oct 17 '10 at 07:48
44

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?

Wonko the Sane
  • 3,172
  • 1
  • 24
  • 24
  • 1
    @underdark: Please, tell 99 of your friends... :) – Wonko the Sane Oct 15 '10 at 19:54
  • Ditto that +100. Asking us to pay for our own books and training is too much. Some companies make a token attempt of providing training by offering classes that appeal to some HR person or VP who is out of touch but don't give us any useful knowledge for the day-to-day tasks or future growth we want. – the Tin Man Oct 17 '10 at 07:53
  • Conferences that are free and don't take any time? Sounds like a `nothing` to me! – Alan Pearce Nov 18 '10 at 16:47
  • Even more ridiculous than having providing a reasonable training plan is the offering of those shtty online courses. They're just glorified powerpoint presentations. – going Dec 20 '10 at 01:07
37

The programmers bill of rights

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

A manager who takes care of the knuckle-head stuff: endless meetings, repetitive and easily answered tech-support questions, requests to "fix my computer", etc.

When I was a manager, I made it clear that no one was to disturb my programmers or schedule them in a meeting without coming to me first.

bmb
  • 141
  • 5
  • 11
33

Testers, Sysadmins and Tech Support

Obviously in some shops these will be a given, but for smaller setups, programmers are an order of magnitude more productive if they don't have to deal with anything other than their code.

tobyodavies
  • 141
  • 1
  • 7
  • -1 for "Testers". You should test your code. Programmers shouldn't just write code and throw it over the fence to testers. – Victor Hurdugaci Oct 16 '10 at 16:48
  • agreed they should, but they shouldn't be the only ones doing it, and they shouldnt be testing 100% of the functionality with every change cause its boring and leads to burnout... I know i get really lazy and do a bad job when i 'know' that a change i made could 'only possibly affect x' so i test x and say 'it works!' and then someone tests y and finds my change broke y and I'm really glad i had someone else testing - I wouldn't want that code in production but there was no way I'd have found it caus i was convinced i couldn't have broken it... – tobyodavies Oct 17 '10 at 00:35
  • I don't mind setting up a host if it's for my development environment. A good Linux distro, like Ubuntu, makes it pretty easy to configure and load necessary libraries for Perl, Python and Ruby. I hate it when I'm saddled with old distributions that can't compile new versions of apps. Then hours are lost trying to get things running and the sysops won't help because "it's not standard." – the Tin Man Oct 17 '10 at 07:59
  • 3
    @Victor Hurdugaci: I disagree...most of the troubles I run in are scenarios which I couldn't even think up because I wrote the software. Additionally, clients like to throw angrily stuff at my head after three months because "they could never really work with it", which could have easily been avoided if somebody *else* would have looked at it (or the clients would have opened their mouth). I can test my software for functionality, but not for usability. – Bobby Oct 18 '10 at 22:02
26

An Expense Account

Gratzy
  • 3,746
  • 20
  • 27
  • 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
  • Agreed, as it really sucks if you need to go through a 3 week approval proces to get a replacement drive for your RAID array. Which then throws another drive while you wait. Hot Spares FTW! – Nick Haslam Oct 13 '10 at 15:29
  • I understand the need here, but honestly most programmers I know have no concept of budgets or ROI. That said, the programmers direct line manager should have that approval AND take care of all the paperwork. It shouldn't slow you down, but a lot of places would buckle if programmers got everything on this list with no consideration for the cost and how it compared to the income being generated. A dual monitor, solid state drive, MacBook Pro might increase productivity but if you are not generating any income where is the $5k coming from. – Bill Leeper Oct 15 '10 at 17:30
  • @Nick Haslam: worse if it comes out of the syadmin's budget because it's hardware... you'll never get that drive. – Steven Evers Oct 15 '10 at 20:55
  • What, you use stuff you have to pay for? I don't because I can get a complete working system the way I want in an afternoon rather than the 4 weeks it takes to get approval for purchase. – Christopher Mahan Oct 22 '10 at 06:17
24

A breakout area.

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

Toby
  • 1,921
  • 12
  • 21
21

Paper and pencil and eraser!

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

RegDwight
  • 527
  • 1
  • 5
  • 12
19

The Ability to use whatever editor/IDE that you prefer

Mumbles
  • 469
  • 1
  • 6
  • 16
  • 9
    I'm not sure about this one. It depends on what language/environment you're using. If the notion of a "project" of files is built into the IDE, then you may have to use the standard IDE with everyone else. Context will matter here. – Michael H. Oct 14 '10 at 06:12
  • I agree with @khedron. I would also note that complete freedom is probably not the greatest things for developers. – msarchet Oct 14 '10 at 14:45
  • What @khedron said. If the project can be managed with, say, make, then fire away with whatever IDE/editor of your liking. But if the project involves multiple developers and there build is non-trivial and based on say, ant or maven, your team needs to standardize on an IDE that supports either. Obviously you can use any editor to modify individual files. But push come to shove, you have to operate with standard IDE so that you don't mess up the project for everyone else. – luis.espinal Oct 14 '10 at 22:28
  • I think you can have your cake and eat it too. Even if you do most of the project related work in VS, you can still do the actual *editing* in vim. Many IDE's even allow you to specify the text editor you wish to use. – SingleNegationElimination Dec 12 '10 at 19:02
19

Every programmer needs an employer who is willing to send them to conferences (and cover expenses).

16

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.

Rachel
  • 23,979
  • 16
  • 91
  • 159
15

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.

ysolik
  • 6,340
  • 4
  • 34
  • 50
  • Lined or unlined? I have a stack of 3-hole punched printer paper on the shelf above my desk for diagrams and the like. – Christian Mann Oct 13 '10 at 17:29
  • @Christian Mann: I prefer hardcover lined note books. Something that's sturdy and cannot be easily torn. – ysolik Oct 13 '10 at 17:46
13

A great reference library

Google is great for many things, but it's no substitute for a good collection of books. Searchable EBooks preferred, like the O'Reilly Safari collection.

Jay Beavers
  • 2,321
  • 2
  • 18
  • 17
12

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

aufather
  • 4,449
  • 2
  • 26
  • 24
11

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.

Kevin D
  • 3,426
  • 27
  • 36
  • I'd like to try something like that to know if it is that great. I suspect it is, but how can I recommend it if I've never tried it? – thursdaysgeek Oct 12 '10 at 16:20
  • I'll admit I've not tried one either, I've known people who have though and they rave about them. I just can't persuade my company to shell out the money. – Kevin D Oct 12 '10 at 16:23
  • And would also (I assume) allow those of us who are somewhat vertically challenged to be comfortable while sitting down. – Adam Lear Oct 12 '10 at 16:27
  • Airtouch or Airtouch Electric...everyone in my office has one. Well most of the building actually. Well, company. – Nick T Oct 12 '10 at 17:45
  • Care to add some links to your favorites? – Pat Oct 13 '10 at 15:09
  • Though the standing up thing is good. This is mostly useful for getting your desk at just the right height when sitting. If you have to clear the desk and use a spanner to adjust the desk height, mostly you won't bother. – Martin Brown Oct 14 '10 at 15:22
  • @Martin Brown I agree, thats why I would get the electric ones (If I could get any) so that its a touch of a button. – Kevin D Oct 14 '10 at 15:45
10

You don't say what technology stack you'll be working in but:

MSDN License

or

Licenses to any software/tool required

Steven Evers
  • 28,200
  • 10
  • 75
  • 159
10

A sound-proof office.

Arun Saha
  • 121
  • 6
10

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.

Jay Beavers
  • 2,321
  • 2
  • 18
  • 17
8

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

Frank Shearar
  • 16,643
  • 7
  • 48
  • 84
8

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.

Sam J
  • 748
  • 5
  • 8
8

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?

geofflane
  • 101
  • 3
7

supervisor/manager

  • who cares about you as a person
  • who encourages laughter
Adamizer
  • 881
  • 6
  • 13
7

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.

Brian
  • 101
  • 3
  • 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
6

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.

wheaties
  • 3,584
  • 22
  • 23
  • something like http://www.microsoft.com/hardware/mouseandkeyboard/productdetails.aspx?pid=043? – Jiew Meng Oct 13 '10 at 09:00
  • @jiewmeng that's a keyboard, i'm talking about http://www.newegg.com/Product/Product.aspx?Item=N82E16848007317&cm_re=keyboard_drawer-_-48-007-317-_-Product – wheaties Oct 13 '10 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 '10 at 13:26
  • @Nailer: It most certainly isn't psychosomatic, it's highly debilitating. – Orbling Jan 15 '11 at 01: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 '11 at 08:11
  • @Nailer: *Right*, so nothing to do with tendinitis then. I'm glad you managed to shift it like that. – Orbling Jan 15 '11 at 11:36
5

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.
Donotalo
  • 1,219
  • 1
  • 12
  • 19
  • what is an exotic keyboard and mouse? – Jason Oct 12 '10 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 '10 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 '10 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 '10 at 20:46
  • @Donotalo, See http://en.wikipedia.org/wiki/Vt100 and I've seen this as little as 5 years ago (no kidding, some of the smartest programmers I ever met), fast and shared SERVERS are needed for proper development, not fast WORKSTATIONS unless you develop VB or Swing apps for a living. "run circles"/"run rings" = outdevelop. – Jé Queue Oct 12 '10 at 20:52
  • 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
  • @Billy ONeal: i work in a PC having 15" LCD with response time 50ms. When i scroll a page with text i get irritated with the `ghosting` effect. and i agree, color reproduction and viewing angle are very important. the LCD spec i specified is actually taken from my own home pc. i can work more efficiently in home than in office. – Donotalo Oct 12 '10 at 23:14
  • @Donotalo: Okay, 50ms is extremely bad though. Even relatively poor quality displays made since 2004 (which is when I started paying attention to LCDs) have response times of 20ms or better. No idea where you found a panel like that.... Anyway -- IMHO the best displays are IPS panels, which typically have higher (worse) response times (on the order of ~16 ms), but have massively better color and viewing angle properties. Todays cheapie panels are TN panels with response times in the 2ms range, but color and viewing angles suck. – Billy ONeal Oct 12 '10 at 23:17
  • @Xepoch: i work for embedded devices. on a typical busy day i need to run `the compiler+IDE of the microcontoller`, `the debugger to debug firmware`, `VS 2008` as editor (because the IDE comes with the compiler sucks and i'm comfortable with vs), `firefox` for internet, `yahoo messenger`, `Omega TV` - a custom software that can talk to the firmware, `2/3 windows explorer windows`, `0-3 pdf/doc/xls` files. now you guess why do i feel comfortable when work from home than office. – Donotalo Oct 12 '10 at 23:24
  • @Billy ONeal: i've failed to get our system admin's attention that programmers also need better monitor. according to our company policy, only game developers and graphics designers could have high resolution/better monitor. – Donotalo Oct 12 '10 at 23:27
  • Donotalo: Never disagreed on the monitor point. Just the one spec :) – Billy ONeal Oct 12 '10 at 23:39
  • Exotic keyboard and mouse? Was "ergonomic" the word you were looking for? – user16764 Feb 23 '12 at 04:53
  • @user16764: Not sure. :) But I want a set of keyboard and mouse with which I'll be comfortable. – Donotalo Feb 23 '12 at 05:02
5

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.

  • I like VMWare as it has some nice features that allow visual studio debugging of VMs – Martin Brown Oct 14 '10 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....) – Wonko the Sane Oct 15 '10 at 12:45
5

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
Amir Rezaei
  • 10,938
  • 6
  • 61
  • 86
  • 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. – Bryan Harrington Jul 18 '11 at 02:16
5
  • 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

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

Bryan Harrington
  • 2,502
  • 1
  • 19
  • 22
  • 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 '10 at 19:18
4

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

ErikE
  • 1,151
  • 1
  • 8
  • 18
Caleb
  • 157
  • 3
  • 10
4

A punching bag

Great way to blow off some steam.

lamcro
  • 1,421
  • 2
  • 12
  • 14
4

Headphones + white noise generator

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

4

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

Emerion
  • 361
  • 1
  • 7
4

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

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

Muad'Dib
  • 2,608
  • 18
  • 14
3

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.

  • 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 '10 at 06: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). –  Oct 14 '10 at 06:27
  • did you mean 17" – Midhat Oct 16 '10 at 15:32
3

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.

jokoon
  • 2,262
  • 3
  • 19
  • 27
2
  • Quiet office with large windows
  • Good ergonomic hardware
Branimir
  • 554
  • 4
  • 8
2

Supplement and Multivitamin ....

VinkyH
  • 41
  • 2
2
  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.
HedgeMage
  • 4,313
  • 1
  • 22
  • 28
1

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.

James Dunne
  • 111
  • 3
1

I prefer two monitors,Quiet office, good machine.

1

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

Stu Pegg
  • 568
  • 2
  • 13
1

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

1

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.

Sorpigal
  • 101
  • 3
1

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.

Trey Hunner
  • 141
  • 3
1

Many people have mentioned a quite or silent workplace which is often not only impossible but is actually almost as bad as a noisy one. I can't stand utter silence, it's creepy, so here is my inexpensive suggestion:

A white/pink noise generator

Like a clock that has a white/pink noise generator in it. A lot of them have additional sounds but the beaches have annoying bird noises and rivers make me have to pee so the best ones are the sound modes that simulate rain. My favorite is rain on a tin roof.

1

Stimulating, not intrusive music.

This is my work playlist

Mild Fuzz
  • 1,562
  • 10
  • 21
1
  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.
luis.espinal
  • 2,560
  • 1
  • 20
  • 17
1

Memory upgrade

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

jah
  • 162
  • 9
1

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.

tomfanning
  • 101
  • 4
1

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.

rerun
  • 2,045
  • 12
  • 24
1

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

Moshe
  • 5,022
  • 2
  • 30
  • 49
1
  • 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.

Tjaart
  • 1,871
  • 3
  • 18
  • 21
1
  • 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 :)

Ayush Goyal
  • 1,175
  • 9
  • 19
1

In decreasing order of importance.

numan
  • 257
  • 2
  • 6
1

The possibility to work from home!

Xavier Nodet
  • 3,684
  • 2
  • 26
  • 33
1

A working brain is what you need the most.

Everything else depends upon it

0

Caffeine and a lot of patience...

Jeremy
  • 671
  • 5
  • 10
0

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

Jonathan.
  • 880
  • 3
  • 9
  • 18
0

• Surroundings that harmonize with him/her. This includes what has been mentioned before. Next to nothing cuts down productivity as bad as feeling like you're a rare type of lizard in a terrarium. If you feel at home, you get going ;)

• All the Software required plus some stuff to take away the hassle:

  • Current IDE and Equipment

  • Bug Tracker

  • Wiki

• Project leads that know their job : Have the developers develop, the help-deskers support. Period.

0

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

tcrosley
  • 9,541
  • 1
  • 25
  • 41
0

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

0

A Model M keyboard.

oadams
  • 101
  • 2
  • 1
    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
0

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!

kyndigs
  • 369
  • 1
  • 10
0

Some flexibility in hours

Not everyone is most productive at the same time of day

Bill
  • 8,330
  • 24
  • 52
0

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

A Hardware clock

adopilot
  • 173
  • 3
0
  • 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
DBlackborough
  • 1,196
  • 6
  • 12
0

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.

Gaurav
  • 3,729
  • 2
  • 25
  • 43
0

alt text

Greg
  • 111
  • 4
0

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

hplbsh
  • 137
  • 3
0

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

Benjamin
  • 51
  • 2
0

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

Denis de Bernardy
  • 3,913
  • 21
  • 18
-1

A rubik's cube

Emil
  • 1
  • 1
-1

Coke.

BTW, dual monitors are overrated.