Pulse
7 7IT Solutions
Custom Software

Questions to Ask Before Accepting a Software Development Quote

Lior Aharonov Lior Aharonov 16 min read

Before you accept any software development quote, put five questions to the bidder: who will own the finished code, what the price deliberately leaves out, how a change in month three gets scoped and priced, whether hosting and support cost extra over time, and which part of the job worries them most. A serious builder answers all five comfortably, in writing, and the answers turn a mysterious number into a comparable one. A shaky bid starts to wobble by the second question. The rest of this article expands those five into a full interrogation kit, shows how honest quotes are actually constructed, explains why two honest quotes for the same project can legitimately differ by a factor of three, and lists the red flags that should end a conversation regardless of price.

The short version

  • The cheapest quote and the best price are different things. The cheapest quote is a number on a proposal. The best price is what you actually paid by the end, in money, months, and rebuilds. The questions below are how you close the gap between them before signing.
  • An unusually low bid is often a measurement error, not a bargain. Auction researchers call it the winner's curse: the winner is frequently whoever most overestimated the value, or in software, most underestimated the work.
  • "What is not included?" does more work than any other question. Honest builders answer it fast, because they know exactly where their number's edges are. Evasion here predicts change orders later.
  • Code ownership is a one-sentence question with project-defining consequences. You want unambiguous, written confirmation that you own the code, the data, and the accounts on payment.
  • "What worries you most?" is the expertise detector. Every real project has a hard part. A bidder who sees none has either not read your brief or plans to discover the hard part on your budget.
  • Two honest quotes can differ 3x without anyone lying. They are usually pricing different depths of the same project: different assumptions about edge cases, polish, data migration, and what happens after launch.

Why is the lowest software quote often the most expensive?

In 1971, three petroleum engineers, Capen, Clapp, and Campbell, published a study of oil lease auctions with an unsettling conclusion: the companies that won the bidding systematically earned less than they expected on the tracts they won. Nobody was cheating. The mechanism was pure arithmetic. When many firms estimate an unknown value, the estimates scatter around the truth, and the auction hands the prize to the bidder at the optimistic tail of the scatter. Winning was evidence of overestimation. Economists led by Richard Thaler later documented the pattern, now called the winner's curse, across markets from book publishing to corporate takeovers.

Now flip the direction and you have software quotes. Five builders estimate the same project. The estimates scatter, because estimating software is genuinely hard. If you select on price alone, you are not choosing the most efficient builder. You are choosing, with high probability, whoever most underestimated your project: missed the most edge cases, assumed the cleanest data, imagined the fewest revisions. Their misjudgment does not vanish when you sign. You move in and live inside it, and it gets paid for anyway, through change orders, quality cuts, timeline slides, or a relationship that sours when the builder realizes they are working for free. We see the aftermath regularly, because rescue work is a steady part of our intake, and the case files rhyme with everything we cataloged in why custom software projects fail.

To be fair and clear: a low bid is not automatically wrong. Sometimes a builder has genuinely relevant experience, a library of prior work, or a lower cost base. The point is narrower. A low bid is a claim that the project is smaller than others believe, and that claim deserves interrogation, not celebration. The questions below are the interrogation.

What questions should you ask before accepting a software quote?

Ask every bidder the same list, in writing where possible, and keep the answers. The comparison between answers is worth more than any single one.

  1. Who owns the code, the data, and the accounts when we are done? The only acceptable answer: you do, unambiguously, in writing, upon payment, including the source code, the database and its contents, and the hosting, domain, and third-party accounts, which should live in your name from day one. Anything foggy here, licenses to keep using "their platform," code that stays on their machines, hosting only they control, is a leash disguised as a service. This single question eliminates more future misery than any other on the list.
  2. What is not included in this price? The honest ones answer fast, and the speed itself is the signal: builders who know their craft know exactly where their number ends. Listen for the specifics that are routinely assumed and rarely priced: data migration from your current tools, revisions after you see it working, training, deployment, bug fixes after launch and for how long. A bidder who insists everything is included has either padded the price or is planning to renegotiate it later, one surprise at a time.
  3. What happens when we need a change in month three? Not if, when. No first version survives contact with real use unchanged, which is by design, not failure. You are listening for a process and a price: how changes get scoped, what a small change costs, what the hourly or per-phase rate is after delivery. Vague warmth here ("we'll take care of you") converts to invoices later. A builder with a clear change process has been through the cycle enough times to respect it.
  4. Are hosting, support, and maintenance included, and at what cost after the first year? Software is not a one-time purchase; it is a purchase plus a modest running cost, and quotes that hide the second part are optical illusions. Get the monthly number, what it covers, and what happens if you decline it. We wrote a full breakdown of what that ongoing line item should contain in the software maintenance budget explained.
  5. What part of this project worries you most? This is the expertise detector, and silence is the worst possible answer. Every real project has a hard part: the messy data migration, the third-party API with poor documentation, the offline requirement, the ambiguous approval flow. An experienced builder identifies theirs instantly, because they have been burned before, and a bidder who answers "nothing, it is all straightforward" has either not read your requirements or intends to discover the hard part on your budget.
  6. Can we phase this, and what would the first phase alone cost? Watch the reaction closely. Builders confident in their work like small first phases, because each milestone sells the next one. Builders who push hard for the whole project up front, paid up front, are telling you where they believe their leverage peaks: before you have seen anything work.
  7. What do you need from us, and by when? Every build depends on client inputs: decisions, content, data exports, test time. A bidder who says "nothing, we handle everything" is scripting the future excuse for delay. The honest answer is a short list with dates, and it doubles as evidence they have actually thought your project through.
  8. Who exactly will do the work? The person selling is not always the person building. Subcontracting is not a sin, but opacity about it is. You want to know whose hands touch your system and who is accountable when something breaks at a bad hour.
  9. What happens if we stop after any phase? The grown-up answer: you keep everything built so far, documented and deployed, and you can walk away or hand it to another developer. If leaving is painful by design, you are not buying software. You are buying a subscription to a relationship.

