Ask HN: Charge per hour or per project?

6 points by cambaceres ↗ HN
I have just started a company that will build tailor made software for other companies. So far we have just had one gig where we built an app for a fixed price. Would you recommend us keep working against a fixed price per project, or should we charge per hour? What are the pros and cons with both?

16 comments

[ 2.6 ms ] story [ 50.8 ms ] thread
Fixed price projects are really really hard. You will almost always end with arguments what is in scope and what isn't. You'll always have stuff in the proposal that turns out to be a lot of work, or unnecessary, but if it's in the contract the client will demand you do it.

With hourly projects, you don't have that issue. When the client makes unreasonable demands, you just tell them how much time it would take.

My recommendation would be to provide detailed estimates to the client, that show how much work every part of the project is. Include a few optional parts. When requirements change during the project (as they always do), then you can say, well, we could just skip this optional part and do whatever the client wants instead. This way the client is happy (they still have the same price) and you are happy (you don't have to work more hours than you expected).

This is exactly what has happened on our first project. My thinking was that we have to write the contract more detailed in the future, but I guess it will be hard to avoid these situations anyway. I'll try out your advice, thanks a lot.
The key is not better contracts. At the small and middle scales, pointing to the contract is almost always a sign of a poor relationship.

Good client relationships are worth more than a good contract. You want someone you can trust in a handshake deal. You want a good contract too. But the most important thing is a relationship where people see a problem as mutual. Where it's both the client didn't say and you didn't ask.

So when they ask for more than what’s in the contract, how should I respond?
With a conversation that delinates the proposed change to scope and its impact on cost and timeline.

But more important is to discuss how changes will be handled before signing the contract. In particular something like "You will probably change your mind as we go along, that's normal, here's how we might proceed when that happens."

At some point, I recognized a pattern. Potential clients who have a problem with such a discussion up front are telling you that they will have a problem with that discussion when there's payment involved later.

Your options then are walk away from the client or price the work accordingly.

It's worth noting that you can build all of those changes into your price. Your job is to help the client make money on their new or existing business operations. It is not to save the client money on your services.

I prefer fixed price projects because I don't have to keep timesheets and justify to the client why work that they think is simple took longer than they thought it should. The problem with fixed price is that you need a very solid specification and contract. If you don't clients will scope creep on you. The other difficulty with fixed price is that you have to estimate the effort accurately. I have had to swallow my pride and complete fixed price projects for lousy hourly rate because I under-estimated. But with time I got better at estimating and very assertive about specifications and contracts. Best to have a schedule of progress payments and deliverables. It can really hurt if you work on a project of a couple of months and then the client refuses to pay. I have had that problem too.

With all the cons of fixed price, I won't go back to hourly rates. I just can't stand the nit picking timesheet stuff. Seems that every client has a brother-in-law's nephew who programs faster and for less money. But why they don't give him the gig is always met with lots of hand-waving.

Thanks for your response. With deliverables, do you mean that you divide the project in parts and get paid for every part separately?
I tend to charge a day rate - in Germany that seems pretty normal and I charge at about the going rate. If the client is more price sensitive or has a very specific task in mind then I do hourly. I track all of my time for myself (including invoicing, admin, side projects etc.) but I don't expose any of this directly to clients, this really helps me figure out which clients and projects are worthwhile and which not. Fixed price has never worked out well for me but that's not to say it can't work for everyone, as a sibling comment explains it requires very specific requirements and contractual agreements, if you are going to go fixed price I'd recommending setting yourselves some minimum price that you won't go under. This helps to filter out a lot of the work you don't want to do.
(comment deleted)
(comment deleted)
There are pros and cons for each method.

Perceptionally, charging hourly is safer or you. But clients always think that you will pad the bills and take more time to do things than it should. It's in your best interest to take as much time as possible. That's just the way it is.

Now, fixed bids. There's a risk doing for a fixed price. What happens if it goes longer, and you spend more time than you planned? You take it in the shorts. But, the customer knows that you are going to do your damnedess to get it done on time and under budget.

But for comparison, look at public works construction companies. Those that build airports, highways, etc. All the companies give a fixed bid, and the lowest fixed bid wins. Adding a $5 billion wing to a major metro airport Like LAX or SFO is incredibly complex.

They key is to be super careful on your bid. And, like construction companies that do bids on complex projects, you have to be super vigelent about change orders. Meaning, the person you are working for wants changes to their original proposal. Because then it changes your bid. And, in construction and in programming, there are ALWAYS changes. So if they change their specifications in the slightest bit, you have to be 100% sure to charge them more. This is how construction companies actually make money. On the change orders. Here is what the ABA says about construction change orders: https://www.americanbar.org/groups/construction_industry/pub...

This is just general information for you. I am not a lawyer.

But, after you make a bid, and the person that you are doing the work for decides to make a change, that's on them, so they can't really accuse you of trying to "pad the charges."

Fixed bids are actually really great if you get super good at doing one thing, and get it done under the time you bid. If you work super fast and efficiently at an hourly rate, you won't get paid as much. For instance, if you do a bid to do create a software powered toenail clippers for $4,000, and you've done it before and can do it in 2 hours, you get paid $2,000 per hour. But if you do an hourly rate at $150 per hour, you only get a total of $300. So doing a fixed bid, as long as you actually know how much time it will take you, is the best of all possible worlds. The only thing to be 100% on point about is that any changes make a change to the fixed price, and you can either go hourly or fixed price on the changes, depending on the situation that you can do.

For sure you need to make progress payments as you go along, and make sure you charge a hefty amount before you even start. Whether it is 25% or 33%, whatever the situation demands, but you want to get some cash flow going right away. Cash is king. Money talks, bullshit walks. Never take someone’s word on it. Never take any job where you don’t get paid a portion up front. Before you walk in the door. And make sure you watch the definitive video on getting paid: https://www.youtube.com/watch?v=jVkLVRt6c1U

Thanks for a great answer! After reading this, I will continue to charge per project (because that's what I really want) and just be smart about it.
Glad to help. And one other thing I'd like to say. Someone else mentioned that your client will make changes and expect you to accommodate the changes. What you want to make sure is that you are very crisp and clean about it when you are in the negotiation stages. Be clear and up front and tell them in advance. Repeat yourself on that point. Repeat yourself on that point. Because that is a real sticking point for many companies. Almost, but not quite, to the point of belaboring the point. Explain to them why it is so. If you do a google search, you'll find a lot of articles about how changes effect programming time. Well, here: https://www.google.com/search?q=changes+to+programming+speci...

Create a summary of these points of why you have to charge extra for changes on a fixed bid, and show them. Tell them that it is the same exact thing that happens in construction, use that exact example. A construction company is not going to move a wall for free, it can take a lot of extra work. Tell them that a seemingly minor change might take a lot of work. Maybe document some specific examples of something that looks easy, and show what you did, and how much time it took - that to add 3 other it took you 40 hours of time. Show the code and everything, maybe even make a video making a "simple" change so that they can see exactly what work that goes into it. This is all a marketing expense, ok? Marketing. To show the client the reality of changes. So you won't get shit from them later, when you charge them extra.

Also, depending on what it is that you are doing, I would bill separately on change order changes, right then and there, that week. Do not incorporate it into the total cost. For sure don't do that. Make sure they understand and you tell them abut it. For you, cash is king, cash flow is king. Do not back down on this point. Changes and extras are billed immediately, that week.

And you should always bill them weekly on everything, even if it is a fixed price, if it is a 2 month project for example. Bill weekly. If the fixed price is $10,000 and it is a 2 month deal, then they pay $2,000 up front, and $1,000 every week thereafter, or whatever you decide the upfront and payments are going to be. Obviously if it is a one week project, that does not hold true.

Additionally, another thing I didn't mention, is if you can get the whole thing up front, even better. Let them pay $9,500 if they pay upfront. Get the cash fast as you can.

If their terms are that they pay monthly, then tell them that your terms are weekly, and be hard core negotiation on that. But if push comes to shove, you do monthly. Just try to negotiate hard on weekly payments. Or, you can say something like, if you want $10,000 for the project, you offer to do it for $11,000, then tell them that if they pay weekly, you will charge them $10,000. But those are just negotiating techniques. Maybe if you are working for a Fortune 500, they will never change their billing for your $10,000 bill, so you just have to accept it. Everything depends. But if it is a small 8 person company, you can negotiate that, because you will be talking to the owners directly, more than likely.

What I wrote above is mainly for change orders but it applies to everything.

Read the American Bar Association link that I gave you again, it is very informative on minor changes, and cardinal changes.

I have not had the time yet, will do it ASAP. I watched the full video you recommended though, that was exactly what I needed to see now!

Our current situation looks like this: Since we are in the beginning of this business we work with it on our spare time, while keeping the day jobs until we get more gigs. We have gotten our first gig, which is to build an application used in the shipping industry. We wrote a contract for the first delivery worth approx $25,000, and we have gotten a full payment. We have gotten promises on 2 more deliveries that will average approx $30,000. The issue is that now they are trying to put a lot of shit into the first delivery, although it's not in the contract. We (the two of us in the company) have let ourselves be a bit pushed around in the past weeks and have put at least 20 hours each into building stuff that was definitely not in the contract, with the fear that if we say no then they wont let us continue working on the app and we can forget the coming $60,000.

Anyway, your comment and the video made me realise that the way we are trying to please them right now is just stupid. We have the next meeting with them on Monday, and I know exactly what to say: Fuck you and pay us :D

I know you just started and that is very cool. In the future, as I said in prior post, be crystal clear on the point up front in the next client. Make sure to mention it and emphasize it. So say, "Just like in construction you wouldn't expect a contractor to move a wall for free after he built it, because you want it changed...it's the same thing, if the specifications change during the course of the work, then we need to come up with a new price." If they say no, better to know up front and turn the work down, because then they are going to be asshole customers who don't want to pay you.

For this particular situation that you are in, I'd probably say that it is kind of on you guys that it was not clear. Which is ok, you didn't know. You didn't emphasize that you don't work for free up front before you started the project, and then you went ahead and did extra 20 hours of work without saying something. I'd try to get it paid, but if they say no, then take your lumps, and on the next job say that "OK, but on the next one we will bill for extra." I'd try to get the 20 hours paid, though, but if they get too pissy I'd probably cut it to 10 hours, or even $0, if I had to, because it's your sort of mistake, on the unclear communication.

And remember, the whole Fuck you pay me is last resort, you always want to be friendly until you can't be. It does not really sound like a literal fuck you pay me situation. Just work it out. I don't know how much you would charge per hour, but if it is $150, that is $3,000. Don't lose $60K for $3,000. But still try to get paid for it, but don't be too hard nosed. You kind of have to play it by ear, but keep it light and friendly, with a small dose of humor, too, if possible.

A lot of it is in the presentation and the operations of it. I could tell a lot of stories of stuff.

Anyways, I think you get the gist of what I'm saying. Hope it all works out for you.

Your proposal structure should be tuned to the project.

Fixed fee is great for clients with experience paying for the type of work you do and who want you to stay in business.

Time and materials is worth considering for any other situation. Inexperienced, lowest cost seeking, and/or I-win-you-lose.

The big thing is not how you charge, but whether or not you are paid. The clients for new companies is generally "a market for lemons." Existing service providers hold on to good clients. Good clients hold on to existing service providers. That's what makes them good clients.

The first phase of your business is finding client relationships. Your great clients will be those who you help grow their business. And that will take time. Good luck.