Why hourly contracts are better than fixed prices

A while ago I have decided to charge hourly. This sometimes puts clients off, who seem to prefer the comfort of knowing the full project price upfront. However, fixed price rarely ends up well for me or for my clients.

Disadvantages as a service provider

  • Estimating is hard. Every project is unique. I either go too low and lose money or go too high and rip off the client.
  • Estimating properly takes time. I might need to spend weeks to architect a project. And I might need the client’s involvement to answer a lot of questions. Most clients do not expect this.
  • With a fixed price, two new challenges appear – time management (since fixed bid is usually fixed time) and scope creep (you want to make sure you build only what you quoted). Both things take time and a different skillset.
  • It’s hard to keep the client happy. Scope creep tends to be natural.  Most people cannot really understand the software completely till they see it. So since the client won’t be able to articulate the needs in the first place, they won’t be getting a fixed price anyway, unless you want to eat up the costs.
  • Working in teams make fixed price even harder. Winning a contract takes time. It is not uncommon that the original estimate was created by another developer(s) than the ones ending up doing the work. I have a very vague idea on how long it takes me to do something. I have no idea how long it will take for a developer that may not even be hired in the company when I’m estimating.
  • Fixed price is toxic for the team. It’s the number one reason for overtime, arguments, endless meetings, loss of profits.
  • In companies, fixed price adds a lot of overhead. Before you know it, you will need project managers to keep track of hours and progress. You will need client-facing persons to explain why something is out of scope. You will be writing a lot of proposals/change requests. You will have a lot of meetings to keep everyone in sync.

Disadvantages as a client

Clients usually think that fixed price is better for them. But here is why it isn’t….

  • The fixed price is a lot higher. That’s because any company will add risk and the cost of the additional staff (client partner, management etc). That easily multiples the price by a factory of two or three.
  • Fixed price makes the project lower quality. The focus is to finish as fast as possible.
  • As a client, you rarely know exactly what you want. Actually, it’s usually recommended to ask the specialist’s opinion along the way. So then why be forced to take all the decisions before starting the project?
  • The relation with the developer can easily turn sour. The worst projects are the ones that switched several teams of developers.

How can it work?

Of course, there are cases where fixed price works great, otherwise the model would have disappeared long time ago…

  • You can charge a huge price. That’s the case with the top-tier companies. Their reputation allows them to change so much that the development cost does not matter. Then they can hire/fire/switch teams so that they hit the launch dates.
  • You had the same project before. If you can just copy-paste most of the code, it would be silly to charge hourly. You might be able to deliver a 1000-hours project in 2-3 hours!
  • Project is small. This usually works for projects like logos or WordPress sites. If the project is just a few hours/days of work, it might be worth the risk. You will occasionally hit a picky client, but that may mean only 1-2 more days of work and can even out with the other projects.
  • You get lucky. Sometimes, tasks might take less than estimated. Since the client is in a fixed bid contract, you get to keep the extra money.

How can I charge hourly?

A lot of freelancers/companies will not charge hourly simply because they won’t find the clients to accept this. Here are a few tips to get paid hourly…

  • Get hired. Yep, that’s the easiest. A salary is hourly payment. While you might have a boss that asks you to work faster, you will get paid even if your estimates are wrong. Get more experience under your belt, at some point you will be ready to consult/freelance/start your own company.
  • Don’t reach out. If you have to actively search for clients, you’re doing it wrong. Hourly contracts imply trust. If a client reaches out to you, it means they already trust you to a degree. This applies to freelancers, I guess if you have a company with a sales team you should let them sell.
  • Learn the principles of Agile. Hourly works great with Agile. Build a process, present it to the client. Most clients initially refuse the approach just because they don’t understand how it can work.
  • Build trust. You might need to do the first project fixed bid, or provide a very accurate estimate. The second one will be hourly for sure if the client is happy. If the client has a solid business, they will always have work for you. So get a few of those and you’re good.
  • Associate yourself with bigger names. Be part of freelancer networks or collaborate with companies. Especially if you’re living in poorer countries, having a bigger company to back you up will give clients a trust boost. Not to mention that such networks/companies usually bring clients to you without any effort. Just tell them you’re working hourly and let them figure out the clients that want your services.