Thursday, January 24, 2008

Bills and Billability

Contract work is a difficult game. You have to provide a product in a timely manner...but you only get paid for the time you spent on it. No one gives you a bonus for getting the job done early, but you can guarantee that it'll hurt you when you're late.

Most companies have to go by the hourly model: how many hours an employee spent working for a client seems to be the most efficient unit of measurement. Unfortunately, it's also a giant wrench in the works of your process. I know companies that make "billability" their policy. Some of them even claim "100% Billability is MANDATORY!". This simply cannot work.

The moment everything has to be billable, work becomes a game of hot-potato. People focus more on getting someone else to do the work while they write down that they billed for it. Hours get rounded up (and padded), productivity goes down, and people get stressed about who's going to pay for bathroom breaks and general ass-scratching time. This also means that any time someone is looking at a work estimate, the side wanting to close the deal is looking to trim the hours down, while the people doing the work are trying to keep their feet out of the fire more
than they're trying to honestly assess how long it will take. Padding grows.

That's just the beginning. Companies that emphasize billability can't charge the client for the time they took to drive to their office and meet with them. They can't charge for the time it takes to figure out what needs to be done and work up an estimate. And they can't bill for
any time that might be spent making sure the end product works without breaking and can be used by the client.

Worse still, the client doesn't want good code. They don't want elegantly-written, efficient programs because those take time. Get it done, and get it done yesterday. Documentation is the biggest casualty: even if your programmers don't leave the company, even if no one else is
assigned to the project, that same harried programmer can't sit down 3 months later and remember what he or she wrote. It doesn't work that way, any more than you could recite word for word an e-mail that you sent last week.

Suddenly the add-on possibilities become enormous: testing costs money, but bug fixes are billable. If my application breaks when it gets on your servers, even better: because now you have to pay me to come on-site and work with your people to get things right. Best of all, if the
client mis-spoke, or they forgot something, or they just feel you misunderstood what they wanted, you're off the hook: that's not unbillable hours, it's a Change Order. Or an Enhancement.

I once had a company tell me that the Hourly Model was perfect because it was "just like a Law Office, and those guys make a lot more an hour than we do." I talked to a lawyer I know: he said that the greatest loss to his practice has been mentoring. Junior partners are
reluctant to ask a simple question in the hallway because they'll find their mentor just charged half an hour to their client for the answer.

As a result, nobody gets better: they just get by.

No comments: