Yet, by far the most expensive cost in software development is probably slacking off in the hallways, waiting for code to compile. Joel Spolsky – who writes the JoelOnSoftware blog, and manages the dev team at Fog Creek Software, recently wrote about his quest to shorten a thirty-second compile for the developers on his team. Thirty seconds! I have a hard time getting engineering managers to think about improving thirty-minute builds; reducing a thirty-second cycle time feels like an awfully small gain.
Joel wrote about looking into using solid state disks to speed up compile times – this seemed cheaper than having the engineering team spend ‘a few weeks’ optimizing their build process. Eventually, Joel concludes that an SSD doesn’t solve his problem – his compiles aren’t I/O bound – but that the responsiveness of the machine’s UI, and thus the happiness of the developers, is worth the six hundred fifty dollar price tag. Let me repeat that: $650 per developer, to save a few seconds per hour. Madness?
There’s a method to Joel’s madness. Just take a look at the cost of a Software Developer (Salary.com) – $150k per year (fully loaded) to keep the bit factory spinning (and the hallways defended from the Black Knight, apparently). What does that translate to in business time? 150K/year is about $577 per day, or $72 per hour, a little over a dollar a minute. (Hmm, maybe we should replace the developers with psychics? [SFW] Gathering requirements would be a snap!)
One of Electric Cloud’s large enterprise customers took a fresh look at their ROI analysis for the purchase of ElectricAccelerator. Originally slated for just the build team – poor souls with 4 hour builds – the product was also evaluated for developers, coders who averaged a 20 minute incremental build each. To make the ROI rock-solid and realistic, a 4x speedup was assumed (actual results were over 8X.) This served to offset objections like “my developers do other work while waiting for compiles.” Even using the conservative speed figure, that build manager saves three hours per build – which translates to 25K in savings over a year. Each build manager serves a fifteen-developer workload, and each fifteen-person team, now with 5 minute builds (4x on their 20 minute incrementals), saves $325,000 per year.
So I don’t think Joel is crazy at all. He’s spending $650 per developer to save, let’s say, two minutes per day. At that efficiency, he’s saving money – $780 in savings over three years, for a net of $130 per coder. Just think what a 4X speedup on his builds could do!