When does it make sense to throw hardware at a programming problem?

programmers are expensiveIn a chat today, my DiversityJobs.com lead developer showed me this great blog post to make a point:

Hardware is Cheap, Programmers are Expensive

Given the rapid advance of Moore's Law, when does it make sense to throw hardware at a programming problem? As a general rule, I'd say almost always.

Consider the average programmer salary here in the US:

Ouch, do we really need to see graphs?

For example, I just bought two very powerful servers for Stack Overflow. Even after accounting for a third backup server and spare hard drives for the RAID arrays, my total outlay is around $5,000. These servers, compared to the ones we're on now, offer:

* roughly 50% more CPU speed
* 2 to 6 times the memory capacity
* almost twice the disk space (and it's a faster RAID 10 array)

Under this new hardware regime, we can expect average page response times to improve by about half. All that for less than one month of an average programmer's salary.

I'd say that's a great deal. A no-brainer, even. 

Yep, and the math works almost the same way in Brazil, Argentina or Mexico... good programming is expensive almost everywhere.  Add in your opportunity costs, the cost of being slow to market in a hypercompetitive environment and you've got a no-brainer even with a team of Chinese or Russians!

 

related stories:


login