The other day a buddy of mine who is still fresh in his career, emailed me about
a possible side job that he had for building a small forum type application. In
his email he asked me how much I would charge for the application, sending along a URL to a similar site. I started to write back with a long winded
explanation but ended up cutting it short. I pretty much told him that the best
thing he could do was to try and get a gauge of how much they were willing to
spend based on several different 'decision points'. My answer was based on the mental notes that I had walked through when writing him back. Given the description of his client and the type of project they were looking for, I
kind of figured that they were not looking to build a business off their idea but were
more or less a group of guys that were looking to have some fun.
I thought it would be worth while to share some of the "questions" that I keep in mind when determining how I should bid out a project. Keep in mind that following isn't appropriate for all situations and/or might come as common sense for some.
What type of client are they, are they an an
established company, are they large or small, what kind of seed capital to they have (if applicable)?
The idea really is to find out what type of financial state they are in. Typically if they are an establish co. or a startup with capital, they are willing to pay a premium (for a quality application of course). The simple economics of the matter would tell you that a company with more money, can afford to spend more for their business endeavours. The idea here is not to take advantage of their financial status but rather use it to get a gauge of how much to charge so that you don't under bid yourself. I have had several friends lose out on projects simply because their estimates were too low.
Is the client doing this for profit or for fun?
Chances are if the client is a business, then they aren't doing the
project for fun. If they are, chances again would tell you that they are
benefiting from it one way or another (pr, marketing\advertising, larger user
community, ect...). In either cases, if the client is a business I would revert
back to my first point in trying to get a gauge of a pay scale to use. On the
other hand if the client isn't a business or forming a business, then I would
step back and try to think about how I could offset my profitability in other
ways than money. You never know, you could be building the next
YouTube!
Is the project new development, or enhancements
to an existing app?
New development in almost all cases means that your estimates won't be
dissuaded by unexpected technical issues. While there is still the chance that
something that you didn't account for (in technical terms) could go wrong, the
fact that you are building from the ground up means that you won't have to deal
with someone else's laziness, hacks or inexperience. I've worked on projects
where the previous developers were unskilled and\or flat out lazy, causing me
lots of unexpected fixing and figuring out of logic that just happened to work by
coincidence. No body writes an application the same way that you do, so if you are asked to bid out enhancements to an existing app, make sure you get to see some of the source
first before you give an estimate.
If it's new development, do you have a similar
project (or can find a less expensive alternative) that can be tweaked to fit
their needs?
Using an existing project and\or buying a lesser expensive alternative for
tweaking, will in most cases provide the largest room for profit. For obvious
reasons the simple fact that some or all of the 'code is already written for
you', means that you can spend less time in completing the project. Again if you
purchase something, you might run into the scenario that I described above about
having unexpected technical issues. Writing an app from the ground up is usually
more time consuming except if have (or have written) a really good set tools for
code generation. Code generation lets your code work for you, people
like Peter
Bell are able to build hundreds of customized apps a year simply because
he's built tools to automate much of the core code.
Would you be willing to do the work for less
money than what you make now?
I mention this point because when it comes down to the end of the day,
you should at least (imo) try and earn as much as you would as if you were
working at your full time job. I try and calculate my hourly rate by taking my
annual salary and dividing it by 2000 (40hours/week x 50 weeks/year). Using this
as a basis, you can find out what the project would cost (at a minimum) to be
worth your time. If you think you are overpaid or work for a client unlike the
one for the side project, then you might have to be prepared to bill at a lesser
rate.
Do you want the work?
The last point I usually consider is, how much do I really want the work. Like
most people, if I don't want the work I might put in a high bid or just simply
tell them that I'm not interested. I try not to be insulting with my
quoted dollar figure and/or with a decline of a project but ultimately you
shouldn't do something you don't feel is worth your time. In the odd change that they willing to compensate you nicely for the work, then it might be worth considering.