February 21, 2011

WD Billing Strategies: Or why start date and end dates are SO critical

Filed under: General Information,Meta-Company — Ryan Wilcox @ 10:02 pm

Since starting Wilcox Development Solutions I’ve understood two things:

  1. Programmer time is expensive – indeed, prohibitive – to most people or companies.
  2. When people buy expensive things they want to know where their money went. Even at the grocery store you get a big long receipt with your purchase, and programmer time will set you back many grocery trips.
  3. People want accountability – people want to know what I’m working on so they know I’m not just billing them for watching Battlestar Galactica.
  4. Stop times and end times are important, not just durations. Transparency is a big thing for me, so if a client (say) doesn’t want to pay for any hours I work after midnight I can take those hours off their bill and stop working late nights for them. Turns out there’s an Even Better Reason for this too, but I’ll get to that

Once, on a project one of my coworkers was accused of punching in for 8 hours but only working six. (The rational: “Because you always punch in 8 hours, and nobody is that consistent on this project – there’s always other stuff, or lunch breaks or whatever!”).

This guy seems like one of the most honest guys around. Additionally, he seems to me to be machine-like with his consistency and thoroughness, like for example always preferring purity over practicality,. If the guy says he worked 8 hours, he probably did.

Anyway, talking to another coworker, and based on some observations of my own, the “accused”‘s standard MO is to put in 6 hours during the day, but then go home and work 10PM to 12:00 PM. I can confirm this too (kind of) because two or three out of five days during the week I see him on Skype chat, and I’ve chatted (occasionally) about project stuff at those late hours.

So this guy gets accused of timesheet games. He has records that prove his innocence, and some statistics to back up his claims of 95%+ 8 hour days. Luckily.

The client’s time keeping system for this project simply has duration. Yes, I’ve been complaining about this for an entire two years, every chance I get. Luckily whatever system my coworker’s company uses internally must track more information that just duration.

If I had been accused of such a thing I would have literally laughed in the client’s face and thrown 8 pages (times 12 months) worth of invoices at them and let them drown in it.

Yes, Virginia, I bill by the month, and me working full time on a project for one month for you will land you a 7-10 page invoice at the end of that month. No, I don’t think this is excessive, and I will figuratively tear your invoices to shreds, via user stories that your invoice is failing. (To those curious out there: Yes, I am available for hire in this area of meta-consulting.)

The moral of the story: always record start date, end date and duration on your invoices. If you don’t record this you will get burnt. If you have to use another time system to keep track of client hours do not do it unless the system has start and end date, and multiple session support (As a user story now: “As a user I should be able to enter my morning work, then take a non-billable break of arbitrary duration for lunch, then enter my afternoon then take a break of arbitrary duration and possibly enter hours for the evening).

For a while there I was also running SLife, on the paranoid assumption that the start, end and duration dates on the invoice might not be enough, and that the client would want to see proof. (There’s also TrackTime, which does a similar thing). I’d be able to answer the question: “Yes, I was using my computer during those times, and here are the applications and windows I accessed – happy now?”

I don’t run SLife any more ($10/month wasn’t exactly worth it just to keep the paranoid person in me quiet). But for some people, in some situations, this is a life-saver, I’m sure.

Anyway, I even wrote my own time tracking system (sessionnotes.appspot.com) because time tracking systems at the time (2008) didn’t have everything I needed. Now I use sessionnotes and Harvest (Starting early 2010, Harvest now does start/end dates and Very Long Descriptions: two things that are critical for me).

I also assume that either the computer will crash when I’m taking notes, or I’ll want a paper back up copy somewhere also, so I keep handwritten notes of everything I do during the day. These approximately mirror what goes into sessionnotes (sessionnotes has better spelling and less drawings of stick men in hats in it, but it’s the same thing.)

Yes, this is petty crap. But transparency shouldn’t be hard at all, and this is one of the ways you can get easy wins without doing much at all.