Begin with domain experience, not the length of the client list. Ask for three or four projects that sit close to your technology stack, and then find out which engineers actually built it. A serious vendor will put you on a call with the engineers. Evasive answers at this stage almost always mean the demo work came from somewhere else.
The paperwork needs more scrutiny than the proposal. Three clauses do most of the work: government it software intellectual property assignment, the NDA, and termination and handover. Every artifact should transfer to you once invoices are settled, along with documentation, pipelines and deployment scripts. Look closely at language that keeps so-called reusable libraries in the vendor’s hands, as it is usually the part you cannot replace later.
Find out how the estimate was built. A credible estimate is accompanied by a written set of assumptions, a task-level breakdown and a best case and a worst case. A fixed-bid deal works only when the specification is complete; when the scope is still moving the supplier pads the number and laravel vs .net you pay for it anyway. Hourly billing moves the risk back to the client, so it demands visible weekly reporting and a spending cap.
How the work is run matters more than headcount. Find out what happens when the scope changes, who writes the acceptance criteria and how to choose a software development contract testing is organised. A team can walk you through a working build every one or two weeks. Clear, written acceptance criteria remain the practical protection against an argument at delivery time.
Before signing, plan for the end of the engagement at the start rather than at the end. Insist that the source repository stays on infrastructure you own from the beginning, and that documentation is written as you go rather than left to the end. A provider confident in its own work accepts it without argument; a long negotiation over it reveals a great deal.
There are no comments