Running your own business means a lot of extra effort, relative to a ‘normal’ job. True, there are the benefits of being your own boss, working the hours that suit you, taking holidays when you fancy, setting the prices you like. But in addition to being a Web Designer I also have to handle the accounts, pay the tax man, and do all the boring day-to-day stuff that proper businesses would palm onto someone else. Thankfully, because my business is relatively small and simple, this doesn’t take too much effort. Mr Tax Man doesn’t bother me unduly, and the general running of the business tends to just happen.
Of course, there are ways of making life easier for myself on the business side of things. For instance, keeping track of the business’s money is something I’m keen to do, since numbers are not my strong point, so having a system in place that makes it all blindingly obvious is a must. So far I’ve been relying on spreadsheets to log the work I do, with a different spreadsheet for each client. It works, but it’s not particularly efficient. I’ve looked around on the ‘net, and not found anything that fits my requirements exactly, so I decided I’d make my own. Nothing like reinventing the wheel every now and then, just for kicks.
And so mWork was born.
I did look into making a mammoth super spreadsheet, with each client having its own sheet, and a summary sheet that brought it all together, but the more I played with it the more I felt it really needed the power of a database. So I started fumbling around with the database app that comes with NeoOffice (the Mac version of OpenOffice, a free office suite like MS Office). Unfortunately, the more I fumbled the more confused I became, and the more I hated the software. Then it occurred to me – I could create this sort of thing really easily in PHP and MySQL. So I did.
Rather than hosting it all online, where any old cracker could potentially get at all my data, I’ve kept it on my local computer. There’s a lot of PHP, some clever CSS, a relational database handled by MySQL, and so far quite a lot of hours of work creating the thing. I’m already using it, though at the moment in parallel with the old system, just in case. The beauty of it is that if I find I’m missing a feature, I put it in. If certain information is important, I make it more obvious. If the data isn’t very useful, I find another way of using it.
One particular area I’m quite pleased with is the various bar graphs I’ve used, with some funky PHP and CSS. You’ll see from the screenshots just how beautiful they are. For each project there’s a bar graph showing three bars: one for the amount I estimated for the project, one for the amount I’ve earned through the work I’ve done so far, and one for the amount paid so far by the client. Putting these side by side visually really helps to get a quick overview of how far through the project we are and to keep tabs on projects that might overrun; if I go over the estimate the middle bar turns red.
There are similar graphs for the monthly and yearly reports, which show the activity throughout the month or year in question. The yearly report shows hours worked, amount earned and amount received side by side, giving a nice (if colourful) progress report. At the moment the yearly report works on a Jan-Dec year, but I suppose actually a more useful measure would be the tax year, as I could then use that information directly to plug into my Tax Return Form.
In addition to all that fun visual stuff there are tools for adding projects, updating project information, adding work logs, adding expenses that will be passed on to the client, logging payments made by the client, and so on.
There is still work to be done before it’s finished, naturally. But at the moment it’s fairly solid and seems to be working well. I don’t think it’s the sort of thing I would make available to the general public though – it’s tailored specifically to my needs, and might not suit everyone else. Besides anything else, I’ve spent so long developing it that I would want to charge people to use it, but that involves taking money from people and I’m not so hot on that! You can tell I’m not a businessman…