Look at the company’s experience.
One of the most important aspects is the company’s experience and its presence on the market. If a software house has a long lasting experience in both big and small projects for the most significant institutions as well as for small businesses, it can also be a reliable partner in outsourcing.
Programists’ experience and skills
The key in making good projects are people. Always ask the company for CVs of programmers and analyse who will be the best to join for this project.
Review if people you are going to take for a project have enough experience. Software companies often offer: Junior, Medior and Senior developer to outsource so it is worth to analyse if a programmer who is classified as a Senior actually has these competences . Focus on personality and communication skills, check if a person will easily adapt to your current team.
Distance and time zones.
It is also worth to look at the distance and time zone of your potential contractor. You have to take into account if your working hours are flexible enough to work with somebody from different time zone. Think about your needs. Do you need to have personal meetings with a whole team? Maybe you want to have all the hired people in your office.
Ask the company about the tools which they are using. Redmine, basecamp, Slack, Facebook etc. – there are many tools which can be used to communicate in IT world and it also matters in cooperation between two companies. If one company is using only basecamp and the other one is using Redmine and Slack it can take some time to get used to new tools.
Do not overpay. In software development costs of two identical IT systems made by two different companies can vary by nearly 100%, so make an in-depth research if paying extra money will bring higher quality.