It’s time to talk!
If you’ve decided to outsource your software development, you’ve found some companies that you’re considering to work with, and you are on the horns of a dilemma of making the right choice, there is no better thing to do than talking to them. In this article, I’d like to present you a list of 13 questions to ask your potential software outsourcing provider:
1. What does the process of application development look like in your company?
This question can be very helpful not only to see the process of application development but also to check how much the company cares about the business side of your project.
It is very important to check how the company works and what their approach to software projects is. If you come with a bare idea and they offer you to build an MVP straight away – it is at least alarming. As Mateusz explained in his recent article (Do not start making your app with an MVP!):
A minimum viable product is when the market decides that your product solves an important problem. It is quite late in the whole product development lifecycle. Before there is a feasibility study, there is a proof of concept and there is a prototype. (…)
If you want to get to an MVP, you need to find your product-market fit and make sure that your solution will be recognized as better than the current one. Taking a shortcut will cost you money, effort and will eventually make it harder to succeed.
2. Have you ever worked on a project similar to mine?
Consider the technology (if you’ve already chosen it), sector, industry, and features.
Industry: If the company has already worked on some project from the same industry, they probably know this industry well enough to understand what your product is about and what problem it solves.
Features: Even if the industry is not the same, it’s good if they have dealt with payment integrations, maps or other common (or uncommon) features.
Sector: It is different to work with a big enterprise and with a startup. As they are at different stages of their product development, they have different needs, different procedures, and often require a different approach.
3. What technologies are you specialized in?
If you have already started the development of your product, it is obviously important to make sure that the outsourcing provider knows its technology well. When they do, there won’t be any bigger problems when it comes to continuing the development. If you haven’t chosen the technology yet, it’s still good to check what technologies they are specialized in and see if they are fast to adapt to new technologies. Check their website or read their blog to see what technologies they propose. If you don’t know what technology would work best with your product, don’t be afraid to ask. A good service provider will not only propose a certain solution but also be able to tell you why it’s the best option for your project.
Find these questions helpful?
Download them as a handy PDF!
4. How many [technology_name] developers do you have? What are their seniority levels?
The list of technologies the company specializes in may be impressive but it’s good to make sure how many people are familiar with the technology you’re interested in. If it’s only one person and he or she is only a junior who is not backed by a more experienced developer, it may not be enough to handle your project in a satisfying way. I’m not saying that a junior cannot handle a project! It’s simply better to know that in case of any problems, there is someone around to help them. In some cases the support of a senior team member will be necessary.
Despite asking about seniority levels, it is a good idea to ask for blind CVs (the ones without any personal information – only technologies and experience) or some other proof of their seniority level. Maybe it will be possible to see some code samples? If so, look at the quality of code that they deliver. Is it easy to read? Would it be possible to develop it further?
5. How much time would you need to scale up the team assigned to my project?
Ask how many people there are in the whole team and how many projects they’re working on. If you decide to speed up the development and scale up your team, it’s good to know that you won’t have to wait a few weeks until someone will be able to move to your project.
6. How do you communicate during the project?
Communication is crucial to any successful project! Make sure that it will go well. Ask how often you will have calls with the team, what time it will be possible to contact them, and what collaboration tools you will use (project management boards such as Taiga or JIRA, instant messengers such as Slack or Rocket). If you don’t have regular calls, it will be hard to watch the progress and to react when something goes wrong (or when the team needs some specification or clarification). And if you don’t have direct contact with the developers, you will be playing Chinese whispers wishing your contact person to pass all the information correctly. It’s possible to avoid many misunderstandings when communication is simple and direct, so make sure that you know the team that works on your project and talk to them at least every once in a while. Thanks to that, not only will you better informed about the progress of your project development, but also you’ll be able to make sure that changes are applied whenever you need them and all of you are on the same page – after all, you’re a team, you need to work towards one (well-known and understood!) goal.
7. What files will I have access to during the project?
It’s important to know what is going on in your project. If a company that you work with is transparent and honest, it’s easier for you to trust them. Or to react if anything disturbs you.
In Neoteric, we give our clients constant access to:
- source code (Gitlab, Github)
- burndown charts (to show how quickly your team is burning through the user stories)
- your project management dashboard (Trello, JIRA, Taiga)
- CI/CD to deploy your app with a click of a button
- time reports
- staging (updated at least once a week) and production environment
- instant messenger to talk to your team (Slack, Rocket.Chat)
8. How do you see my role in this project?
It may sound a bit subversive – after all, you are the customer here and it’s your right to have expectations – but it’s a good idea to ask what they expect from you regarding the project. Are they audacious enough to ask you to be engaged in the project? To have regular calls regarding the project? Or to specify its details? Brilliant!
If you are not engaged with an outsourced project, it will not work well. And people from any software development company should know it. You can’t stay away from your own project, can you? Your role is crucial and you should be prepared to participate in the development process as well.
9. How do you see my role in this project?
Ask your potential outsourcing provider how they ensure high quality of a product. It’s good if they offer a satisfaction guarantee. Make sure you know exactly how it works and what the steps you will have to follow if the project goes wrong.
10. Could you show me some references from your previous clients?
The clash of your expectations and reality may be tough. When you buy a new camera or phone, you read reviews, you check some forums and search for the opinions of users. Why not do the same with software development? Request some references and ask for some details regarding the referred project (how much time they spent on it, what the challenges were, etc.).
Also, take a look at some third-party websites. Many outsourcing companies are listed at Clutch, where you can find very detailed reviews based on interviews conducted by the Clutch experts. They focus on different aspects of the project such as productivity, quality of work, impact of engagement, project management, scheduling, cost, or the areas for improvement.
Read also: 10 awesome software products you didn’t know were built in CEE
11. How much would it cost and what does the price include?
The price is a very important factor but it is equally important to know what the price includes. According to Łukasz Nowacki, there are a few fixed points that should be taken into account when we prepare the estimate, i.a.:
- Consultations, research
- UX Prototypes/Mockups
- The creative process and quality standards
- Project management
- Costs of infrastructure and implementation in the production environment
- Customer service
- Licenses and copyright laws
(You can find the full list with detailed description in the article: Price estimate for web and mobile applications)
Price is usually a sensitive issue but you should avoid getting obsessed with it. Despite the cost included in the estimate, you should compare the seniority level of the developers and their skills. As these affect the quality of service, you should be rather cautious with the cheapest offers.
12. How do you estimate the length of this project?
The money is important but so is the time. After all – time is money, isn’t it? Even if some company offers a higher price but is able to deliver the product faster, it is worth to consider their offer. Especially if you’re comparing price for the man-hour. A higher rate is often the result of the seniority level or some processes inside the company which improve the efficiency. In this case, it may turn out that choosing the one with the higher rate will eventually result in paying less for the project. It doesn’t mean, however, that the most expensive offer will always be the best. In different locations, there are different average rates. According to the recent Stack Overflow report, a DevOps specialist in the US earns twice as much as a DevOps specialist in Europe! The key is to find the golden mean between the price, skills, and estimated time.
13. What makes you my best choice?
When doing your own research, you may focus on some factor and unwillingly omit another one. Ask why they are better than other companies. It’s always good to know what they consider to be their competitive advantage.
I hope this list of questions will help you go through the interviews and choose the right outsourcing provider for your project. If you would like to learn more about how to find and choose a software development company or how to start working on your project with one, I recommend you take a look at these articles: