I’ve been working full-time as a contract programmer for a few years now, and have recently begun to realize something very disheartening:
My clients get a lot of shit for free.
Now, that’s not disheartening in a “they get stuff I don’t get” sort of way. I mean, good for them. I’m a happy person who likes spreading happiness, so I’m not against them getting shit for free on principle. The problem here is that my clients get a lot of shit for free that I do– and thus, it means that I’m doing a lot of work for free.
Today is a perfect example of this. Today I did some quick work for a client that submitted a request using my ticketing system. Since I wasn’t actually working for someone else at the time, I went ahead and tackled it. The time I spent on that, from initially seeing the email to completing it barely scraped 20 minutes. I loosely round to 15 minute increments, and generally don’t charge for a quick 5-15 minute bit of work. Thus, I did that for free.
Then, since I was already outside of a context, I checked my email, and there was another request. Similar thing, similar outcome. A wee bit of unbilled work.
Then, there was another request from another client. This one took about 45 minutes. So, I went into FreshBooks and went to bill them, only to realize that it was the first time I was billing them this month. I’ve worked for that client almost 4 times already this month, and this is the first time I’ve billed them.
I am extremely hesitant at this point to back calculate just how many of these little things I do without billing.
When I was working in environmental consulting1, I had this ridiculous billing sheet that I had to keep. It was 10ths of an hour, which makes sense from a percentage perspective– easy calculations– but becomes mind-numblingly frustrating when you have to actually write down the fact that you used two billing increments because it took you 10 minutes to go to the bathroom!
I mean, think about that: 10ths of an hour: 6 minute increments. Imagine tracking what you do by looking at every 6 minutes! “No, I don’t have time to glance at your stupid Star Wars link, that’s like 2 whole minutes!!”
I thought I would go crazy at that job. And yet, oddly, lately I’ve become to realize that it makes an insane sort of sense. My base rate is $85/hr, which means that one of those billing increments is effectively $8.50, which means that my “barely scraping 20 minute” task that I did for my client was worth $25.50.
Again, I am extremely hesitant at this point to back calculate just how many of these little things I do without billing.
And so we have a problem. I basically refuse to bill more harshly– admittedly out of my own laziness– but continue to have lots of small contracts which, by their very nature, necessitate harsh billing. It makes my relationship with my clients more lopsided, which doesn’t stay positive. I’m starting to realize that this is far from a “good deal” for my clients. In fact, it’s a pretty bad thing.
Think about it. I do work for my clients for free, and I do this free work all the time, right? That’s great because my clients are getting stuff and not paying for it, right? Wrong. The more I do work for free, the more working for this client becomes a burden, either real or perceived, and the worse my work gets. I get less engaged, and more frustrated, with every task.
That’s not good for either of us. Good business isn’t about getting shit freely. That’s a fallacy. Good business is about getting shit fairly.
Lawyers. Those bastards.They do this thing which I always thought was really shitty and unfair. They charge you for work they don’t do. It’s this scam they have called “being on retainer.”2 They charge you this monthly amount for work they “might” do. If you call them, you pay. And if you don’t call them, you pay. Then, if you want them to do a lot of work, you pay more!
I understand this now.
Lawyers aren’t bastards at all, and they are not scamming at all. It may not be perfect, but what they are doing is trying to get as close as possible to “fair.”
This is why my lawyer doesn’t charge me when I call to ask a simple question, yes. But more importantly, this is why my lawyer is actually engaged when I call to ask that simple question. I now realize why the lawyers do what they do, and I have to say that it’s a seriously good idea.
I’ve got a couple clients that I don’t hear from for months, who will then call with work for me to do. This is a bad situation. Since I’m not getting paid unless they call me, I have to take on other work, so I fill my schedule, book myself up, then get this call from someone asking me to do work, and I can’t.
At that point, I have no time for work. It’s not like I set aside time just in case they called me. I can’t do that and survive. So we’re screwed. There’s no good solution, and anything we come up with is the least crappy choice of either “fitting it in” or doing a less than perfect job just to “get it out of the way” or even saying “sorry, you’re out of luck.”
Here’s the thing: I want clients who value their own work, who take their own work seriously– seriously enough that they demand that I take it seriously. Because I take my own work seriously. I spend enormous amounts of time working to improve myself, to work better. I value my work, and I want clients who value me.
I’m no longer working hourly for any contract that is not a significant portion of my time. My plan is to set a “retainer rate” at some fraction of my base rate, which my client will pay monthly in exchange for me guaranteeing that they have a certain amount of hours. Those are hours that I don’t have to fill with other work. Those are hours I can set aside for my client, and if I don’t use them for my client, then great, I use them to work anyway, learning another framework, or another language, or just playing with a design pattern, or refactoring something in their code. All of which makes me better, and more valuable to my clients.
It’s all about value.
Retainer doesn’t mean “I’m charging you for work I might not do.” Not at all. I see that now. Retainer means “I have to find work, and you’re going to get shoved aside and treated like shit, unless I don’t have to find work.” Retainer means “You value your business enough that you don’t want stuff to ‘maybe get fit in.’” Retainer guarantees access, but more than that, it guarantees fairness.3 It says “I care about my product, and I care about it enough that when I want you to work, I don’t want to wonder whether you can.”
It shows that the client values their product, it certainly shows that the client values me, but most of all it shows that I’d damn-well better value this client.
That, my friend, is good business.
Actually John, in lawyer land retainer funds are held in escrow until some sort of work is done, at which point they are paid to the attorney from escrow. There are some exceptions (the most significant being subscription or “prepaid” arrangements with a lawyer) but generally speaking you can’t get the moneys unless you do something for the client. The easiest way to get into trouble with the bar, in fact, is inadequate accounting of your various funds – money that’s “yours” vs. money that is your client’s until you do something to earn it.
You are under no such constraints, of course, and subscriber/retainer/help me help you models appear to be all the rage in your line. Where retainer arrangements come in handy, though, is the situations you describe. If a client is periodically calling for a “follow up” or “fix” to the stuff that you did for them, and there’s no pre-existing arrangement, the relationship gets tense. And you don’t necessarily want to run the clock in the same sense that a lawyer does (in six minute increments, all day, for the rest of his or her life).
Anyway, my nitpick has nothing to do with the central thrust of the article, which is that everyone’s time is immeasurably valuable. Sustainability and fair play are as close as we can get to an appropriate measure, and I applaud you for thinking hard about it.
Any news yet on the ducks? I’m goddamned PUMPED for the ducks.
J-P, that sounds like an even better model. Then there’s just no real worry about the issue of fairness. Still, it’s a bit weird to think “Okay, I’ll put aside 10 hours every month, and you might come back to me in six months with a solid 60 hours of work I owe you.” Which brings us a bit back toward “I’ve no time.”
Overall, it seems better to come to a pre-arranged agreement where a company assumes they need around 10 hours of work, and pays for that via retainer, and I might only do 8 hours of work for them that month, but could spend the other 2 hours doing something that pertains directly to their project. Investigating possible ways to refactor their models, or to work on their database, or something. Basically, something that indeed helps them, but would also help me be a better, and more valuable, developer– and could also help others.
It wouldn’t necessarily be a direct “working on your project” but it would be and indirect “making your project better” with the understanding that there’s time I spend on other projects where I learned things to make theirs better. And since my retainer rate would be a fraction of my actual hourly rate, even that cost might come out in the wash.
Your reply is completely lacking in ducks.
I think that the arrangement you describe is not only fair but cool. Imagine the number of times you thought “if this had a magical pony button, it would be hella sweet and useful too,” but because it’s outside your remit, you don’t add it in. With “spare” time in a contract (which you can always pitch as a legitimate estimate of time required “plus 10% awesome”), you have the ability to install the pony button.
Think of all the people at Pixar who spent their spare time creating more rubble in the fight scene of the Incredibles. Or something. Buy some ducks, you tease!