The Insanity of Underpowered Developer Machines10th August 2015
I've been developing at work on a fairly nice Dell Laptop, quad core with 8Gb of Ram for the last couple of years. It was fine for running Visual Studio, SSMS and other tools at the same time but one thing was always slow. The disk. According to the Dell Detect utility it was broken. Around the same time it became company policy to use virtual machines. Great, I could work from home occasionally or my work computer would still exist if the laptop exploded. My disk could be replaced and I could have a new virtual machine at the same time.
When my new VM was built it had 2Gb of RAM and one virtual CPU. Bah humbug. A huge step down from my old laptop. After illustrating how slow it was using perfmon I managed to get it up to 3 virtual CPUs (but still 2Gb of Ram).
Visual Studio ran simultaneously with SSMS Okay, but it was still laggy. If I resumed Resharper the machine would become almost unresponsive.I'm so used to resharper that using Visual Studio without it was like running down the street without clothes. It is odd having to fill in your own curly braces!
I was called a "virtual CPU hog" by some of my colleagues, yes really. Me and my three CPUs! Everyone knows in business that budgets are watched closely and that hardware can be expensive, but really, it's not that expensive.
Let's compare the cost of equipment compared to sitting around doing nothing*, waiting for the machine to do something. Googling for "average developer salary" conveniently brings up $85,320. Let's say they work a 37.5 hour week for 47 weeks per year.
85320 / 47 / 37.5 / 60 = $0.81 per minute.
Pressing F5 in Visual Studio to start debugging now takes 30 seconds longer than my old laptop (even when it had a slow broken disk). How many times a day do I start debugging? 5, 10, 20? I don't count but if it's 20 times a day that's costing $8.10 per day in time waiting for debugging to start. After a month the time spent waiting would equal a load more RAM and CPU in the hyper-visor. After a year a whole server AND a less productive developer.
Flushing Money Down The Drain
If you're someone in a position to be considering doing this. Don't. Looking at the budget is important, but lost productivity and the associated costs of skimping are exponentially larger. It is a fallacy that you're saving money. You're flushing money down the toilet.
Note *: When I said "doing nothing "there's always something to do, but it won't be devlopment, and there's also the frustration time to count too. See Joel on Software Point 9
Writing code in a compiled language is one of the last things that still can't be done instantly on a garden variety home computer. If your compilation process takes more than a few seconds, getting the latest and greatest computer is going to save you time. If compiling takes even 15 seconds, programmers will get bored while the compiler runs and switch over to reading The Onion, which will suck them in and kill hours of productivity.