Notice what these questions have in common: none of them require technical knowledge, and all of them are answerable in plain language. If the answers come back wrapped in jargon you cannot penetrate, that is itself an answer, and the plain-language standard we set for requirements in writing software requirements without tech jargon applies with equal force to proposals.

How is an honest software quote constructed?

Knowing how the sausage is made changes how you read the menu, so here is how a real number gets built, at least at our shop.

It starts with the map, not the math. A quote produced without walking your actual workflow, exceptions included, is a quote for the tidy version of your business, and the tidy version does not exist. That is why we insist on the mapping session described in documenting your process before building before any number leaves the building: the map is what converts "roughly a booking system" into a countable list of screens, rules, integrations, and edge cases.

Then the work gets decomposed and estimated in ranges, because every piece carries uncertainty: this integration is well-trodden, that data migration depends on how dirty twelve years of spreadsheet entries turn out to be. An honest quote prices the likely case and says out loud where the variance lives. This is also where contingency comes from. It is not padding; it is the priced acknowledgment that some uncertainty survives even a good map. A bidder who claims zero uncertainty is not more skilled than the others. They are just pricing the best case and betting your project lands on it.

Finally, the number gets fenced with assumptions, in writing: what is included, what is explicitly out, what the client provides, what a change costs. The fence is a kindness to both sides. It is what makes the difference between "the price changed because reality differed from the written assumptions" and "the price changed because the builder felt like it."

Our own version of this lands as a fixed-price first phase: scope, price, and milestone demos agreed before code, you own everything at every boundary, and each phase has to earn the next one. The full mechanics are in how we build custom software step by step. We built the process this way because it deletes the standard failure mode of software pricing: the incentive to win with optimism and recover with change orders.

Why do two honest quotes differ by 3x?

Because they are usually quotes for different projects that happen to share your project's name. When owners send us a competitor's dramatically different number, the gap almost always decomposes into four layers, and none of them require anyone to be lying.

Different assumed depth. One builder priced the happy path: orders flow, everyone enters data correctly, the integration behaves. Another priced reality: validation on every input, the weird refund path, what happens when the API is down at 2 a.m. The second system costs more because it is more system. The tragedy is that on a proposal, both read as "order management."

Different edges. One quote includes migrating your existing data, training the team, a warranty window, and deployment into accounts you own. Another quietly excludes all four. Until you ask question two, "what is not included," the numbers are not comparable at all; they are different-sized boxes with the same label.

Different aftermath. Some quotes are priced to end at launch. Others are priced knowing month three exists: some revision budget, documentation a stranger could pick up, handover. A build priced with no aftermath is cheaper the way a car with no spare tire is lighter.

Different builders, honestly. Experience concentrated in exactly your kind of problem makes some work genuinely faster for one shop than another, and rates legitimately vary with seniority and overhead. This layer is real, but note that it is the smallest of the four. Most of a 3x spread is scope definition, not talent or greed.

The practical conclusion: never average quotes, and never simply take the lowest or the middle. Instead, use the answers from your question list to rewrite every bid into the same shape, same inclusions, same aftermath, same ownership terms, and only then compare numbers. Quotes converge remarkably once they describe the same project. What remains after that convergence is the real price difference, and it is usually modest enough to decide on trust, communication, and evidence of listening. For calibration on what ranges are normal in the first place, we published our honest breakdown in what custom software costs.

What are the red flags in a software development quote?

