Friday, July 14, 2006

The Unproductive Programmer

As a consultant in the IT World, I never know what I'm kind of client environment I'm going to end up in. I'm not talking about the politics and interpersonal aspects you find in the workplace, but rather the technological ecosystem. What kinds of computers will this client provide? What do the development/test/production systems look like? Do we have a test/stage environment? The list goes on.

In my current company, we generally take what the client provides, and my current client has provided some rather dusty, old machines for us. My machine has 512MB RAM and a 2.8 GHz P4 processor. Doesn't sound too bad until you consider that in a normal workday, I'll have VisualStudio2003 with ReSharper, Outlook (outbreak as my colleague Neal Ford likes to call it), and a VMWare instance of WinXP which I use for changes to the legacy VB6 system they have here.

The combination of VMWare and VS2003 proves quite deadly at 512MB RAM. I'm lucky if I can get both of these apps to stay open at the same time. Usually, if I have VS2003 open and try to open VMWare, as VMWare is launching, it will just disappear (watching my system resources, the available physical RAM dips to about 2MB!).

I suspect that in a given 8 hour workday, I spend at minimum, 10% of my time waiting for my computer to do something, and more likely, around 20% of the time waiting.

So, how much is this "cost saving" hardware really costing my client? Let's say I'm billing $60/hour (since this makes the math easy) -

Optimistic Lost Productivity:
$60/hour * (8 hours * 10% lost productivity) = $48/day in "lost" time

Wow, that can really add up over the course of a 6 month client engagement -
130 days * $48/day = $6,240 in lost productivity time over the course of the 6 months

A more modern machine like a nicely spec'd out Dell Precision 490 that I configured to a decent level of performance, and included 2 17" monitors, would be about $3000 to purchase, or maybe more cost effectively, lease at say, $120/month. Suffice to say; moving a team of 5 developers from "old tech" so something along these lines should decrease the lost productivity exponentially.

I guess I don't know what forces are at play that would "save" all this money by keeping all these out-dated computers around and have people spending countless hours waiting for their machines to catch-up.