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.