Some signals should end the conversation regardless of how attractive the number is.

  • Fog around code ownership. Any hesitation, licensing hedge, or "our proprietary platform" framing on question one. This is the flag that costs the most to ignore.
  • A quote produced with no questions asked. If your requirements were ambiguous, and every first draft is, a bidder who asked nothing priced their own assumptions, not your business. The change orders are already loaded.
  • "Nothing about this project worries me." Either they did not read it, or the hard part will be discovered later, on your invoice.
  • Everything is included, trust us. Real projects have edges. A proposal without a written exclusions list does not lack exclusions; it lacks the honesty about where they are.
  • Full payment, or most of it, up front. Payment should track demonstrated milestones, so that at every point the money delivered and the work delivered roughly balance. A builder who needs the leverage inverted is telling you how the relationship will feel.
  • Pressure to sign this week. Discounts that expire in 48 hours belong to gym memberships, not engineering. The good builders are busy, not desperate.
  • No process for changes, or hostility to phasing. Both say the same thing: this shop's economics depend on locking the whole project in before you learn anything.
  • You cannot understand the proposal. If the document describing your own project is impenetrable to you, imagine the change-request negotiations. Jargon in a proposal is not sophistication. It is fog, and fog always billows toward the client's side of the table.

None of these flags means the bidder is a villain. Each one means the structure of the deal transfers risk quietly from them to you, and structure, unlike charm, is what you actually live with for the length of a build.

The homework, then, fits on an index card: map your process, write plain requirements, send the same document to every bidder, ask the nine questions, rewrite the bids into one shape, and only then look at the numbers. It is a few hours of work to protect a five-figure decision. And if you want a data point for your comparison set, send me the same document you sent everyone else and you will get back a first-phase quote with the exclusions, assumptions, and worries written down before you ask.

Common pitfalls

The questions above only protect you if you avoid the buyer-side mistakes that quietly undo them.

  • Anchoring on the lowest number. Once a fantasy price is lodged in your head, you negotiate the honest bidders down to match it, and end up buying the winner's curse on purpose rather than by accident.
  • Mistaking a range for weakness. Preferring the single confident figure to an honest "here is where it could move" rewards whoever hid the uncertainty best, which is the opposite of what you want.
  • Leaving the answers in email. Collecting good written replies and then signing paperwork that references none of them lets every assumption and exclusion evaporate the moment work starts.
  • Buying the salesperson. Grading on the warmth and speed of the person quoting, rather than evidence about whoever will actually build, selects for a talent that never touches your system.

An owner gathered three bids, fell for the cheapest, and used it as a club to make the other two "match." The honest shops did match the price, by silently trimming data migration and the post-launch window until the scope fit the number. The buyer got the low figure and the thin scope together, just under a different logo, and met the missing pieces later as change orders. Forcing all three onto identical inclusions before looking at price would have exposed the cheap bid as a smaller project wearing the same name.

FAQ

What questions should I ask a software developer before signing a contract?

Cover five areas before you sign: ownership of the finished code and accounts, what the price deliberately excludes, how mid-project changes get scoped and billed, whether hosting and support cost extra over time, and which part of the work the bidder privately finds hardest. Those five turn a mysterious number into something you can compare across bids. Then add the structural checks, whether the work can be phased, who actually writes the code, what they will need from you, and what happens if you stop after phase one. Insist that every answer arrive in plain language and in writing.

Why do software development quotes vary so much for the same project?

Mostly because the bids describe different depths of the same idea: one prices the happy path while another prices validation, edge cases, data migration, training, and post-launch support, and hidden exclusions do the rest. A smaller share is legitimate rate and experience differences between builders. The fix is to normalize before comparing: use the answers to "what is not included" to rewrite every bid to identical inclusions, then compare the numbers that remain.

Is the cheapest software quote ever the right choice?

Sometimes, when it survives scrutiny: the builder can explain specifically why their number is lower (prior work in exactly this problem, a smaller honest scope you actually prefer), ownership is clean, exclusions are written, and payment tracks milestones. What should never decide alone is the number itself, because selection on price without interrogation systematically favors whoever most underestimated your project, which is the winner's curse with your budget as the prize.

How much should I pay a software developer up front?

Small deposits are normal and fair; heavy prepayment is not. A healthy structure ties payments to demonstrated milestones, working software you can see and test, so that neither side ever carries a large unbalanced risk. We run fixed-price phases with payment at agreed demonstrations precisely so the incentive stays where it belongs: on the next visible result, not on defending money already banked.

What does "who owns the code" actually mean in practice?

It means that upon payment you hold the source code in a repository you control, the database and every record in it, and the hosting, domain, and third-party accounts registered in your business's name, with the contractual right to modify everything and to hire anyone else to do so. If any of those pieces stays with the builder, licensed, hosted only by them, or in their accounts, you own a service, not software, and every future negotiation starts from that fact.

Have a project in mind?

Let's turn it into custom software that moves your business forward.