Doing my own accounting
Now that I am running my own business, there arises the question of accounting. Actually that question had been posed way before the business was there and I've thought a lot about it. There are three strategies:
- Do your own bookkeeping
- Do your own bookkeeping, get help from an accountant for closing the books and doing the tax papers
- Give it all to an accountant
So far I've chosen strategy 1, with an option to switch to strategy 2. I've had to learn a lot, despite having done double entry accounting in the past and despite having coded lots of business software in my life (hey, if you need anything like that, we're here to help!) But having to learn so much is exactly why I consider strategy 1 to be a major win for me. You see, the stuff that I'm learning about, often means that there are decisions made. You can do stuff one way or another. Or it means that you have to beware of things you might be doing "in real business life", which have an outcome on what happens in your books (and therefore in your taxes).
So if I go with option 1, it means that I have to learn a lot about stuff that I have to know anyway. If I give my receipts and all that to an accountant, then I have to have a lot of trust in that person. What's more, I need a very good communication with that person, because I will have to consult her on a lot of my business decisions. I might readily switch to option 2, because doing it all alone has risks too, but then I will be already on a base of knowledge that lets me work around some pitfalls. Even when my company gets so big (and I'll get so philthy rich) that doing my accounting is no longer an option, the knowledge will serve me well.
As for the software for accounting... you can spend a lot on that. Depending on where you (or your business) is located, you will have to spend a lot, because in some countries they allow only certain "certified" accounting programs. In my companie's case (Switzerland), any reliable software will do. Being a true geek, I found ledger and hledger, which are command line accounting programs. "ledger" (also called "ledger-cli" sometimes) is the original version, coded in C++ (so it's also called "c++ ledger" sometimes). I had some trouble getting it installed, but finally got version 2.6.3 up and running using "homebrew" on Mac OS X. As for "hledger", the "h" is an indication that it's writtin in Haskell. There is a (slightly older) binary on the site, which was enough to get me up and running fast. I've since managed to compile my own hledger too.
These CLI ledger programs basically work by entering "entries" into a "journal" file in a simple format. This approach was very welcome for me, since it allowed me to play around until I had reactived my memory about how double entry accounting works. While I was reading up I could try things out and check with various reports how it all worked together. For a while I had one category of entries "the wrong way around" and it was easy to correct once I figured it out. Even from the most flexible GUI accounting programs, I remember this kind of thing to be much more complicated.
These two programs share a (more or less) common file format, so with a little care it's possible to use both of them in parallel. Which I do now, because there are some features that hledger doesn't have yet, while it feels more comfortable in other respects. The features I miss most (and for which I turn to "c++ ledger") are the --wide and --related options for showing a "register" of an account. Gotta really learn Haskell now, so I can contribute that stuff myself! :-)