Skip to main content

Blog entry by Son Dearing

The dominant factor is not the choice of framework — it is unclear scope. Every open question in the specification becomes padding in the estimate. A supplier that has no visibility into the edge cases will assume a pessimistic case. Putting two weeks into a proper discovery frequently cuts the total far more than any rate negotiation.

Connections to other systems remain another reliable source of cost. A screen that writes to your own database is easy to estimate; the same functionality talking to a legacy ERP is a different problem. The effort hides in the third party: rate limits and sandbox access, custom ai solutions development long certification processes, inconsistent data. Ask any vendor to list every external system, since this is where estimates break.

Quality attributes silently change the estimate. A tool used by a small internal team has almost nothing in common with the same idea handling thousands of external customers. Audit and compliance requirements, uptime targets, scalability, audit logging and multi-language support add weeks of work. Write them down at the start or expect them to arrive later as change requests.

Who actually does the work matters a great deal. An hourly rate says very little on its own: an experienced engineer at a higher rate is often less expensive in the end than two juniors who need constant review. Also ask which roles are billed: project management, testing, DevOps and kotlin development services design have to be done by someone, but they should be named rather than hidden inside a blended rate.

The number in the proposal is never the full cost of ownership. Expect infrastructure, third-party licences, monitoring and a maintenance allowance for every year the software runs. A common working assumption is that a live system requires a meaningful share of the initial investment every year simply to stay current. Treating the launch as the finish line remains the classic mistake.