Start with proven experience, global software development company not the number of logos on the website. Ask to see a couple of case studies that sit close to your domain and your stack, and then ask who actually wrote that code. A solid partner is happy to connect you with the people who would work on your project. Answers that name nobody at this stage usually mean the delivery team is not the team you were shown.
The agreement warrants a slower read than the pitch. Three clauses do most of the work: ownership of the code, confidentiality, and termination and handover. Every artifact must transfer to you as it is paid for, together with designs, scripts and infrastructure configuration. Look closely at wording that keeps framework code outside the transfer, which is better laravel or symfony since that is often exactly the piece that locks you in.
Ask where their numbers come from. A serious estimate arrives with the assumptions behind it, a breakdown by feature or module and an explicit range. A fixed-bid deal is only reasonable when the specification is complete; in any other case the supplier pads the number and you pay for uncertainty either way. A time-and-materials model moves the risk back to the client, so it requires visible weekly reporting and a spending cap.
The delivery process matters as much as team size. Establish how change requests are handled, who writes the acceptance criteria and how quality assurance works. A mature team will be able to demonstrate running web based software agency uk rather than status reports. Written acceptance criteria stay the only reliable protection against endless rounds of rework.
Last, custom mobile app development services think about the handover at the start rather than at the end. Require that the repository stays under your account 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 tells you quite a lot.