> Home

> Work
  About Me
  About This Site
  Site Map

> Rates


I charge $100 / hour.

I normally work on a time-and-materials basis, as it fits in well with the idea of conversational development that I mentioned above. Work on a fixed-fee basis is not out of the question, but in my experience having a fixed fee sets up the wrong incentives, and leads to no good.


Unless we've agreed otherwise, I bill only for actual productive time.

  • Producing things is productive, by definition. Writing code is productive; so is writing specifications or documentation. It's not just the actual writing that's productive, of course—planning what to write is equally important.
  • Coordinating the efforts of different people—by attending meetings, tracking issues, writing status reports, and so on—is productive. Not every meeting is productive, of course, but when one isn't, the solution isn't for me not to bill for it, it's for me not to be there, and I will suggest that.
  • Talking on the phone and communicating via email are productive when they're substantial, i.e., equivalent to a meeting. A quick call to schedule or reschedule a meeting I consider no different than, say, a call from a car repair shop to tell me my car's ready—neither counts as an interruption in whatever I'm doing.
  • Setting up necessary infrastructure is productive. That includes such things as installing new software and getting connected to internal networks.
  • Learning things I need to know to get the job done is productive. But, if I expect I'll be spending a lot of time learning, I'll tell you, and we can discuss not only whether I should bill it but also why you want to hire me.

That should give you a good idea of what I consider productive and billable, but it may also help to point out a few things that I don't consider billable.

  • Having initial meetings and discussions is productive, but nothing is billable until we reach agreement that I should be doing some work. If the discussions turn out to be unusually long, I might ask about billing for some of the initial time retroactively.
  • Going out to lunch is not billable, not even if we happen to talk about business.
  • Billing itself, the process of billing, is not billable. As for keeping track of time spent, I do that incrementally as I work, so that it's not an interruption. In fact, it helps keep me focused, and so is productive.
  • Thinking in the shower (or wherever) is often very productive, but it's hard to quantify, and hence not billable.
  • Finally, there is the gray area of activities that are not productive, yet involve me spending my time on your behalf, activities such as commuting, traveling, and being left idle while on site. I do not bill for these activities without asking first … with one exception. If we've agreed to meet at a certain time, and I get there and have to wait, I will bill for that.


One of the nice things about software development is that materials are rarely required. When they are, I like to ask before buying, unless the cost is truly small, say, on the order of $10 or less. And, in case you were wondering, no, lunch doesn't count as a material. (It would count as an expense, though, if you were reimbursing me for expenses while traveling.)


I can send invoices on whatever schedule is convenient. If left to my own devices, I send them at irregular intervals, typically when I've accomplished some goal.

The format, too, can be whatever is convenient. By default, I send invoices by email, as plain-text attachments, with the hours broken down by day. So, they look something like this.

date       hours   totals
--------   -----   ------
M   3/ 8    3.25
T   3/ 9    7.75
W   3/10    9.5
Th  3/11    4.0
F   3/12    6.25    30.75

If you'd like more detail, that can probably be arranged. I keep very detailed records, but in a very informal format, so it takes some effort to make them presentable.

As you can see above, I keep track of time in fifteen-minute increments. If you're interested in the details, there are actually two methods that I use. When I sit down to work on something, I round the start and end times to the nearest fifteen-minute boundary, but when I'm interrupted, I round the duration to the nearest multiple of fifteen minutes (possibly zero). So, for example, if I start work at 8:56, am interrupted by other business from 9:24 to 9:35, and finish at 10:13, I consider myself to have worked from 9:00 to 10:15, minus fifteen minutes.