I often get asked what hardware I would recommend for software developers, each time without fail I have been asked about my sanity.
Admittedly, at least to non-IT people, I probably often sound insane, just ask my boss.
The truth though is not as insane, most developers will need a machine that meets the following requirements:
- Run an office package
- Run a database at acceptable speeds
- Run the development IDEs and compilers at acceptable speeds
- Run a virtualization environment at acceptable speeds
Add an Instant Messenger, often Skype, a browser or three and a music app.
You may ask why the virtualization environment and the music app, let me address the virtualization environment.
The latest trends in software development use virtualization to ensure that the configurations and setup of the development environments match the production environment and everything in between. An example of this is the rise of docker in the development space. It also allows the developers to use virtual machines for other simulations, I often run an entire data center with load balancing and firewalls to ascertain risks and how viable the design is. I will admit that this is an extreme use case but running a web server, application and a database server is a regular occurrence. To be able to do any of this a computer with as many cores as possible, lots of memory and lots of drive space is required.
What about the music app? I will refer you to another article I recently wrote entitled Interruptions in the workspace.
Before I do a few calculations and give my recommendations, let me add one piece of hardware to the mix, web developers require 2 screens! Simply because they do not have to switch applications, one screen for the development IDE and one for the application. It saves time as the developer does not have to find their space on the screen where the code is after each switch.
In my calculations, I am estimating the time of execution and adding the frustration factor resulting in productivity losses.
Though this is not scientific by any means, this is observed behavior.
|Cost of the|
|Compiling||32||30 sec||72 h||R 18 000||R15 000||R 3 000|
|Task switching||128||5 sec||48 h||R 12 000||R 10 000||R 5 000|
|Boot time||2||5 min||45 h||R 11 250||–||R 16 250|
|Disruptions||8||5 min||180 h||R 45 000||R 4 500||R 56 750|
The baseline was calculated with the following values:
- Developer average cost at R250 an hour at 8 hours a day on 22,5 days average a month (R 45 000 / pm)
- Cheap Laptop price R 15 000
- Developer laptop R 30 000
- 2x 27′ Screens R 10 000
- High end over the hear headset R 4 500
The theoretical savings are over a month salary for a single developer, even if you negate the disruptions remember that a slow computer comes with frustrations and that affect productivity, the savings are over the price of the cheap laptop.
The disruptions would also need some education to be reduced that is not factored here.
I think this clearly demonstrates the value of better hardware for developers.
The hardware recommendation
As of today, the specifications here below will cost less than the R 30 000 stated earlier.
- Minimum 4 physical core processor, i7 with hyper-threading at highest possible speeds and maximum cache
- Minimum 16 GB RAM
- Minimum 250 GB SSD drive
A laptop is preferable, so your developers can work flex-time
My recommendation? Do not try to save on hardware, it will cost you more than you think.
These costs may not be tangible is the strict sense of the word, which makes true calculations difficult, but they become evident over time and number of employees.
Lastly, you get what you pay for, I found that laptop gets knocked around a lot, better hardware may just save on maintenance or repairs and thus downtime and IT support costs.