What is an estimate? Why can’t I get an exact cost?
Estimates are an educated guess at the cost, size, or value of something. When we provide a cost estimate, it is a rough calculation based on the information available to us at the time. Final costs may be affected by unknown factors that are discovered while doing the work. Variables that can change an estimate include the characteristics of the code base, complexity of integrations, your edits to our work, and other factors.
Why Can’t I Get an Exact Cost?
Most weekdays I drive from my home in Glover Park to our Brick Factory office in downtown DC near the White House. The drive typically takes 20 minutes, but in the five years I’ve made the commute it has taken anywhere between 10 minutes and an hour. External factors like if school is in sessions, weather, Presidential motorcades, or wrecks can impact my commute time. I plan on the commute taking 30 minutes, but some days I’ve been super early while other days I’ve been late. Estimates work the same way. Unknown factors can impact how long it takes to complete work.
The nature of software development is that every project comes with some risk.. For small/common tasks, the risk is small and we can usually make a pretty good guess about the time involved. But the fact is that we have never done that exact work on your exact site, so it can be difficult to know the precise time needed to complete even a simple task.
Plus, some of the time needed to complete a task depends on you! You may have unexpected feedback or edits that come up once you see the work in real life. It’s hard to estimate the extent of your changes before we even start working.
How Do I Budget Without Knowing the Cost?
Even though we can’t give you an exact cost, we will always do our best to create an accurate estimate for you.
- Using Ranges: For small tasks, we normally give a small range - perhaps 2-3 hours or 3-5 hours. For larger or more complex tasks, the range might expand as well, 150-200 hours for example. Your client manager may also use a story points or “bucket size” system for estimating the size of your request.
- Discovery Budget: For complex work like troubleshooting or working with third party vendors, it is helpful to set aside a bit of time for discovery work. We will request your approval of a set amount of time to investigate the task and use that time to develop an overall estimate once we get to know the details of the work.
- Budget Cap: If you’re not sure of the scope of the work or would like to use an iterative approach, it’s best to set a maximum budget and then have us work in phases with that overall budget in mind. We provide frequent budget updates to help you make decisions about direction as the project progresses. This approach also has the benefit of allowing you to get hands-on experience with your feature to inform your decisions about future development.