How to Scope a Software Project Before You Ask for a Quote
Why software quotes vary so widely, what actually drives the number, and the six things to prepare so the estimate you get is worth trusting.
Ask three development teams to quote the same project and the numbers will not be close. This is the moment most buyers conclude that software pricing is arbitrary. It usually is not. The spread is a symptom: the three teams were quoting three different projects, because the brief did not constrain the problem enough for them to be quoting the same thing.
The fastest way to get an estimate you can trust is to remove that ambiguity before you ask. Here is what actually drives the number, and what to prepare.
What actually drives cost
Scope certainty, more than scope size
A large, clearly-defined build is easier to price than a small vague one. When requirements are unclear, a team either pads the estimate to cover the unknown or quotes low and recovers it through change requests. You pay for uncertainty either way. The only question is whether you pay for it visibly.
Integrations
The single most under-estimated line item. Connecting to a system with good documentation and a stable API is routine work. Connecting to a legacy system with no documentation, or one whose vendor controls access, is open-ended. Every integration is a dependency on somebody else's decisions.
Data migration
Moving records out of an existing system is rarely the hard part. Cleaning them is. Duplicates, missing fields, three date formats, and the free-text column somebody used as a status flag. This work is invisible in a demo and is frequently the largest surprise in a project.
Number of user roles
Each distinct role adds screens, permissions, and testing paths. A tool with one kind of user is a fraction of the work of one with an admin, a manager, a field user, and a read-only auditor.
Compliance and security requirements
If the system handles payroll, health data, payments, or anything with a statutory reporting obligation, the requirements are not a feature, they are a constraint on the whole architecture. Say so at the start, not at user acceptance testing.
Who owns decisions
Genuinely a cost driver. A project with one empowered decision-maker moves faster than one where every choice goes to a committee. Teams that have delivered a few projects can feel this in a first conversation, and it shows up in the estimate whether or not anyone names it.
Six things to prepare
- The problem, not the solution. Write down what is going wrong today and what it costs. "Our sales team loses track of follow-ups and we cannot tell which deals stalled" is more useful than "we need a CRM", because it leaves room for the answer to be smaller and cheaper than you assumed.
- Who uses it and what each of them does. A list of roles with the two or three tasks each performs. This is the single highest-value artefact you can bring.
- What it must connect to. Name the systems, and note whether each has an API and who administers it.
- What data exists today and where it lives. Even "four spreadsheets and an access database" is useful. A sample export is more useful still.
- What success looks like in numbers. Hours saved, errors reduced, a report that takes minutes instead of days. This keeps scope honest, because features that do not move the number can be deferred.
- Your real constraints. Budget range, deadline, and any technology you are locked into. Withholding a budget range does not get you a better price, it gets you a proposal aimed at the wrong scale.
Expect a discovery phase, and be glad of it
For anything beyond a small, well-understood build, a credible team will want a paid discovery phase before quoting the whole project. This is not a way of billing you twice. It is the difference between an estimate based on a conversation and one based on a mapped process.
A discovery phase should produce artefacts you own and could hand to a different team: the current process mapped, the requirements written down, the integration points identified, the risks named, and a phased plan. If it produces only a price, it was a sales exercise.
At Yoddha Lab this is the Understand stage, and it comes before Plan, Build and Implement, and Evaluate and Improve, for exactly this reason.
What a usable requirements document contains
Requirements documents fail in two directions. Too vague and every team prices a different project. Too detailed and you have specified a solution before anyone understood the problem, which locks in your first guess as a constraint.
The useful middle is short and looks like this:
- Context. A paragraph on what the business does and where this fits. Without it, every recommendation is made blind.
- The problem, with a cost attached. What goes wrong today and what it costs in hours, errors, or lost work.
- User roles and their tasks. Two or three sentences each. This alone removes most estimating ambiguity.
- Must-have versus nice-to-have, decided before you see a price rather than after. Deciding afterwards means negotiating with yourself.
- Systems it touches, with a note on who administers each and whether it has an API.
- Constraints. Budget range, deadline and what drives it, compliance requirements, technology you are locked into.
- Explicit non-goals. What this project is deliberately not doing. This is the most underrated section and the one that prevents the most scope disputes.
Two to four pages is usually right. If it is longer than that before any discovery work, you are specifying rather than scoping.
Reading a proposal
Once quotes arrive, the differences that matter are rarely the totals.
Reassuring signs: the proposal restates your problem in its own words, which proves it was understood rather than skimmed; it names assumptions explicitly; it flags what is uncertain; it separates build from ongoing maintenance; and it proposes phases with something usable at the end of the first.
Worth questioning: a single number with no breakdown; a timeline with no dependency on anything you provide, which means your review time was not planned for; no mention of testing or data migration; a feature list that mirrors your document back without challenging anything; and a price that is dramatically below the others, which usually signals a smaller project was understood, not a better rate.
A team that pushes back on part of your brief is generally a better sign than one that agrees with all of it.
Questions worth asking any team you approach
- What would make this project cost more than your estimate?
- Which part of this are you least certain about?
- What do you need from us, and when, to hit that timeline?
- What happens to the code and the data if we part ways?
- Who maintains this after launch, and what does that cost?
The answers matter less than the willingness to answer. A team that names its own uncertainty is easier to work with than one that claims there is none.
One thing to avoid
Do not buy a tool to fix a process problem before you have mapped the process. It is the most common expensive mistake we see: software gets purchased to solve something the software was never going to solve, and the underlying process is still there afterwards, now with an extra system attached to it. That is the case for looking at the process first.
Yoddha Lab builds custom software and reengineers business processes from Kathmandu, Nepal. Every engagement starts with Understand, where we define the problem and objectives before anything is designed or priced. See our services or tell us what you are trying to fix.
