What should I charge to build a mobile app?
September 20, 2011 3:42 PM Subscribe
How much should I charge for developing a mobile/web app? And, should I charge hourly, weekly, or ask for a fulltime position?
The app will be for people who maintain a contact list. It will require a secure sign-in. There will be functionality to email or text all of the contacts for confirmation that their information has not changed; if they do not respond, the message will be re-sent later or stored for someone to call them. There will also be functionality to send pre-composed messages to certain groups of people on that list depending on their status.
I will use jQuery mobile (with an app wrapper) for the interface, with a small amount of PHP and some flavor of SQL on the server. I will need to use a program or service such as mailman to send the periodic emails. There will be more functionality added later, but this is the first step.
My experience with this is somewhat limited, although I feel comfortable with coding something of this complexity. I have a BS and MS in math but my coding/web experience to date has been in classes or for fun, not paid. My employer is fine with my lack of paid coding experience, and has people who I can ask for help if necessary as I am learning.
On one hand, I am hesitant to charge hourly because my time will include more learning than a more experienced developer, but on the other hand I'm not sure of a reasonable total fee for this project. The employer is open to fulltime employment as well, but I would like to deliver at least this step to prove myself first. And if I do charge hourly, what is a reasonable rate taking into account the learning curve?
The app will be for people who maintain a contact list. It will require a secure sign-in. There will be functionality to email or text all of the contacts for confirmation that their information has not changed; if they do not respond, the message will be re-sent later or stored for someone to call them. There will also be functionality to send pre-composed messages to certain groups of people on that list depending on their status.
I will use jQuery mobile (with an app wrapper) for the interface, with a small amount of PHP and some flavor of SQL on the server. I will need to use a program or service such as mailman to send the periodic emails. There will be more functionality added later, but this is the first step.
My experience with this is somewhat limited, although I feel comfortable with coding something of this complexity. I have a BS and MS in math but my coding/web experience to date has been in classes or for fun, not paid. My employer is fine with my lack of paid coding experience, and has people who I can ask for help if necessary as I am learning.
On one hand, I am hesitant to charge hourly because my time will include more learning than a more experienced developer, but on the other hand I'm not sure of a reasonable total fee for this project. The employer is open to fulltime employment as well, but I would like to deliver at least this step to prove myself first. And if I do charge hourly, what is a reasonable rate taking into account the learning curve?
Best answer: I own a small web-development company, and have been moderately successful for 4 years now.
I would *not* suggest you bid this flat-rate, since you have no experience in flat-rate bidding. I would recommend you do the following:
- Spec it. Write a full "I will do this, and this exactly" type of proposal. Make a spreadsheet for your estimated hours, and then apply your multiplier. Your multiplier is the amount you are usually off in your estimates. If you've been developing for any time at all, you probably know your multiplier. Mine is 2x. It used to be 3x.
- If you are well-established, you can charge to bid. I do sometimes, it depends on just how big the bid might be and how detailed the quote is. Sometimes jerks will use your spec to shop around, so it is only fair.
- Charge a fair price based on your estimate. I would never, ever, take a gig for less than $100 per hour. Anything less and I'd rather have a FT job. For small/new clients, I charge $150/hour, and I get it, but I have > 20 years of experience and glowing references.
- Give the client options. Usually 3 options. "Low", which doesn't include everything they want and is a throwaway. No one ever picks this. "Exact", which hits everything they want. "High", which includes fun stuff you thought of when reviewing the RFC. In my experience, more than half the time the client takes "high", because no one wants a crappy site. Unless they are the government, then they always take "exact", because they have to do so.
- If you are super confident in your estimates, include a "not to exceed" clause in the bid. For a new freelancer, I strongly suggest not, but if you do, then add 30-50% to your estimate and call that your "not to exceed". I used to do this more when I was developing a client base, I rarely do it now because you can get screwed really easily, and I hate working for free.
Elaborating a bit, if they have you on a fixed rate bid, then they'll come up with an amazing amount of stuff that kinda-sorta you said you'd do in the bid, but not really. They will *always* call anything they'd thought of after you started a "bug", and they'll want you to change it before you are paid. It will stink, very badly. Worse, it will suck up an amazing amount of hours that you don't get paid for. Every, and I mean every, client will do this on a flat bid. The only solution on a flat rate bid that I've found is to literally double the bid, expecting this garbage.
- Do NOT take equity or a share in their profits. There almost certainly will not be any. In the 1/100 case that there are, they'll use their lawyers to deny you your fairly earned money anyway. Happened to me, more than once. Yes, I am an idiot.
- Insist, absolutely insist on 50% down. Do not write a line of code until the check is in your account. Really. At the worst, on a big contract, take 1/3 down, no refunds. Dress up the "no refunds" with legal crap.
- Really do have a lawyer check your contract. it may cost $100-$200, and is totally worth it. In a dispute, you'll lose if you skip this step. It happened to me, it turns out that I'm not a lawyer, no matter how smart I think I am, go figure. It cost me about $10K plus an ongoing revenue stream of about $5K a year, forever. A bad mistake.
Say your price per hour with a straight face. That's the only way to get it. 7/10 clients don't bat an eye at $150/hour, when you can get kids just out of school (idiots) who will work for a third or less. Practice with friends. I did, and I get my rates.
Never hint that you'd take a lower rate. If they ask for a lower quote, point out what you could remove to achieve that price. They never go for the removal of functionality.
posted by Invoke at 4:07 PM on September 20, 2011 [14 favorites]
I would *not* suggest you bid this flat-rate, since you have no experience in flat-rate bidding. I would recommend you do the following:
- Spec it. Write a full "I will do this, and this exactly" type of proposal. Make a spreadsheet for your estimated hours, and then apply your multiplier. Your multiplier is the amount you are usually off in your estimates. If you've been developing for any time at all, you probably know your multiplier. Mine is 2x. It used to be 3x.
- If you are well-established, you can charge to bid. I do sometimes, it depends on just how big the bid might be and how detailed the quote is. Sometimes jerks will use your spec to shop around, so it is only fair.
- Charge a fair price based on your estimate. I would never, ever, take a gig for less than $100 per hour. Anything less and I'd rather have a FT job. For small/new clients, I charge $150/hour, and I get it, but I have > 20 years of experience and glowing references.
- Give the client options. Usually 3 options. "Low", which doesn't include everything they want and is a throwaway. No one ever picks this. "Exact", which hits everything they want. "High", which includes fun stuff you thought of when reviewing the RFC. In my experience, more than half the time the client takes "high", because no one wants a crappy site. Unless they are the government, then they always take "exact", because they have to do so.
- If you are super confident in your estimates, include a "not to exceed" clause in the bid. For a new freelancer, I strongly suggest not, but if you do, then add 30-50% to your estimate and call that your "not to exceed". I used to do this more when I was developing a client base, I rarely do it now because you can get screwed really easily, and I hate working for free.
Elaborating a bit, if they have you on a fixed rate bid, then they'll come up with an amazing amount of stuff that kinda-sorta you said you'd do in the bid, but not really. They will *always* call anything they'd thought of after you started a "bug", and they'll want you to change it before you are paid. It will stink, very badly. Worse, it will suck up an amazing amount of hours that you don't get paid for. Every, and I mean every, client will do this on a flat bid. The only solution on a flat rate bid that I've found is to literally double the bid, expecting this garbage.
- Do NOT take equity or a share in their profits. There almost certainly will not be any. In the 1/100 case that there are, they'll use their lawyers to deny you your fairly earned money anyway. Happened to me, more than once. Yes, I am an idiot.
- Insist, absolutely insist on 50% down. Do not write a line of code until the check is in your account. Really. At the worst, on a big contract, take 1/3 down, no refunds. Dress up the "no refunds" with legal crap.
- Really do have a lawyer check your contract. it may cost $100-$200, and is totally worth it. In a dispute, you'll lose if you skip this step. It happened to me, it turns out that I'm not a lawyer, no matter how smart I think I am, go figure. It cost me about $10K plus an ongoing revenue stream of about $5K a year, forever. A bad mistake.
Say your price per hour with a straight face. That's the only way to get it. 7/10 clients don't bat an eye at $150/hour, when you can get kids just out of school (idiots) who will work for a third or less. Practice with friends. I did, and I get my rates.
Never hint that you'd take a lower rate. If they ask for a lower quote, point out what you could remove to achieve that price. They never go for the removal of functionality.
posted by Invoke at 4:07 PM on September 20, 2011 [14 favorites]
Best answer: Where are you located? If you are in Silicon Valley (or the client is) I would say you should start by requesting $75/hr but indicate you are open to negotiation if you feel that would be appropriate. Sit down some evening and outline the task really carefully, come up with a reasonable schedule and budget for getting it done, and then double it before submitting to the potential client (I am not kidding).
Indicate you are open to full-time employment after this contract, if you are, or that you are open to further contracts at a newly negotiated rate. I think ultimately, when you have some solid experience, a work product to show off, and references, you could work your way up to $150/hr in this space.
posted by Joey Buttafoucault at 4:10 PM on September 20, 2011
Indicate you are open to full-time employment after this contract, if you are, or that you are open to further contracts at a newly negotiated rate. I think ultimately, when you have some solid experience, a work product to show off, and references, you could work your way up to $150/hr in this space.
posted by Joey Buttafoucault at 4:10 PM on September 20, 2011
Looks like Invoke has a lot more experience than I do in this space; maybe you should take his advice on the rate. Do note, however, that we both recommend doubling your personal, internal estimate of how long it will take you.
posted by Joey Buttafoucault at 4:13 PM on September 20, 2011
posted by Joey Buttafoucault at 4:13 PM on September 20, 2011
Response by poster: Wow, that's fantastic, Invoke. Thanks. My location is Massachusetts but the employer is in the midwest; I will be working remotely, with possible but somewhat rare meatspace visits.
Also possibly relevant information: This employer is someone I know through a relative of mine. My relative has done several side-jobs for this person/company and has been paid reliably. I will still have the contract checked out, though, good catch.
posted by Earl the Polliwog at 4:16 PM on September 20, 2011
Also possibly relevant information: This employer is someone I know through a relative of mine. My relative has done several side-jobs for this person/company and has been paid reliably. I will still have the contract checked out, though, good catch.
posted by Earl the Polliwog at 4:16 PM on September 20, 2011
Best answer: Oh, I didn't mention this. If you are young, you may think of getting to travel as a bonus. It is not, it is a screaming hassle, and one you should be paid for. You should get paid, and paid well, for travelling to see a client. Also, you should understand that despite the price tag, they don't own your time. You get to have downtime, and also get to site-see a bit. I'm OK with up to 10 hours in a day. Going out to dinner is nice, but I still charge for the time.
I charge a minimum of $1000 a day for on-site meetings, with a trip-minimum of $1500, plus about $50/day (varies somewhat depending on location) for food, plus hotel and airfare paid by the client. Your minimum bill should be the meeting/onsite-days + a half day, as it is customary to charge for 50% of the travel time.
The hotel and airfare need to be paid for by the client, in advance. I have no problem getting this fee, no quibbles, ever. Most real businesses or startups with a real business plan understand that good programmers are incredibly hard to find, and they are fine with these reasonable arrangements. I'm also really good, and my clients know it. I tell them that, and I'm not shy about doing so, I think that's why I get my way in these matters.
I put this in the contract, up-front, and it radically decreases the amount of days I need to be travelling or spending bored evenings in hotels. Business travel stinks.
Do not sell yourself short, and do not ever accept the "bill us" request, unless you have a good line of credit and are contractually allowed to add at least 10% to your costs. I just like having everything paid up front, as it is much less of a hassle, and I don't have to worry about the client balking after a bad meeting, or after a contract dispute. They happen, and it is so much easier if you've already been paid. Commonly, I ask for a check from accounts-payable before I leave on the last day. I've never failed to get one.
posted by Invoke at 4:38 PM on September 20, 2011 [4 favorites]
I charge a minimum of $1000 a day for on-site meetings, with a trip-minimum of $1500, plus about $50/day (varies somewhat depending on location) for food, plus hotel and airfare paid by the client. Your minimum bill should be the meeting/onsite-days + a half day, as it is customary to charge for 50% of the travel time.
The hotel and airfare need to be paid for by the client, in advance. I have no problem getting this fee, no quibbles, ever. Most real businesses or startups with a real business plan understand that good programmers are incredibly hard to find, and they are fine with these reasonable arrangements. I'm also really good, and my clients know it. I tell them that, and I'm not shy about doing so, I think that's why I get my way in these matters.
I put this in the contract, up-front, and it radically decreases the amount of days I need to be travelling or spending bored evenings in hotels. Business travel stinks.
Do not sell yourself short, and do not ever accept the "bill us" request, unless you have a good line of credit and are contractually allowed to add at least 10% to your costs. I just like having everything paid up front, as it is much less of a hassle, and I don't have to worry about the client balking after a bad meeting, or after a contract dispute. They happen, and it is so much easier if you've already been paid. Commonly, I ask for a check from accounts-payable before I leave on the last day. I've never failed to get one.
posted by Invoke at 4:38 PM on September 20, 2011 [4 favorites]
Best answer: Also, please for both of your sakes treat the contact like you would a contract from a non-relative. Anything else will almost inevitably lead to friction between you. "It is business" is a reasonable, and rational approach. As a bonus, people understand that attitude.
I've never had a good contract from a friend or relative. On the other hand, I haven't tried one for a few years. If I did, I'd treat it like any other contract, maybe with 10% more trust. That's all the distance I'd go. The potential downside is too great. I'd rather things were clear and up-front than lose a friend or relative. I'd rather lose opportunity to make that the money than possibly or probably lose a friend or relative.
posted by Invoke at 5:01 PM on September 20, 2011 [1 favorite]
I've never had a good contract from a friend or relative. On the other hand, I haven't tried one for a few years. If I did, I'd treat it like any other contract, maybe with 10% more trust. That's all the distance I'd go. The potential downside is too great. I'd rather things were clear and up-front than lose a friend or relative. I'd rather lose opportunity to make that the money than possibly or probably lose a friend or relative.
posted by Invoke at 5:01 PM on September 20, 2011 [1 favorite]
Response by poster: Well, they were thinking more like twenty an hour to start, with likely increases after step one. Which I would love to be able to yaoming, but my bank account is in the hundreds and dropping, with fifteen times that in student loans. Alternatively, I could probably take a fulltime position with a 2-year commitment that doesn't use my math background, when I least want to be locked down. So I think I'm stuck with this for now.
posted by Earl the Polliwog at 12:24 PM on September 21, 2011
posted by Earl the Polliwog at 12:24 PM on September 21, 2011
This thread is closed to new comments.
posted by Monsieur Caution at 4:03 PM on September 20, 2011