My previous post on value pricing illustrated that billing software projects by the hour hurts productivity. In this post, I'll take it one step further by arguing that hourly billing hurts the project itself.
Over the years, I've worked with a lot of software consultants. The vast majority of them follow a project lifecycle that looks more or less like this:
Steps 8 and 9 repeat until the project is done.
I want to call out two of the problems inherent to this process:
A) Administrative overhead for Mary
Mary is spending up to four hours every week tracking her hours, preparing an invoice, and processing payments. If she has two or three projects going at the same time, she could be losing more than ten hours per week to administrative duties.
B) Bob will start questioning hours
Sooner or later, Bob is going to start reviewing Mary's hours. This typically manifests itself with questions like, "Why did it take two hours to run the data import last week, when it only took one hour the previous week?" Addressing these questions can be a big time suck for both parties, and it adds no value to the project. More importantly, it creates a trust fracture between the two parties.
This behavior usually becomes more pronounced as the actual hours approach (or exceed) the estimated hours. If the web app isn't done and Mary is 50 hours over estimate, Bob is going to become really irritable. In this situation, he'll probably go back over every invoice looking for inconsistencies or items that he feels shouldn't have been charged for.
It's a vicious cycle - more time is wasted debating about hours, mutual distrust is increased, and the project is further delayed.
Most consultants try solve the inherent problems of hourly billing by optimizing the process. They think the solution is to use better time-tracking software, or to integrate their CRM with their accounting system, or - my personal favorite - to bill clients hourly for time spent resolving disputes about hours.
It is true that optimization can make these problems less bad. However, optimization treats the symptoms and ignores the disease. The real way to solve the inherent problems of the hourly billing process is to stop billing software projects by the hour. When a project fee is based on the perceived value to the client rather than the hours of the consultant, the issues listed above simply evaporate.
A software project is a goal oriented, ongoing collaboration between client and consultant. A project can't be a true success for both parties without this mutual trust. Mutual trust is the natural result of the two parties sharing in the risk (and reward) of the undertaking. Value based pricing creates a shared risk/reward environment.
To be continued...