My boss wants to introduce new guidelines for the computers in our company. This means that the software environments will be completely standardized with a predefined set of tools. The goal is that all machines are completely reproducable and exchangable.

I'm wondering what the guidelines for developer's computers are in large companies, such as Google or Microsoft, especially companies which are certified according to some standard (e.g. ISO 9001). Do they allow developers to install software from the internet if they need it for some small task? (e.g. a code compare tool, CygWin, Windows Service Packs) or do they really want all needed tools in a fixed, predefined environment where all proposed changes must be discussed with a system administrator first?

  • 9
    Standardized for the entire company or for developers? The former is guaranteed failure.
    – Telastyn
    Commented May 9, 2012 at 19:23
  • 4
    "Congratulations, team! We're now standardized on Windows 7 and Visual Studio 2010! Now who wants to write their first iOS application on their shiny new Dell?"
    – Ant
    Commented May 9, 2012 at 19:27
  • 2
    @CodeWorks - For a large development team this is cost effective (you have standard hardware and support contract and you can reimage a computer without much hassle, on the software side).
    – Oded
    Commented May 9, 2012 at 19:32
  • 1
    I get admin access on my local pc, but if anything happens to my pc they just re-image it to a base image missing any development tools. I'm told this was the compromise after much fighting to get standardized image, since they were unwilling to create a per developer or generic developer image or push any custom software requested for us.
    – Ryathal
    Commented May 9, 2012 at 19:36
  • 1
    Where I work, it's "Here's your computer, pick an OS". You are expected to install and administer your own machine, and the only hard rule is that you need to keep things secure - full-disk crypto, up-to-date OS and software, local firewall, etc. That, and that you need to do your work, obviously.
    – tdammers
    Commented May 9, 2012 at 19:59

3 Answers 3


You're really asking several separate, but related, questions here.


First: every company I've ever worked for had some kind of standardization of desktop machines. At a minimum, the hardware and OS were standardized across large groups (possibly in rolling categories: you get this year's machine when you start, and then 2 years later you get that year's machine, etc.).

As for what the hardware is like: a great company will give everybody in the building awesome hardware with fast CPUs, giant monitors, and huge amounts of RAM, even if they don't need it. A good company will at least make sure that you get hardware that is adequate to your job (which at a minimum means that engineers will get bigger screens and more RAM than the receptionist does).

Standard Software

Not only that, but every company I've ever worked for had some kind of standard software set up as well. At a minimum, that means things like email/calendar/groupware, office software, etc. Everybody gets the same thing by default; at some companies you can get something else if you have a justifiable reason (although there may be lots of paperwork involved). Plus of course you'll get the company's standard line-of-business software (although these days those applications are often web-based). You'll usually be given these applications, and you're usually stuck with them.

Specialized Software

Then there is specialized software that you need to do your job: compilers, IDEs, image editing tools, etc. Regardless of whether we're talking about free software (e.g. Eclipse) or expensive software (e.g. Visual Studio, Photoshop), the company will usually standardize on a version. So everybody who gets Visual Studio gets 2010, not 2008 (or something like that).

Inevitably, this leads to there being some officially-sanctioned place for the standard versions of things to sit -- if for no other reason than to prevent everybody from re-downloading Eclipse. Likewise, for software that has update servers or repositories, it's common for the company to run its own internal mirror repository (and possibly to block access to external mirrors) to ensure that (1) big packages are only downloaded once, and (2) everybody gets the same version.

Generally, any software that's in a company officially-sanctioned repository (where that may be an OS package repository, or just a file share with installers, or even just a file cabinet with install disks) can be installed on your computer. Most places I've worked allow you to self-serve install this kind of software, regardless of whether it's free software or paid.

What About Everything Else?

But that brings us to what appears to be your real question, which is twofold:

  1. What about software that isn't officially sanctioned (yet)?
  2. What kind of customizations can I make to the software? (Or, equivalently, what kind of administrative rights do I have on my own machine?)

