In this post, I’m going to walk you through the real-life situation that made me realize that something was fundamentally wrong with the concept of billing software projects by the hour.
Before we dive in, I want to start by defining what I mean when I use the word project in this context:
Project: A collaborative enterprise that is designed to achieve a particular aim.
This is a fairly specific definition of the word project. I’m excluding things like minor fixes, emergency support, plug-in development, etc. I’m specifically talking about the kind of software work that will require ongoing input from the client and will have a life-cycle of at least a week from inception to completion.
Anyway, here’s my story:
Years ago, I was managing a small software development firm that built custom workgroup software. At the time, we had 10 developers and billed projects out at $150/hr. The most senior developer was a guy who I’ll call Fred, and the most junior was a guy I’ll call Barney.
Fred wrote elegant, bullet-proof code and he did it fast. He was totally self-managed, fun to be around, and had stellar customer satisfaction numbers. We paid Fred $90k per year.
Barney was just starting out in the industry, and as such, he wrote a lot of spaghetti code and it took him a long time to do it. He needed a lot of attention, encouragement, and training. Although he wasn’t the greatest coder, he was very personable and kept his customers quite happy. We paid Barney $45k per year.
At a certain point, money got really tight and we had to consider every alternative, which included the possibility of letting someone go. Fortunately, it never came to that, but the situation did reveal a bizarre truth:
If we fired someone, it would have to be Fred.
This was completely counter-intuitive because we were in the business of writing software and Fred was better at writing software than Barney. In fact, Fred was better at writing software than anyone I’d ever worked with and we were lucky to have him at all.
However, Fred was fast and expensive. He burned through projects so quickly that we sometimes couldn’t get new clients fast enough to keep him busy. And when we did have work for him, he would bang it out quickly and efficiently.
Barney, on the other hand, was slow and cheap. Once, we gave him a project that would have taken Fred two weeks, and Barney was still billing hours against it six months later. We were paying Barney half of what we were paying Fred, but Barney was bringing in steady money from a single client, and for a long time.
I just couldn’t reconcile this situation; I knew something was wrong. My head told me to keep Barney, but my heart told me to keep Fred. After weeks of struggling with this puzzle, I was eventually forced to question the underlying assumptions of the business. And that’s when the light bulb went on:
Billing by the hour for project work makes no sense.
To be continued...