Choosing a software development firm to build your application is a big decision. The right team will create a quality product that meets your organization’s needs. The wrong team will waste your time and money, and possibly fail to deliver a product at all.
To make your selection process easier, we’ve compiled this big list of questions to ask a potential software development firm before making your decision. These questions will help you find the right partnership for your app.
1. Do you understand my goals?
Naturally, the product you intend to build will serve a purpose. The development team you hire can’t build a quality product unless they understand that purpose and your broader business goals. They need to take the time to understand your business and your customer so they can translate your needs into a product.
Beyond this question, pay attention to the questions the potential development team asks to learn more about you, your business, your customer, and the type of product you want built. Good teams will take their time to understand your needs.
2. Will you recommend your own ideas?
The team you hire shouldn't just translate your ideas into software. They should use their expertise to ask penetrating questions about your customer and your needs. They should also make recommendations based on what they have seen become successful in the past. Ideally, they should help you create a better product then you ever intended.
3. What kind of long-term support do you offer?
Software projects are rarely "complete" these days. Once a software project is delivered, there’s a good chance you’ll need some support in the future, especially if you don’t have your own in-house engineers who understand the technology.
You shouldn't expect free support forever, of course, but make sure the development shop will at least pick up the phone when you call to ask questions or to inquire about modifications and improvements.
4. Will I own the source code?
This may seem like an unnecessary question, but it's important to ask. Some shady software development shops will sell you a license to use the product they produce, rather than sell you ownership of the product itself. Clarify that you will own the source code once the project is complete, including the right to change it as you please.
5. What are your payment terms?
You may have a general idea of a potential development shop's rate, but there are probably some details about how they require payment that you should know. For instance, a firm may require payment every 30 days, but your organization wants to pay based on deliverables.
6. What type of access will I have during development?
It’s important to know how the project is progressing. A transparent development shop will have no issue giving you access to repositories and tools so you can monitor progress. This gives you an opportunity to monitor progress and speak up if something concerns you. For instance, you might require access to these channels:
Source code (Gitlab, Github)
Project management tool (JIRA, Trello, Asana, etc.)
Burndown charts to monitor progress on user stories
Communication tools (Slack, Rocket.Chat, or similar)
Staging and production environments
Having access to a project management board like the one below can go a long way toward reassuring you that the project is moving along, even if you don’t interact with the board at all.
7. How will you communicate with the team?
Poor communication is an easy way to spoil a relationship, so you’ll want to develop a communication plan to guide the relationship. Your plan doesn’t need to be complex, but it should have enough details to keep you and the team on the same page. This is a key way to avoid countless problems.
Ask about communication methods (phone, email, Slack, Zoom, etc.), project management tools, communication frequency (daily morning meets, weekly meetings, development milestones, etc.), and whether you’ll receive progress reports.
8. Will you sign a non-disclosure agreement (NDA)?
Depending on your business and the product you want developed, you may need a confidentiality agreement with the software development shop. This agreement imposes penalties if they release secret information without your content. Most teams are happy to sign NDAs, but you should find out for sure before you give them access to any of your resources, plans, or systems.
9. Have you worked on any similar projects in the past?
You want to work with a team that has a track record of successful projects that are somewhat similar to yours. Just because they can build apps doesn’t mean they have the right expertise that you need. Focus on their experience with similar technologies and product features. It would be helpful if they have experience in the same industry or building for the same kind of customer.
10. What is my role in this project?
Some development jobs only ask for once-a-month check-ins to discuss the latest releases and approve the road map. Other firms, however, may require more hands-on involvement from you. Before you commit to a team, it's important to understand what they will expect from you in regards to time and responsibilities.
11. What resources will you need from me?
Depending on the nature and scope of your project, the development team may need certain resources from you, like AWS space, access to other tools to build integrations, or documentation of existing systems. It might be a bit earlier to answer this question fully, but try to get a sense of what you’ll need to provide.
12. Do you have the right technology expertise?
Which programming language is right for your application? There are a lot to choose from, but they aren’t interchangeable.
Every development shop is different. The skill sets and experience they bring to the table vary, so it’s important to make sure their capabilities match your needs. If they don’t have someone who’s an expert in the technology you need for your project, there isn’t much point beginning a relationship.
Of course, this is a challenging question if you don’t know what your project calls for. If you’re relying on the team to decide which technologies to use, they’re going to prefer to use what they know. However, the best teams have access to a full stack of skills.
13. Will you provide a suite of automated tests?
In many cases, development shops give you a quote based on the time it takes to build an application, but that price and timeframe often doesn’t include testing. The best teams run a full suite of automated tests to ensure that your new product works properly and addresses its original purpose. If it’s critical that your software operate without mistakes, testing is invaluable.
14. What is your design and development process like?
The best software development teams will have a repeatable process that supports consistency and quality control. They should have a clear, reliable workflow that turns ideas into tangible applications. Their answer to this question should touch on topics like Agile development, MVP, logging, QA testing, customer research, etc.
It also helps to ask about how their process will impact your timeline. Can they complete the work by the time you need it, or will their process take longer than you can afford?
15. Are you able to scale up the team?
If you decide to speed up development at any point, or if the nature of the project requires a bigger team, you’ll need assurances that the development shop is capable of meeting your demands. Ask how many people they can put on your account and how quickly.
16. Can you provide references?
It’s important to talk to past clients before committing to a relationship with a software development firm. Case studies aren’t enough. You’ll want to talk directly to previous clients. Ask them about the success of their project, any hiccups along the way, and whether they would work with the development team again.
If the development shop refuses to give references that you can contact, treat this like a major red flag. They should want you to talk to happy clients.
Hiring a software development firm is a key way to build a quality product quickly, but only if you choose the right team. Make sure the company you choose answers each of these questions satisfactorily before hiring them to build your application.