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.

This is not a question with a single answer, but I am fascinated by the diversity of computer set-ups in the office. Some people work on ancient machines that are absolute donkeys with CRT monitor, whereas others have really complex and elaborate configurations that would make Forex traders jealous.

To add to the intrigue, in a recent job interview I had, the employer stressed several times that "modern high-spec workstations" were provided to developers, including access to latest gadgets in the mobile and tablet world. While this seems like a no-brainer, majority of large companies I encountered don't exactly pump cash into internal technology provisioning, or advertise the kind of hardware they provide to employees.

What are your experiences and opinions on this? Can computers that are not up to the task really be severely detrimental to productivity of programmers? At the end of the day, for companies, it's up to the cost/benefit ratio; Does it make sense to equip IT staff with latest and greatest? Technology is becoming more and more pervasive in everyday life. If a company doesn't keep up, how does that reflect on it?

This is a topic that interests me personally, but I also believe it should be examined in more detail. In addition to opinions expressed here, should you wish to help formalize some research in this area, you can take 5 minutes of your time and fill out the survey at the link below. Thanks in advance! :)

http://edu.surveygizmo.com/s3/508308/Workstations-and-productivity

share|improve this question

closed as primarily opinion-based by MichaelT, gnat, GlenH7, Corbin March, Kilian Foth Sep 9 '13 at 12:15

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

    
My personal experience is that when I can easily check my other code files and the library documentation for the functions I need (eclipse spoiled me in that regard) I can code efficiently. However any setup with a (tabbed) text editor, a browser for online docs if necessary and a cmd with a make script for a fast change-compile-run test cycle is sufficient for this. –  ratchet freak Jun 17 '11 at 21:16

6 Answers 6

Computers were created to solve problems which didn't exist before computers.

(heard somewhere)

The answer to your question is both yes and no.

Yes, computers can add to the productivity of developers. If you're facing waiting 20 minutes for a build to complete then your productivity experiences a significant drop.

And no, beyond some performance level adding more processing power doesn't help. If a build takes 10 seconds, nothing will be gained by reducing it to 5. Most time is anyway spent thinking on a problem, then it is typing in where the computer speed doesn't matter yet and only then you compile. Just because of the high portion of the thinking & typing time the more processing power brings even less.

Investing in a switch from a 2.5 GHz to a 3.3 GHz CPU is less preferred to spending money on a second monitor for instance, or on one with a larger panel. Investing in comfortable chairs and ergonomic input tools makes more sense too.

share|improve this answer
    
I agree... development methodologies and the tools used can be just as important as the actual hardware. Developing a JSF application that requires a lengthy compile->build->deploy cycle to test code will be a lot more distracting than a delay caused by hitting the refresh button on a page written in a dynamic language –  Kosta Jun 17 '11 at 21:23

Can computers that are not up to the task really be severely detrimental to productivity of programmers?

Yes, they can, but then there's the matter of defining just what the "task" is and what tech is useful and what is just a toy / distraction.

Speaking for myself, a 60+, old school Unix hacker who works on the backend, I wouldn't get much benefit from having 2 36" HD flat panels because I spend about 98% of my work time at a command prompt or in the editor. I don't even care that much how fast my local computer is because it's just a conduit for keystrokes out and screen updates back. Give me a recent vim, tcsh (I said I was old school), a decent X windows manager, a bunch of xterms, and the latest-stable of whatever tools I'm working with and I'm a pretty happy guy.

On the other hand I'm an absolute fanatic about my work environment. I care about the speed of my net connection, the feel of my mouse and keyboard, the ambient sound level, the glare on my screen, my chair, my tunes, etc. My solution is to work in a custom-built office about 60' from my house. I'm surrounded by orchard and get periodic visits from our cats. We call it my BMW, because that's about what it cost, and it's been worth every penny. (The commute is not bad, either.)

share|improve this answer

I have to say the latest and greatest does increase productivity. I work on a 64 bit blade with dual 3Ghz cpus. And if I'm just using one instance of my dev environment and a single db management tool and email app, maybe a browser, then no, I'm not getting the companies money worth. But since I normally have half a dozen instances of visual studio open, a couple instances of management studio connected to a half dozen DBs each. Outlook and countless browser windows and other apps, it's getting it's moneys worth when it doesn't slow down under the load. And I don't need to wait a 5-10 minutes to close down a dev environment and open a new one, just to change which project I'm working on.

On top of all that, I ussually have a remote desktop session or two to other machines where I have programs running that would drag this machine down.

It may only add up to 15-30 minutes of savings per day...but over a year...wow...that's a lot of wasted time if I was using the desktop machine I've got here.

And, the nicest feature of using a blade that's in the server room, I can easily go to another workstation, and open remote desktop and it's like I haven't left. All my apps are still open. Work from home? Simple. And my desktop is free for someone else to use.

I didn't think I'd like working through a remote desktop on a blade ... then we got them. And I don't know why every company doesn't do this for it's developers.

share|improve this answer
    
How much does that toy cost? –  Job Jun 18 '11 at 5:54
    
@Job, I have no clue. –  CaffGeek Jun 20 '11 at 20:25

As you pointed out, this is a question with a lot of answers and that ultimately boils down to personal preferences.

Joel Spolsky has an interesting paragraph (item 9 on this list) about buying the best tools money can buy for developers, which I think is pretty valid.

I'm most efficient with my own laptop (because it has all my bookmarks, tools, files, keyboard shortcuts, etc. configured at the ready), connected to an external monitor- but in the end every developer works differently, and someone else might be most efficient with 3 CRT monitors connected to a Sun station.

I think it's important that your organization does not dictate what your tools are, but lets you pick what works best for you- as long as you complete your part of the contract.

share|improve this answer
1  
Joel brings up good points about the detrimental effects of interruptions and delays. Especially for programmers, research indicates that rebuilding metal contexts after distractions can be both slow and increase the likelihood of introducing bugs. One of my hypotheses is that there will be generational differences in the what the personal preferences and expectations are, but that is up to the numbers to disprove or confirm :) –  Kosta Jun 17 '11 at 21:31

My experience is that most companies tend to have cycles for handling upgrades and often will do something between third-class and middle of the road in terms of performance as the latest and greatest tends to depreciate very quickly and often isn't worth the premium on having a top of the line system.

Yes, computers that barely meet the minimum requirements may well be quite detrimental to the productivity of a programmer as if the code takes hours to compile or a web page takes minutes to load this can really slow things down, IMO.

"Bleeding edge" can hurt one's finances as well as be quite frustrating if there are still a lot of bugs to work out on the newest stuff. Some companies may have policies that tend to keep things back a generation of hardware to avoid these pitfalls.

"Modern high-spec workstations" would make me wonder, "How close to the latest stuff are you and how can you justify maintaining such a position?" but that is what I'd retort as I'd like to know how recent is all that hardware.

share|improve this answer

The last three companies I've worked at all did analysis projects while I was there on the cost/benefit of upgrading developer workstations. They tended to find that they were losing something to the order of half to one hour of productive time a day while developers waited to download the latest code, watching the compile go, and other mundane tasks. That's a LOT of time down the toilet every year. Even for a junior developer with a project that didn't suffer from a lot of the common issues that's $5k blown.

One company ended up spending about $3k per developer to develop a high-speed SAN and a VM farm so you could move development environments around like pucks on an air hockey table. It was GLORIOUS! We did more experimentation and testing than any other time in my career.

share|improve this answer

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