One of the things I have learned in leading an IT department, is that developer productivity is directly proportional to the equipment that you give them. So instead of giving your CEO a new Dual – Dual Core machine with SCSI drives, think about who needs that power the most. Apart from the servers, the most expensive machines in our office are in the hands of developers – Dual 20″ wide screens, SCSI 15k drives, 4 gig ram, Extreme Edition Dual Cores, etc etc. Also, they have full control over those machines (no “you need to be an administrator to install this” here)
Why give them faster machines?
- They need to run services locally (IIS, CMS, SQL Server etc etc) – these hog memory
- They run all kinds of weird and wonderful applications
- They need to compile large amounts of code, and fast
- The quicker they can test a piece of code, the quicker they can fix it
- If their machines are still responsive while performing a complex query, they can still do other things, as opposed to twiddling their thumbs. If that happens to be reading www.reddit.com or www.digg.com all the better – keeping up with technology is what makes being a developer fun
- They won’t get frustrated, leading them to leaving the “zone” / disrupting their “flow”
- Occasionally, for fun, they play games - let them. It’s great for teamwork and communication. In fact, pretty much everyone here has Nintendo DS lites and we challenge each other during lunch time.
The key, to keeping costs down, is to get them desktop machines instead of laptops. Desktops? That’s so 90′s I hear you cry. But desktops provide a lot of good things:
- You can leave them on all the time
- They are much cheaper
- They are easy to backup (centralized)
- They won’t be dropped
- They won’t be stolen
- They won’t be lost
What about working from home? Well, most developers have their own machines at home, and for the ones that don’t, we have a few loaner laptops. Instead of getting people to develop on their own machines / laptops, we get them to terminal into their machines at work (GoToMyPC / VPN & Terminal Services). This way they have all the files they need, and the performance on their desktop machines.
I also strongly recommend putting your dev machines on their own GB network, so that interacting with source control / other services is extremely fast.
If your developers are not complaining about going home to their slow machines, then I strongly advise getting them faster machines now!