I don’t think anyone running a web development shop (or any human-scale business) really relishes dealing with billing, banking and accounting—unless you’re like me and you derive an occasional, zen-like satisfaction from it like you might from washing dishes or cleaning your apartment. However, if you want to run a business that makes money, keeps track of it, and then pays its employees, vendors and owners on time, you can’t avoid dealing with it.
Like most creative service businesses, Alley relies on the billable hour as our unit of currency. We need our team members to be able to record their hours for multiple projects, very easily. We also place a lot of value on getting clients their invoices quickly and conveniently, and then ideally making it easy on ourselves to keep track of the money when it comes in.
From day one at Alley, we’ve relied pretty heavily on FreshBooks. Like all forward-thinking web people, we’re always interested in ways we can use the Internet to solve our problems and in the plethora of fantastic new software-as-a-service applications that are reinventing more staid, traditional tasks like bookkeeping. FreshBooks is a remarkably well-architected application in this regard. It supports a data model representing clients, their projects, their various contact people, and the tasks we perform hourly for them, and it lets us record our work, send out invoices, and monitor our status without killing any trees.
When we first started out, the company’s finances were really simple. A few clients paid us and we distributed the earnings amongst the partners, who were the only people involved at the time. As with any business, things become more complicated as you grow. You end up with a biweekly payroll, a company credit card account, a bunch of a vendors, and a pile of invoices waiting for payment. Plus, at some point you’re going to have to add it all up to file your company’s tax return.
Ultimately, you or someone you know is going to end up having to deal with Intuit’s QuickBooks. It’s not anyone’s favorite piece of software, but it does largely remain the gold standard among small business accounting software. FreshBooks, wonderful though it is at certain tasks, can’t get you all the way there.
What FreshBooks is really good at:
- Cataloguing clients, their projects, and what tasks will be done for each project.
- Supporting multiple team members entering their time worked.
- Sending invoices via email, and providing clients with an easy-to-use online account statement.
- Processing payments online via PayPal, Authorize.net, and other popular payment gateways.
- Reporting on hours worked, invoices sent, and payments received.
- Monitoring client accounts aging.
- Analyzing revenues vs. expenses over a given date period.
What it is not good at (i.e. does not do at all) and thus what you will need QuickBooks or its ilk for:
- Tracking accounts payable (where the vendor in question isn’t also using FreshBooks).
- Fully implementing accrual accounting (i.e. book revenue as soon as you send an invoice, and expenses as soon as you get billed).
- Printing checks.
- Reconciling your invoice-based cashflow with your real-life bank account or business credit card, and assigning expenses to specific accounts.
- Carrying accounts payable and receivable balances from one year to the next.
- Tracking the value and depreciation of physical assets (especially when you rack up a fleet of company-owned MacBook Airs).
- Producing a balance sheet and other measures of total corporate equity.
All the stuff on the second list sounds pretty boring, and it is. But unless you’re able to hire a dedicated CFO, someone has to do it and it’s going to end up being someone whose full-time job isn’t accounting. Rest assured though, if you’re smart enough to write code, you’re smart enough to understand basic accounting.
We’re very happy with FreshBooks and have no plans to move away from it, but we’ve learned a lot of lessons about how to wrangle it alongside old-fashioned accounting software. The staff at FreshBooks posted a useful tutorial on their blog about it, which I think is a good starting point. In the future, I will explain further how we’ve made it work at Alley.