A mentor once told us something that stuck: anyone who quotes software to the dollar figure is essentially making it up.
A mentor once told us something that stuck: anyone who quotes software to the dollar figure is essentially making it up.
And they were right.
They shared something that really resonated with us. They said that the only thing that ever got them closer to a reliable dollar figure was their own time and experience working in the industry. Over the years, as they gained more exposure to different kinds of projects, their quotes naturally became sharper.
But even then, they admitted it was never perfect. Software is simply too unpredictable for any one person - or any one company - to guarantee accuracy down to the dollar. Their experience gave them instincts, but not certainty. And that’s the key: not everyone has the benefit of decades of trial, error, and pattern recognition to draw from. For most businesses and clients, leaning on experience alone isn’t a sustainable or scalable method.
Software development isn’t like buying a chair or a car where you can compare features and prices. By its very nature, software is unpredictable. Until you start building, you don’t truly know how complex a feature will be, how many interdependencies you’ll uncover, or how long it will take to refine and test.
If someone hands you a quote down to the exact dollar with absolute confidence, there are really only three possible outcomes:
No matter which of the first two happens, the result is the same: an imbalance in the relationship. That imbalance creates frustration, mistrust, and disappointment for both sides.
Some agencies still prefer milestone-based payments, where you only see the product at the end of each large phase—or worse, at the very end of the project.
On the surface, milestones sound neat: your project is broken down into chunks like authentication, settings, or subscriptions. But the catch is that this structure is traditionally a waterfall method.
That means you’re forced to lock in assumptions about your product at the very beginning—assumptions that may no longer be true by the time the milestone is delivered. For example, customer feedback, market shifts, or even new business priorities might emerge during development. Yet with a milestone approach, it’s often difficult (and expensive) to adjust once things are already in motion.
This creates two big risks:
By contrast, Agile sprints give you frequent checkpoints and the ability to adjust based on what you’re learning along the way—without being locked into outdated assumptions.
Instead of fixating on a single dollar figure, it’s far more effective to work within a range. Here is why it works best.
From the client’s perspective, the best way to do this is to:
With this clarity, the development team can come back with what they feel is achievable within the range, based on their own experience and expertise. This creates a more honest, flexible partnership and avoids the pitfalls of “perfect” quotes.
Quoting software to the dollar sounds neat and tidy—but in reality, it rarely serves either side well. By working in sprints, we embrace the uncertainty of software development with a framework that prioritises transparency, adaptability, and trust.
Because at the end of the day, building great software isn’t about guessing a number—it’s about building the right thing, the right way.