Justifying Faster Computers
By: Cedd Burge
Tags: Justification, Hardware, Lean, Metrics, Software Development

This article discusses how we justified purchasing faster (and more expensive!) computers for the software team at RES.

Around a year ago, I wrote an article about improving our speed of development and measuring our build times in Visual Studio. I was hoping to roughly halve the time we spend compiling code, and I’m happy to say that we achieved this comfortably!

Waiting for code to compile is a waste of time and source of frustration for developers. Writing code requires intense concentration and focus, and regaining this focus after an interruption or delay can take up to 20 minutes.

We have reduced the amount of code that requires compiling through various dependency breaking efforts. Breaking dependencies is a great thing to do for code sustainability so we’re happy we did this, but the main improvement came when we purchased faster computers (and we already had perfectly respectable ones, with primary SSD drives and good amounts of RAM). These new computers cost around £2000 (compared to under £1000 previously), and were about 3 times faster when opening solutions in Visual Studio and when compiling.

Making a Positive Change

When I realised upgrading our developers’ hardware had the potential to make a big impact, I immediately faced the challenge of convincing others and had to push against the inertia of the status quo.

RES is a fairly big company (2000 ish employees), and the software team is a small part of this (20 ish employees). This means that our IT team have optimised the hardware and processes for the 99% case, and are understandably not super keen on making an exception for us. It also means that the people that we need to persuade are organisationally quite a long way removed from us, and have no first hand experience of our issues.

Cost Savings

Initially I estimated how much time we were wasting, using the known values from our build time measurements, and extrapolating out to include harder to measure waste, such as git operations, opening programs, running tests, lapses of concentration and so on. This showed that faster computers would create a conservative annual saving of £4000 for the team (net of the additional procurement cost).

Staff engagement

At this point, I thought that the job was done, and that one week later we would all the strutting around with the latest and greatest machines.

However, after speaking to some people it became clear that it wasn’t just about the money. The “way things are” exert a powerful force on our thinking, and this hump needs to be overcome. There are also a lot of very valid points to reflect on:

IT have to change their processes just for us, which takes time and adds complication

Differential hardware could cause friction within the company

Maybe a small / targeted / cheap improvement to the specification would be just as effective

You could argue that developers should have slow machines, so that they experience their applications as the users do

So money is important, but is only half the argument. The other half is the people. I was hoping to find some literature on how faster computers affect employee retention and engagement, but unfortunately I couldn’t find any numbers. However there were other avenues to pursue:

RES has an annual staff survey, and cares about the results. Two areas with room for improvement relate to trust and decision making, so we proposed that software developers are trusted to decide on the hardware that enables them to do their jobs.

Computers are definitely part of the support that RES gives its programmers, and “High Challenge, High Support” is a key theme in RES management training

Quotes from well regarded software people, advocating for fast computers

If you are waiting for your computer, you are wasting time. I don’t care if it’s your operating system, your text editor, or a hard drive. If it’s making your wait, swap it out — Scott Hanselman, Microsoft

We use Stack Overflow for recruiting, which displays our answers to the Joel test. Fast computers would allow us to answer yes to the “Do you use the best tools money can buy?” question

We looked back at the two exit interviews from the last couple of years, to see if hardware was a factor, and it turns out that hardware was cited as a problem in both cases.

This staff data combined with the cost savings allowed us to create an informative and influential presentation, which was well received by the business. Our plan was subsequently approved by the key decision makers and has now been rolled out to our software developers. Developers love the flexibility of choosing their own hardware and benefit greatly from improved performance of their development environment. Anonymous before and after surveys, showed a 5 fold improvement in team satisfaction, and contained comments such as:

“My new laptop has been a great aid to getting my day to day work done, I have really noticed the difference in performance”

Following the success of the scheme there are now plans to extend it to other departments that do computer intensive work.

Conclusions

Surprisingly, for me at least, justifying faster computers at RES was more than just about the cost. The cost savings were important, but the business was even more interested in how the proposal positively affected it’s people. Effectively communicating the wider benefits helped achieve a positive change which is now fully embedded in how we write software.