Recently there was a question on the Programmers site asking “Why don’t all companies buy developers the best hardware?” This is actually a very interesting question and there was a good deal of discourse on the topic, as there always is when you get a group of professionals talking about the tools of their trade.

We here at Stack Exchange pride ourselves on not letting the technology get in the way of our devs. We want them to be able to do their job – which is writing code, and doing it well – with minimal hassle. Now, I have to take a brief moment to make a little bit of a note some of the things we do do not scale.

The philosophy that is maintained when getting a developer a new machine is a pretty simple one:

> If a dev is constantly struggling with their machine they aren’t getting work done, they aren’t happy, and they are producing bad code. All of these things are more expensive than a nice developer machine

As a sysadmin – and hence the guy in charge of getting the devs what they need you find out really quickly that they know what they want for the most part, and for those that you don’t ask if you give them a powerful machine with a lot of screen real estate they are generally very happy.

Since I mentioned earlier that there are some things we do here that aren’t all that scalable – in that they work for a company with 20 devs but not 100 i’ll split them up.

The Scalable

The base config that I get new devs in the NY office is:

  • Dell Optiplex 980 class tower
  • Max out the RAM
  • Best i7 Processor that I can get in it
  • SSD primary drive
  • 7.2k large (500GB – 1TB) Secondary Drive
  • 30″ Primary Monitor
  • 20″ Secondary monitor (turned sideways)

Every dev picks their own keyboard – we may give them the crappy one that comes with the machine to get them up and running, but they can request any keyboard/mouse combo they want (and … i do mean any).

The not so scalable

  • For our remote devs we get workstation replacement class laptops. Basically I go out and find the most powerful laptop I can get at the time they start, as well as a 30″ monitor to go with it. Not Scalable.
  • At least one dev in the NY office has a fully customized hand built machine with 2 30″ monitors. VERY not scalable.
  • Whatever they want – within reason

Basically, it boils down to get them what they need to get their job done. One of the biggest challenge to some people is that they do not have management’s buy-in to get the Devs what they need. I find that this is a sad state of affairs, but I have no real advice to offer – especially since I work somewhere that management has mandated great dev machines.

