Friday, December 12, 2008

Scraping the Bottom of the "Developer Productivity" Barrel

Patrick Smacchia writes a blog post about how buying a Solid State Drive will produce a worthwhile increase in developer productivity.

He cites a few self-run benchmarks. A couple are impressive: a certain build shaves off 2 minute and 14 seconds (a little under 50% faster), and running 1846 NUnit tests brings a 2 minute and 40 second process down to 37 seconds (about 80% faster). The rest... not so much. Most are cutting scant seconds off of already quick processes.

I do believe that there are some expenditures that are worth it. Developers spend 8 hours a day sitting, so buying them extremely comfortable chairs makes a huge difference. Similarly, developers spend 8 hours a day looking at their monitors, and buying them each two large monitors allows them to keep their work and minds better organized.

This SSD claim does not seem to pass muster. Look at the difference. An internal 80GB Intel SSD costs $559.99. How much does a normal 5400RPM internal 80GB drive cost? Well, I can get this Western Digital one for just over $40.00.

That means the Intel one costs almost 14 times as much. If I'm buying this for my developers, I want to make sure it's cost-effective. Let's say I pay my developers an average of $52.00 per hour (to make the numbers easy). That means, to justify the extra $520.00 I'm spending to get this SSD, it needs to save them 10 hours over the course of their time with me. That's 268 of those builds mentioned earlier, or 293 of those sets of NUnit tests.

Is this an outrageous number? No. But it's also not an obvious win, like buying a pair of large monitors or a comfortable chair. It's scraping the bottle of the barrel, to say the least. Unless he's got a super awesome chair, a couple 24-inch monitors, and all the other productivity staples, I'd say his money would be much better spent elsewhere.

2 comments:

  1. I believe you are missing an extremely important point: ego

    As every human being developers expect respect from their hierarchy and spending a few hundreds bucks to make their life easier is not a luxury. And buying 5400 RPM HD while 7200/10000 RPM and even SSD exist, it is not really demonstrating respect.

    Also, often when a 1 minute process begin, developer will likely take a small coffee/toilet/collegue rambling... that will end up in a 5/10 minute loss of time + the time the developer re-enter its current development context. So shrinking from 1 minute to say 20 seconds can be a much massive improvement.

    Another thing, encouraging long time delay spent in running tests will foster not run tests at all, and this also has a consequence in the overall quality of the software.

    As long as developers ask for SSD, monitors and good chair, and not for BMW, do a favor for your team, buy it.

    ReplyDelete
  2. This is a great point. I have only worked at a full-time software engineering job for a single summer, so I haven't yet experienced things like this. Now that you mention it, I can see how, if something may or may not pay for itself in efficiency (like an SSD), it's worth buying for the X-factors (ego, encouraging good testing, avoiding little breaks, etc.). I would still argue that you should ask for the lower-hanging fruit first (monitors/chair), but assuming you've already got them, I can see how it would actually make a difference.

    Thank you very much for taking the time to respond to my blog post. I'm just getting started, and I really appreciate getting feedback from someone I've been subscribed to for a bit.

    ReplyDelete