Forum Moderators: phranque
However, I was approached by someone who wants me to setup a mail service (configure domain, configure hosting account, setup webmail, etc...). In order to make possible for the "client" to create new boxes and addresses, I need to write a script that comunnicates with the hosting servers and creates the accounts. Another script is needed for password change. The scripts are not problem, actually I've already worked on them some time ago.
The question is... how much should I charge him for this job? how much would you charge? The job is not complicated at all but I really have no idea of how much would any other developer charge.
The problem many developers make when they start taking work from customers is to forget the time it will cost to deal with the customer. He will ask you questions, he will make stupid unreasonable demands and it will cost you time to convince him that things won't work this way and he will probably tell you things like: Oh and by the way there is one little thing I'd want the script to do, should cost you no additional time at all, see you can simply put the button for it right there on the left side below this other tiny little button. Surely adding such a little button won't cost extra.
When in fact he just asked for something that would be like implementing a 4Wheel Drive into a car. And when you want that he pays extra he will tell you: What! So much money for this little button for the 4WD - you are ripping me of I will tell everyone what a rip of you are charging so much for such a tiny little button, I could add such a little button myself if I had not better things to do than to learn programming. Yadayadayada . Sorry I am wandering from the subject a little bit...
This all will take time and should be taken into consideration when you calculate the price.
So before you start programming write exactly down what the script will do and then let your client sign the paper.
As Jecasc said there's no end of things that a client can do to blow a project out of it's estimate. It's not their fault, they don't know what's hard or easy - if they did they wouldn't hire you!
The problem many developers make when they start taking work from customers is to forget the time it will cost to deal with the customer.
This is a point that cannot be overemphasized. What some people do is calculate about how long it would take if they were to do the work for one of their own sites, and then give a price based on that. This is not the right approach because it doesn't take into account all of the other work that is present when you are working for a client, as jecasc explains. So, take into account what your time is worth, and what you think your skill is worth.
Heed the advice given by other posters. Expect the first job to go badly wrong in some way or other and learn from the experience. It will be a shock! Good luck.