«
»
  • Interesting timing. My stepfather, the lead .NET developer at his workplace, is currently hand-building his own desktop PC. Happy developers are indeed productive developers. Why they get treated poorly in some places seems like a living logical fallacy. Does one put water in their gas tank and then grouse when performance is sub optimal? I hope not.

    Dangit, now I want to learn development and work at Stack Overflow. Boo for making me question my career choice.

    • OH right … Sysadmins fall under the same policy here … 

    • Anonymous

      1) George and I get good hardware as well. 2) We have an opening in NY for another sysadmin in NY 😛 , http://careers.stackoverflow.com/jobs/12702/systems-administrator-stack-exchange?campaign=List

      • Mark Henderson

        Stop mentioning #2. It makes me sad that I live on the opposite side of the world. Although to have my salary figured on $US and paid into $AU is actually a fairly rubbish scenario at the moment.

  • So how many devs have the Optimus Maximus keyboard?  http://www.funkyspacemonkey.com/super-rich-geek-keyboard

  • Anonymous

    Good post George. For those getting anywhere the same hardware as non-devs at work then take it as a sign of that companies focus and understanding of development. 

  • David Schmitt

    How loud is the 980? Was/Is noise emission any consideration for your PCs? 

  • I started working for GE Healthcare this week and have been very happy so far. There was a very nice 4GB quad core Core i7 laptop waiting for me on day one all setup with 2 encrypted HDs and full communication suite. I am suppose to get an equally nice workstation with 2×24 monitors, 16GB RAM and an SSD later this week. It was one of the top questions I had when looking for a new job!

  • Ian Jones

    What’s the replacement policy ? From what you say if a developer is moaning about their machine that should be an automatic update (but don’t all developers moan), just wondered if you considered updates yearly, two yearly etc.

    Is there anything in place to make installations of tools / environments easier ?

    • Actually they only really moan when they are blocked or hampered in their work. It’s amazing what happens when you give Devs the right equipment. General rule of thumb i always use is 3-5 years though.

      • Dor “The Configurator” Kleiman

        5 years on the same machine? That’s an antique! We at Softwire replace each developer’s machine every two years. Personally I think that’s a tiny bit too quickly and an upgrade after two years and replacement every 3-4 would be more efficient, but I’m not complaining! My current machine is 1.5 years old and is an i7 920 but with no SSD – my next one in 6 months will definitely a lot better but even giving me just an SSD and some RAM like the new machines get would make me happy for at least a year.

        • Well, it’s not so bad when you consider that we do interim upgrades. It’s much less expensive to upgrade RAM and hard drive than it is to replace the entire machine. For example, I just brought the devs on older hardware up to 16GB of ram for about 200$ instead of full replacements. 

  • IME, the reason for getting crap/iffy hardware as a dev/IT-worker is largely due to one thing, sunk cost (salary) vs. one-time costs (the workstation). Or worse, standardized desktop builds. You don’t get the standardized things in smaller companies, but the sunk/one-time thing really gets you if the company is feeling the money pinch somehow.

    You’re entirely right that a good investment in one-time costs improves overall productivity. If I’m not being annoyed by my environment, I’ll be more likely to work just that extra bit longer, and won’t view with dread tasks that’ll cause excessive alt-tabbing.

  • Yvonnekins24

    il sito deidicato alla dieta per l’estate raccolta di ricette per la tua cucina

  • stickyc

    Out of curiosity, why do the remote devs get laptops vs desktops? Also, related to expiration policy, what’s the policy on departing devs? Does the hardware get recycled? Can they opt to buy it out (typically more trouble than it’s worth, paperwork-wise)?

    • I’m not sure on the laptops vs desktops, it’s just the way it’s always been. Then can request a desktop if they really want one, but none have. As far as the expiration policy the hardware is recycled, not buy out policy.

  • Marymandahgt

    I would still prefer using Desktop against laptop, even if we have powerful laptops. As time goes by there are so many advanced laptops that’s coming in to the technology world which there are also applications that is only applicable for such laptops. While, in desktop you can change and upgrade the device. There are so many applications now that can be used in remote devs with the desktops. There are also a lot of hardware that can choose from like http://www.shopricom.com/storage_area_network_cid2014 http://www.shopricom.com/EH941A http://www.shopricom.com/Direct_Attached_Storage_cid2000

  • As the owner of a business I have tried to provide my developers the best but its not easy to keep up with all the new equipment coming out. I get my equipment at http://www.ShopRicom.com and they have good deals but still its tough just to keep my business going more less by the best equipment for my team. Point is I want to but I cant always!

  • I agree with server king to keep buying the best equipment would put me out of business too. I also get my servers at ShopRicom {HP procurve server} but that isn’t the answer!

  • Mary Manda

    There are different advantages and disadvantages of Laptops and Desktops. Laptops, advantages you can bring and use them anywhere, the disadvantage is except for it is expensive you can no longer upgrade the Memory. For Desktops of course you can’t bring them anywhere but you can upgrade them with higher Memory and Processors. I have visited the ShopRicom site and I found so many interesting hardware for desktops likeSun SE6X2B11Z Memory KitX7281A Low Profile AdapterSun x7281 Low Profile AdapterSun x7280 Low Profile AdapterSun x4447 Low Profile Adapter

  • Mary Manda

    There are different advantages and disadvantages of Laptops and Desktops. Laptops, advantages you can bring and use them anywhere, the disadvantage is except for it is expensive you can no longer upgrade the Memory. For Desktops of course you can’t bring them anywhere but you can upgrade them with higher Memory and Processors. I have visited the ShopRicom site and I found so many interesting hardware for desktops like

    Sun SE6X2B11Z Memory Kit X7281A Low Profile Adapter Sun x7281 Low Profile Adapter Sun x7280 Low Profile Adapter Sun x4447 Low Profile Adapter

  • There are different advantages and disadvantages of Laptops and Desktops. Laptops, advantages you can bring and use them anywhere, the disadvantage is except for it is expensive you can no longer upgrade the Memory. For Desktops of course you can’t bring them anywhere but you can upgrade them with higher Memory and Processors. I have visited the ShopRicom site and I found so many interesting hardware for desktops like

    HP ProCurve 5400zl HP ProCurve J9447A Intelligent Edge Switch J8700A IBM 5732 Adapter Ethernet IBM 5769 Adapter Ethernet

  • Anonymous

    Really like the idea that simple little changes (pick your own kbd/mouse) can have a significant improvement on morale/productivity within the team.

    I guess the management style question I have is how much extra do you think this is costing you guys per machine? Given a choice of any keyboard in the world how many go for the diamond encrusted, how many just take what you would have given them anyway?

    How much further could you go with it? Thought about letting people pick their chairs?

    • As far as how much this is costing us extra per machine … if you compare it to bottom basement cheap as you can go it’s about 4k or so per machine. For an “average” machine maybe 2k or so per machine. 

      Nobody has actually gone with the diamond encrusted keyboard. And the simple fact is these are our tools, we use what works for us, and what makes us more productive not what is flashy. Every now and again someone says the el cheapo dell keyboard that comes with the machine is fine, they invariably swap it out after about a week or two. 

      We default to an option of the Aeron or Mira chairs. Not one person has complained about the chair we give them 🙂

  • Hi George, I really like your idea. But mostly, the business owner only considers the good deal instead of the quality. Perhaps you can recommend or post to us, some places for getting the best hardware with great deals. Thanks…

     

  • Ian

    Maybe I am getting too old; but as a software dev, I like a stable system, with next day on site support, I don’t wish to be spending my time custom building or sorting out PC problems, I grow out of it many years ago.

    Large monitors, lots of ram and fast disks are also good however if the PC slows down my work, it is my employers problem not mine – so it is not that important.

  • This is an interesting idea. You use scale for buying the best hardware. I think it will cut unnecessary expenses. I would like to read more great posts of yours. Thanks for posting.

  • Ekachakrya krya

      I have a SLES machine that accumulates TCP connections in a CLOSE_WAIT state for what seems like forever. These descriptors then stuck all available memory. At the time, I have 3037 of them, but it was much higher before a hastily-RELOAD recently. What is interesting is that they are not connected to local ports that I expect may have processes listening. They have no associated PID, and timers seem to have expired. anyone have any idea how can i clear CLOSE_WAIT state in this case.

    http://forums.techarena.in/networking-security/1447222.htm