Mon 5 Jan 2009
I’ve now been freelancing long enough that I can talk about some of the things I’ve learned from it. And without a doubt, the biggest thing I’ve learned is the link between effort and reward.
In a normal job, this link is pretty nebulous. You can work for two hours, catch up on some blogs or TV, and run some errands, but if you manage to say one or two clever things in front of your boss that day you will probably remain employed.
If you’re in the top 10% smartest workers, an average of two or three hours of work a day is probably enough to exceed the productivity of almost all your coworkers, and not only keep you employed but keep your bosses somewhat impressed. You can earn a comfortable living this way, and have a more relaxed lifestyle than just about anyone who’s not retired. But you will not be challenged.
Billable Hours
Freelancers usually bill by the hour. An hour of hacking on the project is billable. An hour of reading blogs about technologies you might consider using in the project a few months from now is not billable. An hour spent at the grocery store at mid-day is not billable. Even twenty minutes spent “resting” in the “restroom” is not billable.
You might not believe me unless you measure, but I think an average workday for most computer programmers involves about 3 billable hours of work. Furthermore, there is great variance in the amount of billable time you’ll get each day over a week or two. Some days you’ll rack up 6 or 7 billable hours, maybe even 9 if there’s a release coming up and you’re loading up on coffee. But you’ll easily revert back to a low average with a day of zero billable hours.
I found this out when I started noticing that on a low-energy, mediocre day of freelancing, when I felt I had basically been at work all day, I’d often end up with as little as half an hour of billable time.
Half an hour. I don’t think I’ve ever been exceptionally stupid or exceptionally lazy, but I do tend to procrastinate, and by golly, I’m good at procrastinating. I am so effective at delaying work that I didn’t even realize how effective I was, until I thought about how much money I made on one of these days and realized that it wouldn’t even cover my rent for the day. Let alone ramen noodles.
The billable hour is, to me, a matter of professional ethics. I don’t assume that a workday consists of eight billable hours, and just parcel up whatever I did that day into those buckets. I consider time billable when I’m actively creating value directly for the client. I’m sorry that sounds nauseatingly corporate, but it’s the best I could come up with.
So getting more billable hours, i.e. making more money, is not a matter of being clever or knowing some trick. It’s a matter of stamina.
Programmer Endurance Training
Once you start to see your monthly paycheck as an endurance challenge, a few things change. You start to value consistency more, and brilliant ideas less.
That was kind of hard to write. Putting it that way seems to hide the intellectual challenge of making software, as if it’s just a matter of putting in the time and following a plan, like painting a house. What if I just become a thoughtless code factory, like some sort of pathetic outsourced ASP.NET programmer who just wishes he could charge by the line of code?
That hasn’t happened yet. Instead, I’m awakening to the patterns of lies I used to tell myself about the quality of my output. I know I can’t reach perfect consistency: sometimes I’ll have awesome days when I get a zillion things done in six hours, and other days I’ll only be able to crawl along for four hours of work before some welcome distraction proves irresistible.
On the other hand, I’m now acutely aware of when something I’m doing doesn’t qualify as work. I have a good idea of how many billable hours I can work daily without burning myself out. And this way of thinking and planning is useful not only for doing the work that pays my bills, but for any work I care about.
And so, after a few months of freelancing, I know that I have learned to work much, much harder than I ever did back when I had a salaried job. And I can work that hard for a client, or for myself, or a bit of each.
Really, I can hardly believe how lazy I was.
Full Entries RSS
January 5th, 2009 at 10:07 pm
Nice, I totally agree. I’m also an expert at pushing work off!
January 5th, 2009 at 10:40 pm
Thanks; I also went from large corporation to freelancer and what you say echoes my experiences exactly.
January 5th, 2009 at 10:53 pm
Thank you for writing this.
January 5th, 2009 at 10:58 pm
I am so glad, u shared this
I have been freelancing for a while… and I also had similar realisations about work/productivity/billable hours… I still have a big question in my mind… How should the real fact of max 5-6 hrs a day be advertised to clients… I have had hard time convincing clients(non programmers) that as an average of productive hrs / day even 4 good programmers can not be more than 6 hrs. I get to hear, “I know of a geek who works 16hrs/day ,I have seen them working in friends office to complete stuff in a day or two, so dont bullshit me about productivity, I will rather hire them” . I am really curious about your thoughts/experience for improving productivity hile coding & how to measure productivity and advertise it to people…. When in market, there are plenty of people to fool these clients and spoil the market
January 5th, 2009 at 11:18 pm
Heh, this is pretty much the exact post I would have written if I’d followed through on setting up a freelancing blog. I remember one day in particular where I got up early to get work done and, at the end of a long day, realized none of it was billable. I stopped freelancing to focus on a new/different business, and man, I don’t miss it.
Re: the guy who posted before me, if someone is giving you crap about how many billable hours you can fit in a day, tell them you’d be glad to bill them for emails, phone calls, estimates, contracts, research, and the various other travails of day-to-day freelancing
January 6th, 2009 at 3:54 am
Sounds like you are ethnical. Unfortunately, there are plenty of idiots out there who are just looking to make a buck.
I had idiots on odesk multiple times try to charge me for setting up a dev environment. I mean WTF?
January 6th, 2009 at 5:07 am
It helps always to poop pants.
I hightly recommend IT!
January 6th, 2009 at 7:23 am
One way to avoid this problem is to charge a daily rate instead of hourly. This is what most large strategy consulting companies do. Another is to charge based on the project.
I use the daily method because it helps me focus on just that client for the whole day.
January 6th, 2009 at 10:24 am
foo: I’m not sure what the circumstances of your odesk deals were, but I don’t think setting up an environment is necessarily unethical. If someone is advertising themselves as “Instant VB.NET Solutions” and they charge you for time spent installing VB.NET on their own computers, that’s likely bogus. But if a client asks me to research and/or build something that I’m not immediately ready to do, I’ll explain that some of my time will be spent setting up and will charge accordingly.
A consultant/customer relationship is like any other relationship: if you want it to last, you have to start with honesty and devote time to communicating clearly in order to build trust over time.
January 7th, 2009 at 12:01 am
[...] Geeks in Boston ยป Discovering the Link Between Effort and Reward (tags: business productivity focus) [...]
January 7th, 2009 at 8:59 pm
I think you are on a dangerous path if you don’t make uncharged work-related hours visible to your clients. For example, the uncharged time spent on research is a major part of your technology risk. Making hidden uncharged time visible is just good professional practice, because uncharged time will affect your delivery schedules.
I’m just saying this because I have worked in a place where over-optimistic scheduling was the norm. Both billable and unbillable work piled up and clients got angry when even small jobs took long time to get through the pipeline. Frustrated clients contact you more and you have to prioritize work based on urgency, not on importance. The end result was more stress, less outcome and generally unhappy customers.
January 7th, 2009 at 9:58 pm
mika: I agree. If you’re working for a customer, whether programming or researching or talking on the phone with them, that should be expected (by both parties) to be billable time. And if you need to learn a new language or library to get something done, you should make this clear when planning the work and not try to sweep it under the rug.
If you do have uncharged work for a client, just as with anything else that can affect your availability, it is of course your professional responsibility — and in your longer-term self-interest — to be honest about it. I wonder what sort of uncharged work a consulting firm would be doing on a regular basis?
January 8th, 2009 at 1:00 pm
I’ve recently started using the Pomodoro Technique to manage my time at my (salaried) job, and been somewhat depressed at how little time I was spending on “real” work. So reading that three billable hours per day is normal for the pros makes me feel better about myself. :-/