Choosing a vendor or service provider can be easy (if time-consuming) when you know what you’re looking for. If you need a contract metal fabricator to manufacture a part, you ask for work samples and perhaps ask about ISO 9000 certifications, turnaround times, or other pertinent information. For something like janitorial services, you might ask for a catalog of their services, prices, and references.
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:
1. Can You Describe Your End-to-End Development Process in Layman’s Terms?
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:
- Coding – Most software shops use some flavor of the Agile methodology. How do they manage sprint planning, sprint execution, and review?
- Prototyping – What kinds of prototyping do they use and how they do they involve the endusers in prototype evaluation? More enduser involvement is better.
- Quality assurance – What is their process for testing the software?
- Requirements discovery – This is how they learned about the business problem and how they determine the detailed software requirements. At a minimum they should seek to understand the:
- Types of users of the software
- Environments in which users work
- Journeys the users need to take through the software to support their tasks and goals
2. What Is Your Experience in My Industry?
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.
3. What Is Your Experience with the Type of Software I Need?
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?”
4. What Is Your Experience with the Technologies Needed For My Software?
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.
5. What Are Your Support Options?
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.
6. What Makes You Different from Other Software Partners?
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’).
7. Finally: Can You Provide References?
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:
- How well the end product met their expectations
- What could have gone better
- What they liked about working with that partner
- Why they recommend working with that partner
Don’t Be Afraid to Ask
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.