Mike Zornek recently announced that he is leaving the comfortable world of gainful employment and joining the world of hopefully beneficial self-employment. This quickly leads one to all sorts of questions you may not have thought about as a developer where the questions were: what compiler, what language, user interface (bah - users); where now the questions are: how do I bill, fixed-price vs. t&m (time and materials), what the heck are Accounts payable?
I'm currently using WRTimeTracker (http://products.wrconsulting.com/wrtimetracker/en/) installed on my server host for tracking my hours. I want a web-based tracker since I'm very often working in odd places on different machines. It works alright for the time being, but lacks in some features and is really targeted to be used with their windows clients.
As a developer, it seems rather straight-forward to evaluate my own needs and desires for a time-tracking/billing system and develop this in one of the myriad languages that I say I know. I have one on my 'todo' list for learning Rails. My goal is to enter in my activities/projects/clients and 'expected time to completion'. Then I can track the actual hours and later compare how good my estimates were on certain tasks. You could also put in categories of a task and later review things like 'average time to build a website'. Later, I could write a small REST API and a Dashboard widget to be able to upload hours from my desktop or cellphone (I said I work in odd places).
As for accounting, I'm just starting to dig into gnucash (http://www.gnucash.org/), which can run via X11 on a Mac, or via a linux server and again log in from a variety of locations.
Of course, none of these software packages remove the need to understand things like "double-entry accounting" or what Accounts Payable are. Ah, the fun of running your own business and learning all kinds of things you wouldn't have otherwise.