Project interest and enthusiasm
The company seems genuinely interested in your project and asks relevant questions. The team immediately goes into solutions mode. If you perceive a lack of enthusiasm or even some hesitation, it doesn’t necessarily mean that they’re not a reliable company. It could mean that your project doesn’t fit with their service offering: maybe they’re seeing a capability gap between your needs and their capacity; maybe it’s a question of budget, know-how, experience, etc. Maybe that company just isn’t the one best suited for your project.
Good location
Try to use a local supplier: there’s nothing like direct human contact to assess the fit between your needs and their service offering. Use your favorite search engine to search “software development + name of your city”. You can even be more specific, for example: “web application development + city”.
Mutual understanding
They speak your language and display business intelligence. Assess your cultural compatibility and the quality of your communication. The success of a software project depends on a good mutual understanding. It isn’t enough to contract the best developers out there; they also have to understand your needs precisely. Your partner must have a thorough understanding of your line of work and business goals in order to turn your ideas into an efficient, effective program.
Knowledge sharing
They take the time to explain what you don’t understand, and continue explaining until you do. They don’t baffle you with a barrage of technical jargon.
Intelligent objections
Be suspicious when a supplier says yes to everything without question. More trustworthy is the supplier who tells you when something isn’t possible, or suggests a different way of achieving your goals. Choose a supplier that opens up new perspectives and contributes new ideas. In other words, a supplier that can improve on your initial idea, rather than just blindly follow instructions.
Experts in several different technologies
If you don’t have specific technical constraints, choose a supplier that can work with a wide range of technologies. This way, they can advise you on the most appropriate technology for your project, and even suggest more efficient or cheaper alternatives.
Complete service offering
From upstream consulting to downstream service and support, from UX/UI design to QA, successful software development involves far more than just coding.
Flexible methodologies
Be it Cascade, Agile, Scrum, Kanban, or a blend of the above, there are many ways to conduct a software project. Your supplier should be able to use the method that best suits your project, its scope and objectives, rather than box you into a one-size-fits-all methodology.
Credible references
Any software development company worth its salt proudly displays concrete examples of its past projects on its Web site. This is a good way for you to assess their experience, the variety of their projects and the size of their clients. Make sure to check out their portfolio of past projects. If you have any doubt about any of their references, verify them, just as you would for a new hire.
Similar company size
Generally speaking, you’re better off being your supplier’s most important client, in order to receive VIP treatment. If the company is a large multinational and you’re an SME, you run the risk of being lost in the crowd. On the other hand, if your supplier is a much smaller company than yours, it may not be able to offer you the whole range of services and support you need for growth.
Avoid the lowest bidder
When it comes to development, cheap is not good. Huge price differences between bidders usually mean that at least one of them hasn’t properly estimated the development effort and technical challenges involved. Don’t be afraid to grill the bidders on specific points of their bid to probe the credibility of their offer and ensure that they fully understand the nature of your requirements. Too low a bid practically guarantees failure: basic needs unmet, late delivery, technological debt, poor coding quality, etc.
Culture fit between both teams
It may seem silly, but affinity is essential, since the success of any software project, especially if it is meant to solve a complex business problem, rests on the quality of your collaboration throughout the development process. You must feel comfortable with them right off the bat, and feel that you’ll be able to work with them successfully and harmoniously over the long term. Remember, you’re going to have to work with them for months!