January 30th, 2008 by ymendel 0 comments »
One of the things about working for yourself is you get burdened with management headaches. My particular management headache is handling all the money stuff. (When it came time to think about roles and titles in the fledgling OG Consulting, I went for Treasurer. I figured it was a natural fit seeing as I was OGC’s Jew, but it also meant I didn’t have to take part in the President/Secretary straw drawing ceremony.)
What makes this less of a headache for me is FreshBooks. I pointed this out to Rick in the pre-OGC days (the year 1 BO), and when we got together (AO 1) I started using it for sweet official invoice-type action.
At some point in there a buddy of mine started work there. Small world.
The more I poke around at FreshBooks, the more impressed I am. It allows you to take it very simple if you want, but if you want to use it to track inventory and time spent and create estimates, you’re free to do so. In fact, I think you’re encouraged. And you can use all this to automatically create invoices, which is a pretty sweet deal when you consider the laziness possibilities.
And I did. We like deals where OGC is contracted for a certain amount of time and we figure things out internally. It’s an encapsulation thing. That, of course, puts more of the headache on me because I can’t just add up the hours, multiply by our hourly rate, and then divide the money equally when it comes in. I mean, I could do that, and I wouldn’t have complained for this last invoice considering I was sick and tired for much of the time it covered, but that would be wrong. It would be even more wrong if I were the one getting shafted. This means I should keep track of the time reported to me so I don’t have to ask once when making the invoice and again when the check comes in. That’s where the time tracking in FreshBooks comes in.
Now, I only really noticed this stuff after I had made the invoice and sent it out, so it was kind of late to fill in all the time entries correctly and create an invoice from them. That wasn’t really what I was after at the time. I just wanted to keep a record, so I did. And I appreciated the lack of strict bogus validation that made it possible for me to say that Rick worked for 25.5 hours on one day.
It could’ve been better, though. I could be lazier. We already track time for our own purposes, so why not use that data to automatically create time entries on FreshBooks and then create invoices from those? This is the sort of laziness that drives new development. After a bit of poking around at the FreshBooks API (did I mention being impressed?), I started on something to do just that. I call it “Freshtrack”.
Now, after I’ve tracked my time with a bunch of
punch in [project] and
punch out [project] over the course of several days and it’s about time to make out the invoice, I simply need to run
freshtrack [project] and all the time entries are made for me. Laziness wins again.
To do this yourself, just
gem install freshtrack and check out the README. It’ll get the dependencies for you and explain what to do about configuration.
This works perfectly for Rick and me because we both use punch. Kevin’s going to have to do some more work or get off his Emacs kick.