If you have ever had a home renovation done or a new construction (or known anyone who has gone through the process), you are probably already familiar with how construction estimates work. They are based on either a fixed price, time & materials, or a hybrid of both. Software development estimates are structured in a similar way. A different kind of development, but both construction and software do indeed share a lot of similarities when it comes to the different estimation options and the pro's and con's of each approach.
Having a plan
In home construction, a blueprint is necessary in order for a builder to know exactly what he needs to build. It lays out the requirements, details and scope of the project at hand. Without it, the builder would not be able to appropriately estimate. Imagine going to a builder without a blueprint and ask him to provide you with a detailed estimate for building you a 3 bed/2 bath house. Sure, they may be able to give you a general, wide-range ballpark of what it may cost but it would be impossible for them to give you a specific estimate because there are too many factors involved that could significantly impact the cost. The same goes for software development. Without detailed wireframes and project scope clearly identified, the best a vendor can provide you with is a very general, wide-range ballpark figure. In both of these industries, if you are in this situation where you do not have a plan in place yet, you would need to either hire a separate company to create the blueprints/wireframes first or alternatively, the builder/development company may offer those services and provide you with an estimate for how much it would cost to get done. Whether you have a plan already in place and fully scoped out or need to start from scratch, doing your homework beforehand to make sure you are clearly articulating what you need and why you need it will mean vendors will take your bid seriously and it will greatly impact the quality of the bids you receive (no matter which kind of bid you are getting). As part of doing your homework, you should also gather information about what questions you should ask your potential vendors to ensure they would be a good fit for you (this is accurate for both home construction as well as software projects!)
A fixed price estimate is just that – one fixed price. The vendor provides you a price for a specific amount of work and this is the “not to exceed” amount price you pay at the end of the project (so long as the project scope does not change). A fixed price estimate takes quite a bit of work to complete as it requires the vendor to not only price out the individual tasks/materials needed but they must also try to plan for the unforeseen.
- A client knows exactly what cost to expect upfront so they aren’t any surprises along the way.
- A payment schedule can be more predictable.
- There’s more incentive for the vendor to not let the project drag on too long.
- There is less flexibility when it comes to making changes along the way – such changes usually require a change order process.
- Often you don’t know exactly what you want upfront.
- Vendors have to cushion the fixed price to allow for potential unknown’s that may be encountered along the way.
The most vital thing for a fixed estimate is a clear plan. In order for the vendor to provide an accurate, fixed price estimate and in order for a client to feel more confident that they have thought through all of the what-if’s, a detailed plan needs to be developed prior to estimating. It’s a valuable piece of the puzzle and should not be skimped or taken lightly, especially when you are going with the fixed price estimate model. Good vendors will know what questions to ask upfront to help ensure your plan has covered as many factors as possible. It doesn’t mean that other “unknowns” will not come up in the process, but having a solid plan to begin with lowers that risk.
Time & Materials
In a time & materials pricing model, a client pays for the amount of hours put into the project plus any added expenses that accrued during the course of the project. In this method, an estimate is still provided, but it’s not a fixed price, i.e., the client knows that the price can fluctuate due to unforeseen issues, change in scope or added/removed features along the way. In both home construction as well as software development, the pro’s and con’s of this approach are very similar.
- It allows for more flexibility along the way. If during the project you decide you want to change some features, then the price/budget would just be adjusted to allow for this change. you’ll simply be charged for it.
- You can more easily react to the “unknown unknown’s” – often you don’t know exactly what you want at the beginning of the process.
- You may in fact pay less than what was estimated should the project be able to get done more efficiently or if you decide to scale-back during the process.
- You don’t know exactly what your final price will be.
- Because there isn’t a fixed, set price, a project could easily scale much larger than originally planned, especially if unforeseen issues arise during the course of the project.
- Project end date is not as predictable.
Similar to the fixed price model though, planning is the key. If you go into a time & materials estimate without a well thought-out plan, you run the risk of going over budget or not having enough money to finish the project properly. For example, in home construction, if you don’t have a good plan from the start you may allocate too much of your budget to windows and flooring and not have enough money at the end for the roof. And in software development, you may get carried away with adding additional features to your app and then at the end of the project you don’t have enough money for proper QA and testing. But if proper time and effort is put into the initial planning step of the process, it helps to eliminate some of the unease of a time & materials estimate and avoid such situations. A good development company (or in the home construction industry, a good contractor) will know the questions to ask in the planning phase so that the risk of the “unknown unknowns” is as low as possible.
The Hybrid Approach
The third approach is a hybrid of both the fixed price and the time & materials models. In this method a certain stage or part of the project will be based on the fixed price model and the other stages/parts be based on time & materials. Going back to our construction analogy, an example of this would be having the planning/blueprint creation stage be a fixed price and then the remainder of the project would be time & materials. Similarly, in software development, you can work out a fixed price approach for the discovery/wireframe development and then the actual build of the software could be time & materials. This approach can often be the best of both worlds (depending on your specific circumstances) as it allows for a certain level of certainty for a particular stage of the project but then allows for a certain level of flexibility with the remainder of the project.
There is no right or wrong approach when it comes to any of the pricing models – it truly depends on a client and vendor’s specific situation. The goal of this post has been to highlight the benefits and risks of each. In either a fixed price or time & materials method, it can often come down to who wants to take on the most financial risk. In a fixed price, often it’s the vendor taking on the financial risk as they will be “on the line” should unexpected issues arise (and this is why they typically add a cushion to their bid). In time & materials, it’s the client taking on the financial risk as a fixed price has not been agreed upon. If you’ve ever seen a home improvement show on HGTV (or the movie Money Pit), you’ve seen how project costs can escalate quite quickly once walls start opening up! And similarly with software development projects, there are certain circumstances where programmers won’t know exactly what the extent of work will be needed until they start to dig into the code. The key is for clients and vendors to work closely together on creating a thought-out plan before any construction/building/coding ever gets started. By taking this step very seriously (in either pricing structure model), you are giving your project a much higher likelihood of success. And just as important, it’s vital for a client to do their homework before a bid process even gets started so that they can articulate clearly what they need from the project. Come prepared and you will likely get much more insightful bids that will ultimately help your project be a success.