Software development is a bit different.
You may not know exactly what you need, and you might not know enough about the software development industry to understand what to look for in a software development partner. You run the risk of choosing a partner on the basis of price only, going into the project with unrealistic expectations, and/or being disappointed with the results.
To avoid this trap, it helps to know a bit about how the software development and testing process works in general. You need to know the right questions to ask of any potential software development partner.
Here are some of the most important questions to ask:
A competent contract software shop should be able to describe its entire process in detail while avoiding obscure technical jargon. The team members should be able to explain:
Each industry has its own peculiarities: industry-specific terminology, best practices, regulatory frameworks, and so on. It’s helpful for your software development partner to have experience in your industry so you don’t have to explain how your business works or industry-specific software requirements. They should be able to share a list of their other clients in your industry and describe the projects they worked for them.
This question can be tricky because you might not know exactly what type of software you need. But you (should) know what you’re after: PC or mobile app software for external users, enterprise software for use within the business, or perhaps even firmware for a device you are developing or licensing.
If you know exactly what you need, you can seek partners specializing in that type of software. Otherwise, you’ll need to look at more “full-service” partners with wide experience in multiple types of software. They can analyze your needs and recommend the best type of software for your project.
If you don’t know exactly what you need, you could ask, “How will you determine the best approach to solving my business problem?”
This question is similar to asking about software experience but also distinctly different. “Technologies” refers to specific approaches (such as machine-learning or augmented reality) that could be the basis for the software solution.
It might be premature at the vendor-evaluation stage to get into this “technology stack” level of detail. But if you already have some idea of project direction, you can discuss their experience with those specific technologies. (Just be prepared for some technical jargon.)
If you have no clue about the various choices for the underlying technologies, it’s safe to skip this question.
This question tends to be more relevant for large enterprise software projects but can be important for smaller projects as well. How do they support their software after it’s delivered?
For small, one-off projects in which the software product doesn’t require recurring maintenance, it’s appropriate to have a short period of time during which they will fix identified bugs. Anything beyond that would be a new project.
For more complex, mission-critical enterprise software, the development shop may offer various technical support options for maintenance, security patches, and upgrades.
You’re not negotiating at this point; you just want to know the options. If they give you a blank look in response to this question, move on to another vendor.
This is where you give them a chance to discuss the value proposition of working with them. They should discuss things such as on-time, within-budget delivery; quality and efficiency. They might share how their specific version of Agile was developed and refined (and why it’s superior to other shops’).
This might be the most important question of all. Candid feedback from the software shop’s other clients can provide valuable information about what it’s really like to work with that shop.
A good software partner should have multiple clients willing to discuss their experiences with you. The better partners will be able to provide references in your industry or a related one.
References should be able to tell you:
Good software development shops are accustomed to working with clients with a wide range of software development knowledge, so there are “no dumb questions.” If they can explain answers in terms you can understand, it’s a good sign they will be a pleasure to work with.
And that, ultimately, should be their mission: To delight you with their product and their working relationship, so that they can count on your repeat business.