For the first question, it depends on the company, and the software in question. I've heard that some companies are pretty draconian about non-sanctioned software, but everywhere I've worked the policies have been pretty relaxed, especially for engineers. Sometimes a particular software package is disallowed because it hogs company resources (e.g. peer-to-peer file sharing) or is fundamentally insecure (e.g. various types of remote PC access software) -- in that case, there is usually a company-sanctioned alternative.

For everything else, there's usually some kind of approval process. At some companies, this is as simple as asking your manager, "hey, can I install this software?", whereas at other companies the software may need to have several levels of sign-off. Expensive software and software that communicates with external services are the most likely to be carefully scrutinized, as well they should.

The second question is more about how much freedom an individual employee should have to make changes to their own machine. At most places I've worked, engineers are given pretty broad leeway, with the caveat that certain changes will "void your warranty" -- the company helpdesk won't support you anymore, and you'll have to deal with any issues on your own. Non-technical staff usually have less leeway, mainly because the helpdesk doesn't trust them to not break something.

For example, at my current job (at a large software company mentioned in your question) I don't have root access to my own machine, but I do have sudo access to do most everything I need. At a previous job at a smaller company where we were on Windows, I was in the Administrators group on my own machine, so I had pretty free reign.


Even standardization for developers is crazy talk. I have never worked anywhere where everyone users the exact same set of tools. Is he going to buy 100 seats of Photoshop because the 2 guys on the graphics team need it?

What is going to happen is you will need some tool specific to your task on the project. They won't buy it because then they will have to buy 100 seats.

I get having some commonality of setup and a certain degree of standardization is important. (like all linux, Mac, Windows, same brand, model,etc) Make sure they are willing to commit the resources though to equipping the development team to be their best.

Fought this battle once where we had to use the same machines as the customer service flunkies. Lasted a few weeks and we had to upgrade the memory, still wasn't enough because they bought the lowest common machine they could and it didn't support the larger amounts of memory, came with slow hard drives, and no dual display support.

An IT professional has different needs than the secretary. We tried to get them to create a few classes of machine (like workstation and desktop) but no dice.

Sad to say, company is no more. Not just on that issue, but it is indicative of bad management or allowing one group (IT purchasing and Support) to make decisions for another (IT development)

  • 3
    Usually companies standardize by role. The graphics designers will have one standard configuration with Photoshop. The developers will have a different standard config that includes Eclipse or VS2010 or whatever tools they use. Accountants should have a different standard config. One single config for everyone would never work, unless everyone in the company does exactly the same thing. Commented May 9, 2012 at 19:49
  • 2
    That didn't stop my former employer from trying Commented May 9, 2012 at 20:38
  • Having standardized builds doesn't mean everybody gets the same software. You can have multiple builds. You can add specialist stuff after you've dropped a build on a machine. Commented May 10, 2012 at 19:35
  • Actually the @felix-dombek said completely standardized with a predefined set of tools. The goal is that all machines are completely reproducable and exchangable. That means they ARE getting all the same software tools, management seems to think the developers will be switching computers around. Commented May 10, 2012 at 22:39
  • Ah, misunderstood that. Wow is that dumb. Commented May 11, 2012 at 7:10

In my experience, most companies have three tiers of standardization:

  1. Standard developer images - Standard hardware, and the software that the developer needs to communicate with the rest of the company. Email, Office (or equivalent), standard browser, IM, service packs, sometimes Visual Studio if TFS is required universally, etc.

  2. Standard apps - Apps that some people need, but not others. You maybe don't need 4 different paint apps running around the company, or you don't want to pay for licenses for people that are just going to ignore the app. These are good to get and have in a central location to cut down on bandwidth/wait time too.

  3. One-off apps - Stuff that developers want/need. Most companies I've seen allow developers leeway to install what they want/need. Alternative browsers, profiler of choice, visual studio plug-ins, etc. Things that are free, un-supported by IT, and don't cause compatibility issues with others.

  • 1
    #3 is critical. Even non-open source devs are constantly trying out new free solutions. Having to wait for somebody in IT to clear you on an internet download is a recipe for pain and a productivity slayer. Likewise with local system rights. Web devs frequently need to tinker with registry settings and their hosts file for instance. Commented May 10, 2012 at 20:20

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