You can find other articles online discussing why one is the right way. I would encourage you to look at who owns the site. Later I’ll explain why a vendor might try to tell you it’s always best to use time and materials.
Time and Materials
First, let’s define what this model is. This is when a company bills you a specified rate based on the amount of time it takes to complete your project. This is what you’re used to seeing in quotes.
Why It’s Used
Software projects are hard to estimate. In the beginning, you’ll sit down and try to document every single requirement you can dream up. Yet, there are always going to be new ideas or changes that come up during the project.
Since things always change, figuring out how long a project is going to take is difficult. This pricing model essentially says we’ll guess at a price but we don’t know.
Vendors like this approach because it reduces their risk. If they estimate your project is going to take 4 months and it ends up taking 6, they end up making more money. Vendors can reduce risk on their balance sheet while moving it to yours.
I’m not trying to say a vendor would intentionally underestimate the amount of a time a project will take. In general human beings are optimistic about how fast they can do something. Your project is not exempt.
Incentivizes Slower Work
Everyone says they have the most skilled developers. But, the hourly billing model incentivizes the opposite.
Imagine you’re billed $200 / hr for a senior developer and $100 / hr for a junior developer. If the senior developer can complete a task in 3 hours you’re billed $600. If it takes the junior developer 9 hours you’re billed $900. Plus it’ll take the junior longer to fix any bugs found in the initial implementation.
If the vendor has enough work to keep everyone busy all day long then it doesn’t matter. That isn’t always the case though. It is also much easier for any firm to find a junior developer.
Developers might also choose to try out new frameworks or over-engineer their solutions. Since these would both take more time that would cost you more money. Trying out new technology is necessary, but not at your expense.
This doesn’t mean that if someone is billing you by the hour they must have bad developers. It also doesn’t mean that you shouldn’t work with junior developers. This only means that the business revenue isn’t aligned with using the most efficient developers.
Encourages Scope Creep
The more features that are added to the project the more you’ll need to pay. Vendors are less likely to interject since that means more money for them. This can be good or bad. If you have no idea what you want and need to pay someone to experiment, this is great.
You run the risk of spending all your budget and ending up with a project that still isn’t functional. If the budget is the main concern, you’ll want to have a project manager that can ensure scope creep doesn’t occur.
If your company is budget conscious you’ll start to scrutinize every bill. You’ll wonder why it took so many hours to complete a task. It only gets worse if the original estimate was low.
When To Use
The hourly rate model is a great fit when what you want is staff augmentation. You already have the project managers in place to handle this type of work. If you want a few more people around without hiring more full-time staff this is for you.
You should consider these people as a more flexible extension of your workforce. You’re going to tell them exactly what to do and when you would like them to do it.
Fixed price proposals are much simpler. You get a price for the project and that is what you pay. There is no guessing at what the final price will be. The risk has moved from your company to the vendor. If they underestimate the effort they’ll have to make up for it themselves.
Incentivizes Efficient Work
Unlike hourly pricing, this model encourages the vendor to work efficiently. Now the senior developer is much more attractive to the profit margin.
There also is a risk that the developers will rush through the project to get it completed as fast as possible. This can be mitigated during the proposal negotiation. You should ensure that they have the proper quality checks in place. You should also make sure the contract has some period where bug fixes will be covered at no extra cost.
Project changes are expensive
If you have a major change in direction halfway through the project you could have a large expense. If you have to outright cancel the project you’re still stuck with the bill (although there is probably a minimum in your hourly rate proposal too).
If you decide that instead of building a mobile app you want to update your website you might have some options. If your vendor does both they’ll probably be willing to renegotiate the proposal. If you were working a vendor that specialized in only mobile apps though you might be out of luck.
Could be more expensive
The fixed price model could be more expensive. Since the vendor is taking on all the pricing risk they might charge more.
When To Use
This model is better when you would like a partner instead of more staff. You’re hiring a vendor that is going to stand behind their quote. They’ll deliver your project at a price you know you’re happy with.
You need to be confident that the project is going to be valuable to the business. This model makes the decision to start a project even easier. If you know the project will give your business $500,000 worth of value and the cost is $100,000 it’s a no brainer. If the value is less than the price you know the project isn’t a good idea for now.
This question has the same answer as almost any technology-related question…it depends.
Would you like a few more developers, but can’t quite commit to more full-time employees? Do you have project managers and want to write a lot of requirements? Do you want to explore and hope to find what you need as you go? You want an hourly rate.
Are you risk-averse, especially with your budget? Would you be very upset if your project estimated to cost $10,000 ended up being $20,000? You want a fixed price.