Recently I have been a fly-on-the-wall in an interesting discussion on the Auckland PHP User Group regarding the process of costing freelance work. So I thought I would toss my hat in the ring and give my opinion and summarise the interesting aspects.
Let me just say now that I cannot tell you how much you should be charging or what you are worth, but I can help you avoid some pitfalls.
The lowest price submitted for a job will not necessarily get the job. Consider this example – say I would like to buy a washing machine. I would not opt to buy the cheapest one for any number of the following reasons:
So there a few reasons off the top of my head that mean you do not want to be pricing yourself below the mark. Whilst those assumptions about you maybe way off the mark and you are the best coder under the sun and the moon you will never get the chance to prove it. You will be discounted as an inexperienced hack and your proposal will be pushed to the side if you are lucky and into the bin if you are not.
The next problem you can easily get yourself into is non-paying clients. There is no silver bullet for this problem because quite often they will look like a legitimate business. One way to avoid getting shafted is to request credit references from the client. This way you can easily find out how they have dealt with other companies in the past, but it can be very insulting to your client so be careful. Always meet the client on their premises before beginning work on the project. Not only will you have a better idea of their business and what they need, but you will make personal contact. People are a lot less likely to stiff you if they feel you are a friend so do your best to talk about their favourite sports team or the latest car they bought or whatever it is that makes them tick.
Furthermore you should maintain regular friendly contact with your clients during and after the completion of the project. This allows you to keep abreast of the clients expectations and let them know of any problems or blocks you may have encountered that could affect the go live date. Through this regular contact you can further ingrain yourself as a reliable and honest friend. Plus they will be sure to call you when they have their next budget round or project!
So what should you do if you really do not trust the client? Well my advice would be to walk away and look for better clients, but if you really must complete as you are on tight constraints then I would try something like the following arrangement. Charge the client the full price of the project up front and do not begin work until they have paid. To help them trust that your intentions are to complete the project; place a large completion bonus at the end of the contract. Then should they not pay you at the end at least you have been paid your hourly rate and it is just your bonus that you miss out on. But as I stated already I would not get involved in this scenario.
Of course you can also find yourself pitching well above the average, which will illicit one of two very strong responses. The first being outright refusal and the second can get you hired instantly. Once again it goes back to the client’s concept of quality. The most expensive TV has the most features so therefore the most expensive developer must also be the best. The point to take away from this is that pricing yourself too high is less likely to lose you the job than pricing yourself too low.
Pricing yourself too low also brings with it other issues further down the line. You attract clients who cannot pay you what you are worth and end up supporting old projects for much lower rates. Clients will quite often balk at a sudden price hike and phone you up to remind you how much of a good friend you are why they deserve a discount. It is the usual human reaction that I am sure you have experienced yourself – your telephone company sends you a letter informing you that calls are to go up by 20% and you will feel a little cheated. Your clients will feel the same way. Yet if you were to charge them the higher price in the beginning then they would likely still have taken you on for the project anyway.
The human psyche can be a strange beast and you will surely run across clients who are exceptions to the norm. Over time you will become adept at reading potential clients, but these notes will hopefully help you avoid the worst of it. It is tough out there being a freelancer so good luck!