Skip to main content

Blog entry by Sheldon Forsythe

The dominant factor is not technology — it is almost always unclear scope. Each unanswered question in the requirements turns into a contingency inside the number you receive. A supplier that cannot see what happens on the unhappy path has to assume a pessimistic case. Spending a week on a discovery phase often reduces the final cost by far more than negotiating the rate.

Connections to other systems remain the next major multiplier. A form that saves data is low risk; the same screen connected to a payment provider and a CRM is another matter entirely. The cost lives in the third party: undocumented APIs, slow approval cycles, fields that mean something different on each side. Ask each bidder to list every external system, since this is the usual source of overruns.

Quality attributes quietly rewrite the estimate. An internal tool used by a small internal team costs far less than the same idea handling public traffic. Security reviews, uptime targets, performance under load, data retention rules and accessibility add weeks of work. Put them in the brief or you can expect them priced as extras.

The mix of people behind the number matters a great deal. A rate card reveals very little on its own: a senior engineer at a higher rate frequently turns out to be cheaper per delivered feature than two juniors who need heavy code review. Also ask which roles are billed: project management, testing, infrastructure work application support and maintenance services UX design are legitimate costs, but they should be named rather than hidden inside a blended rate.

The build price is rarely what you will actually spend. Budget for hosting, third-party licences, monitoring and a maintenance allowance for every year the software runs. A reasonable rule of thumb is that germany software development agency in active use needs a recurring percentage of the original budget per year in fixes, updates and small changes. Treating the launch as the finish line is the classic mistake.