When you are choosing a PC for development work to get the maximum productively there are the following factors to consider:
- CPU Speed
- Storage( e.g SSD)
Also for each of the above, I will also provide some guidance on return on investment. After all, there is no point in overpaying for a PC also we need to consider how much the average developer earns. Based on developer salaries in the USA the average salary is close to $100,000 or around $50 per hour.
Developers are expensive, so it’s important to give them great equipment so you can get the best value from them. A slow less expensive computer is a false economy, as the small cost difference in getting fast computer will be quickly recovered from the increased productivity of a developer.
One of the worst things for developer productivity is interruptions, as it can take developers 15mins+ to get back to being productive. So the slower the PC the higher the chance a developer will be interpreted. Waiting minutes for a computer to finish a task will result in the developer’s mind wandering(after all we are all human). Then it will take time for the developer to get back up to being productive, these interruptions need to be avoided at all costs.
Modern development is very intensive on computers reasons, most build processes are multi-core now, unit tests run on build or code changes, web pages are updated with the latest code, mobiles emulators are updated etc. It’s very easy for a development computer to become slow. Which introduces interruptions to the development workflow and hence non-productive for a developer.
This can make a surprising difference in how much time a developer ends up waiting on the PC. Here is an example of the difference it can make.
I have an HP Workstation Z420 with a Xeon E5-1620 and a PC with an Intel Sandy Lake i7 6700k overclocked to 4.6gzh. Both are quad-core processors. The i7 is 2x as fast as the HP workstation in compiling code(5mins vs 2.5mins)!! I was very surprised when I ran the benchmarks. I though the Xeon CPU would give the consumer i7 CPU a run for its money. I was very wrong.
Since the cost when ordering a computer is only a few hundred to upgrade to the fastest i7 processor it is well worth the investment. Especially considering most computers are good for three years or more of use.
For the CPU I would recommend the fastest quad-core i7. If you find like me that your CPU is sitting a lot of the time between 50% to 100% utilization, then consider intel’s latest 10 Core i9 processor. The productivity gains from the increased performance would pay for this upgrade.
This one is a no brainer, just get SSD’s as they are x100’s of time faster than an HDD. Why wait minutes for a reboot when it can happen in seconds. As well as opening apps 10x quicker.
I would recommend the following setup:
- One for the boot drive – 512gb
- One for the source code -512gb or larger
- One for Virtual PC’s – 1tb or larger(if required)
- One large HDD.
The boot drive should always have it own SSD and the source and all development files on another SSD. This setup provides a clean separation between the OS and the source code. When the PC needs to be rebuilt the OS drive can be safely formatted with no risk of losing any source code.
Also since virtual PCs than to take up a lot of space, I give them their own SSD to be stored on. A common problem is that virtual PCs can use all the disk space. When they are on their own SSD they won’t affect the OS or Development drive by causing it to run out of space.
The HHD in my system is used for backups. I use CrashPlan to keep all my changes backed up locally as well as remotely.
There are a number of factors to consider for this.
For the web or mobile development, 32gb is a great starting point. I normally use around 24gb of ram when doing web/desktop development, so 32gb leaves a bit of space for other tools.
When using virtual PC’s to simulate other servers or development environments, then 64gb would be the best. Then you have the headroom to simulate and test some quite complex environments.
For virtual PC’s I also have another computer under my desk that is dedicated to virtual PC’s. Virtual PC’s can be demanding on what resources they need. This is my old development PC but it is more that up to the task of running the virtual PCs and is also a great way of recycling old equipment.
What you do not want is for your computer to run out of memory and start paging memory to disk. Then your computer will be running 100X slower as paging even to SSD’s is massively slower than using computer memory.
Adding extra Monitors boosts your productivity. There are a number of studies showing a second monitor will boost your productivity by 35%!! That’s an extra $30,000+ worth of work each year for the average developer, for a $500 monitor. This is an amazing return on investment.
I run three monitors which I find a perfect number for web development. One monitor has the IDE(e.g Visual Studio) and next one the website I am working on and in the third one other tools I need like database tools, specifications etc.
Tip: Always hide/close email and team chat windows(e.g Slack), that way you won’t get distracted when working. Having then opened in one of the monitors is just asking to be distracted.
Having upgraded to 27″ 4k monitors I have found these to be brilliant to use, they lower eye strain and allow you to concentrate for longer.
For a new development PC I would recommend the following specs
- Intel i7 or i9
- 2 to 3 SSD’s, One HHD
- 32Gb -> 64 GB RAM
- 2 to 3 27″ 4K IPS Monitors.
The extra $$ to upgrade to the fastest computer components will quickly pay for themselves through the increased developer productivity.