Consider experience of the developers. Here several things you should pay attention to:
- projects they have already implemented;
- industries they develop for;
- sizes of projects.
You can also ask for résumés of specific developers because it may happen that the company has no projects accomplished in a desired domain but has developers which gained experience in it on previous jobs.
Take a look at technologies developers specialize in and amount of employees possessing these technologies.
The point here is that it is impossible to be an expert in everything. Either a company is focused on something specific, or it takes everything coming its way. The second option can’t be professional. For example, if a company consists of 10 people offering more than 20 different solutions or technologies, the question arises: "Ok, then each of these developers has to be good at 2 technologies and not at others. If my project requires three developers and only one technology, where are 2 more people experienced in this technology?"
3. Solution comprehension
Consider if the software development company provides a complete and comprehensive solution or needs to contact other companies for additional services, e.g. design, business analysis or software testing.
4. Recommendations from previous clients
As a rule, detached people may give a more objective assessment of a software developer than he does it himself. So, contact previous clients of the company and collect:
- their feedback and reference;
- whether projects were completed successfully or not;
- whether clients are satisfied with quality of the developed software;
- whether projects were completed on time.
5. Approaches to project management
You have to carefully consider suggested life cycle and approach to your project. E.g., if the company proposes "waterfall" when requirements are not stable, the project is not likely to succeed.
Notice the following moments
- how communication will be organized;
- how information and your requirements will be delivered to the project team;
- how you can track the project progress;
- how you can influence the project.
Take into consideration mentality of the software developers. If the software company you hire is on the other end of the earth, it’s more likely that you and developers have different views on the same things. It’s also worth noticing how they speak your language: if you hardly understand each other, the developers won’t guess you want from them and develop software you need.
An important point is the proposed technology. Given a problem, one should use technologies which suit that best. Good if you have the opportunity to consult someone on this issue and listen to different points of view. If you don’t, one may employ the internet to find information on technologies and tasks, for which they are usually applied.
So, these are the main points you should take into consideration by choosing a software development company. We hope that our hints will help you to find a reliable partner you can establish a long-term partnership with.