10 June 2020
How to choose a software development company? Methodology
Are you in search of a new software development outsourcing provider? One could make a point that companies are always searching for it, in the hope of finding the real deal. But how to do that exactly? This article walks you through the entire process of getting to that one partner that will truly provide long-term benefits to your organization. So… how to choose a software development company?
To choose the right software development outsourcing partner for custom software development is quite a complex challenge. Don’t rush it. Make an informed decision, based on clear criteria. Let’s start by answering for yourself the simplest of questions.
Phase 1: determining your IT outsourcing needs
Companies that successfully outsource software development know that analyzing how to choose the right software development company should begin with thinking carefully about:
But first… you need to think of what your expectations actually are.
To begin with – consider how you believe the project should be delivered and what’s most important for you as far as the cooperation with the potential partner is concerned. Let’s divide it into three categories:
1. Your own long-term business strategy and business goals
The first question to ask yourself is: are you looking for a long-term technological partner, or you’re thinking about a short-term, on-demand support?
Knowing that, can help you determine:
- What will be the role of the outsourcing company within the structure of your company?
- Is working according to a specific methodology important to you?
- Do you have reasons to go for intensive everyday communication, or would you prefer to leave the outsourced developers to their own devices and be satisfied with a periodical report?
- Do you want to fill the role of the Agile Product Owner, or you have no intention to manage and contribute to the project in a significant way?
This also includes the importance of the partner’s ability to quickly scale your team up and down and the possibility of starting really quickly (even as fast as one week).
All of it together should give you a good start and a better perspective on how to handle the initial talks with companies and what criteria you really need to focus on.
2. Specific characteristics of the partner
There are a lot, but a couple are particularly important to think about.
- Technology specialization that is vital to your company (e.g. a particular programming language, framework or mobile development capabilities).
If you’re a tech company with a strong in-house team, it’s clear that there must be a tech-match between you and the software development partner. However, you can also look at this as a chance to quickly add some unique tech competences to your tech stack.
- Experience in a particular type of software (e.g. CRM, ERM or CMS),
Having a development team experienced in particular types of solutions can be highly beneficial. On the other hand, you can sometimes overestimate its importance. Most likely, it is the company’s domain and portfolio, rather than a very narrow set of skills that their developers have, that makes the difference.
- Experience and domain-specific knowledge, history of working with projects from specific areas (e.g. financial technology),
It might be a good idea for you to look for companies who work for specific industries. They may offer you not only their domain knowledge and experience, but they may also be able to onboard the team and come up with new ideas much more quickly.
3. Offshoring vs nearshoring
There are other considerations that may make a big difference to your strategy. One of them is deciding either you need a nearshore or offshore team.
Answering questions below may give you a good idea of what you should opt for:
If the answers are 2xYES, it means that you should look for a nearshore development company rather than a typical outsourcing partner. The concept seems to be more and more popular, especially in EU-based countries.
With these considerations, you can define your basic criteria for a fitting software development outsourcing provider. You should try to prioritize all the factors mentioned above. You can also use the MoSCoW rule (just like in prioritizing your backlog), or look for some templates for making more informed decisions.
What’s important here for you is to set critical decision factors and separate them from these with lower impact.
Phase 2: determining who can meet your needs
Once you can shortlist some software development companies that seem like the best fit for you, you should further study them through both research and direct communication. At this point, you should have about 3-5 candidates that are all top software outsourcing companies.
Any more, and your analysis will likely be less thorough as you only have so much time for each listing.
Now, with the quality shortlist, you can move to on. From this point, it’s much more important to get to know the companies (and people behind them) closer rather than make assumptions based on the information you found during the research. The data would be still useful, but nothing beats meeting your potential partners in person and seeing if there’s a real match between you. In an ideal scenario, you can visit their offices and spend some time together, e.g. during workshops. If it’s not possible, video calls will be fine as well.
Now, let’s find good software development companies!
Here are some of the most important categories of research to support your talks with selected companies:
There are many ways to find out more about your potential vendor’s experience.
- Start by getting familiar with the portfolio of each of the companies. If the company has detailed case studies of their projects, make sure to read them. Don’t rely on the eye-catching stuff, such as mockups or logos – it may turn out that the company only did some very minor things for these particular clients.
- Got interested in a particular project? Talk to the company about it and get more information. You may even want to reach out to the client the project was developed for.
- Read the reviews, but remember that not all reviews are created equal. Try web portals such as Clutch or video reviews if available to get the most trustworthy content.
- Learn more about the content they create. For example, The Software House regularly provides valuable technological and business content for both CTOs and developers, such as the microservices chat below:
2. Technological prowess
Nothing is as proven and reliable as conducting a tech interview with the software development company team members.
The way the tech interview proceeds depends on two things:
You should ask technical questions related to your technology stack, or to your problems with the architecture and technology you use. When communication with the team is crucial, you can have the developer verbally explain their opinions and reasons behind their choices and cooperate with your in-house developers on a test project in order to assess their ability to communicate.
In addition to that, you can also:
- Check the seniority and stability of the outsourced developers. You can use data obtained from LinkedIn and other similar online sources to find out the average experience of its developers, number of senior developers etc.
- Analyze the recruitment process. You can read their job listings to find out what kind of people they are looking for and, by extension, what’s important for them.
- How do they help their developers grow?
- Are they involved in the software development community? This kind of effort not only attracts the right kind of developers, but also shows that growth and quality of each and every individual software developer is important for the company.
3. Development process
Analyze their development process to determine its quality and how suitable it is for your needs.
- What do they exactly mean by a well-defined process? Do they have specific and clear rules for each stage of and factor influencing the software development process during a project?
- Does the process meet the needs of your company? For example, if you feel the need for a lot of day-to-day communication, can the process ensure it? Or if you need to closely watch the progress and all the deliverables as you go, will you be provided with tools, reports and other means to do so? How much work you have here to do strongly depends on how well you did at the first stage of the selection process.
- What quality assurance processes and tools do they use?
4. Stability and safety of the cooperation
If you are looking for building a long-term business relationship, find out if the company is stable enough to be worth the effort.
- Is the company transparent and clear about its processes and policies? Is it easy to find the people that manage it, get to its financial reports, acquire information about employment etc.?
- How has been the financial and HR situation of the company for the past three years?
- Are they well known in the software development industry? Can you find articles about them on the internet, both local and global (aside from their own websites, of course)?
It is vital for a successful long-term cooperation for all parties involved to actually enjoy working with each other.
- Almost any project has some crises along the way – that’s when it will matter most.
- You should be able to tell quickly whether the people on your potential partner’s side are the kind you can spend time with without it being a chore. Your list of people to talk to should not be limited to salespeople or account managers. Talk directly to their developers, heads of departments, project managers and CEO/CTO.
- If possible, make sure you talk to developers that actually worked on the project that drew your attention in particular.
6. Extra tip? Let’s look into their sales process
Looking into how the sales process looks will tell you a lot about the company’s approach to business and its clients. It’s a sign by which you can largely tell how the project will turn out.
- How do you rate the sales process of the company? Does it feel like it is quite impersonal and focused on the transactional aspect, or does it hold the promise of a long-term business relationship?
- Does the potential technological partner make an effort to learn more about your company and the project right from the start, long before you made your final decision? Does it provide advice and criticism or is it focused on passively listening to your requirements and making price estimates?
- Are people responsible for the project involved in the sales process? Is it possible for you to meet your potential PMs, devs and other key people in the company at this stage?
Summary: don’t mess it up!
That’s the gist of proper software development outsourcing for custom software development. 5 pieces of advice to sum everything up:
- Remember to start by clearly defining your needs. Choose to take your time with it.
- Create a checklist of your software needs based on that.
- Use the bullet points from the first section of the article as your starting point.
- Pick a couple top software outsourcing companies (not too many!) and talk to them, using the information from the second section as a reference.
- Be even better prepared by reading about current outsourcing trends with this outsourcing guide for CTOs.
And, most importantly, give it a really good try!
Do you now feel like now you know how to choose a software development company? Aside of knowing how to choose, you should also know when to choose from this software development outsourcing overview of practical scenarios.
Thorough research takes time, but in the end, choosing the right software development company will save your business even more of it, on top of your money and sanity!