Custom Software Development: Costs, Process and What Actually Drives the Number
Published:
There is no honest price for custom software before someone has looked at your processes. What can be said up front is which variables move the number, and by how much — scope, integrations, data migration and compliance account for most of the difference between two quotes for superficially similar briefs that are an order of magnitude apart.
Why nobody can quote you accurately yet
A firm price before discovery is either padded to cover the unknowns, or it is a number that will be revised once the unknowns surface. Both are worse for you than a smaller, bounded piece of paid work that produces a real estimate.
The uncomfortable part is that the biggest cost drivers are usually invisible at enquiry stage. Nobody mentions the fifteen years of inconsistent customer records, or that the system has to integrate with a vendor portal that has no API, because from the inside those things are simply how the business works.
The four variables that move the number most
Scope is the obvious one, but it is less about feature count than about how many distinct user roles the system serves. Each role brings its own screens, permissions and edge cases. A system for one team is a fraction of the cost of the same functionality opened to four departments and an external portal.
Integrations are the second, and they are routinely underestimated. Each connected system brings authentication, data mapping, failure handling and a vendor whose API may be poorly documented or rate limited. Two integrations is not twice the work of one, because the reconciliation between them is new work again.
Data migration is the third and the most consistently underestimated of all. Moving records is trivial; deciding what a malformed record from 2014 should become is not, and that decision has to be made by someone from the business, repeatedly, over weeks.
Compliance is the fourth. Audit trails, data residency, retention rules and access controls are architectural, not cosmetic. Added at the start they are modest; retrofitted they can touch everything.
Fixed price, time and materials, or retainer
Fixed price transfers risk to the supplier, who prices that risk in. It works when scope is genuinely well understood, and it creates friction the moment you want a change — because every change is now a commercial negotiation rather than a conversation.
Time and materials is cheaper when scope is uncertain, which it usually is, but it requires you to stay engaged. Without a cap and regular review it has no natural brake.
A retainer suits ongoing development after the first release, where the work is a continuous stream of improvements rather than a defined project. Many engagements sensibly move through all three: fixed-fee discovery, milestone-billed build, retainer afterwards.
What a paid discovery should give you
A discovery that produces only a proposal is a sales document you paid for. What you should receive is a process map, a solution architecture, an integration inventory, a risk list and a costed delivery plan broken into increments.
The test is whether you could hand that package to a different supplier and get a comparable quote. If you can, it was real work. If you cannot, it was a pitch.
The costs people forget
Hosting and infrastructure are ongoing and scale with usage. Support and maintenance typically run at a meaningful annual fraction of the build cost, and skipping them does not remove the cost — it defers it into a larger remediation later.
Then there is change. Software that is actually used generates requests, because people find better ways to work once they can see their own data. Budgeting nothing for the year after launch is the most common planning error in this category.
How to compare quotes that differ wildly
When two quotes differ by three times, they are almost never quoting the same thing. Ask each supplier what they have assumed about data migration, how many integrations they have priced, who they expect to do user acceptance testing, and what happens commercially when a requirement changes.
The cheaper quote frequently excludes migration, assumes your team will test, and treats every change as a variation. That is not dishonest, but it is a different engagement, and the gap tends to close by the end.
Related
Request a project estimate
Tell us what you want to build, automate or improve, and we'll help you identify the right technical approach.