10 June 2020
How to choose a software development company - A methodology
Are you searching for a new software development outsourcing provider? One could make a point that companies are always searching for such, hoping to find the best in class for a reasonable price. But how to do that exactly? This article walks you through the entire selection of that one partner that will provide measurable long-term benefits to your organization. So… how do you choose a software development company?
Finding the right software development outsourcing partner for custom software development a complex challenge with many variables we’ll decode together. Don’t rush it, sit back, and let’s answer all the necessary questions that will help you make an informed decision.
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 the consideration of:
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 in a successful partnership with a software development company. Based on our development work for +150 clients, the sales team at The Software House divides the decision process into three areas.
1. Your own long-term business strategy and business goals
Are you looking for a long-term technological partner, or are you thinking about short-term support that’s on-demand?
Knowing your end-goal, you can determine
- What will be the role of the software development company within your business structure?
- Is working according to a specific methodology important to you?
- Do you have a reason to stay in communication with the partner every day, or would you prefer outsourced developers to work independently while delivering periodical reports?
- Do you need an Agile Product Owner, or do you have no intention to manage and contribute to the project?
This also includes the importance of the partner’s availability. You might want to start the project immediately (even within a week) and scale your team up or down later on short notice.
Setting your initial partnership requirements brings strong focus into your negotiations with a development company.
2. A profile of the right software development company
On a surface level, the list of technology providers is endless. They might seem equally good until you dig into their stack, project experience, and range of expertise.
- Consider a business with a technology specialization vital to your company (e.g. a particular programming language, framework, or mobile development capabilities)
If you represent a tech business with a strong in-house team, it’s clear that there must be a technology match between you and the software development company. However, you can consider refreshing your stack with new technologies that could evolve your project.
- Ensure they have experience with a particular type of software (e.g. CRM, ERM, or CMS)
Having a development team that works with a range of advanced solutions can be highly beneficial. But sometimes, you can underestimate development companies with programmers that have a narrower set of skills. Remember that a strong front-end team handles redesigns better than a less focused group of full-stacks.
- Count on domain-specific knowledge they leverage in projects for specific industries (e.g. financial technology)
It might be wise to consider a development company that services your industry. They may offer you not only their expertise but also the ability to rally the team in days. Because of the industry know-how match, your project will be much smoother.
3. Offshoring vs nearshoring to a development company
Deciding whether you need custom software development done by a nearshore or an offshore team impacts everything that happens once the contract is signed.
If the answers is 2x YES, it means that you should bet on a nearshore development company rather than an outsourcing partner from another time zone. EU-based countries are well-known for adapting the nearshoring model with success.
Prioritize the “must have’s”
Now you can define clear criteria for a software development outsourcing provider that will fit your workflow. Try to prioritize all the factors mentioned above. To avoid getting lost, use the MoSCoW decision-making framework (just when prioritizing your backlog).
Know what you can and can’t compromise on to filter out every unpromising software development company in your list.
Phase 2: determining who can meet your software development needs
Once you shortlist software development companies that seem like the best fit, study them further through research and direct communication. Aim to have about 3-5 candidates that you consider top software outsourcing companies.
With more custom software development companies on your list, your analysis will probably be less thorough as you only have so much time for each listing.
It’s the people behind software solutions who matter
From this point, it’s critical to get to know the people within a company rather than to make assumptions based on raw internet research. Nothing beats meeting your potential partners in person and seeing if there’s a genuine match between you. At best, you can visit their offices and spend some time together, e.g. during workshops. If it’s not possible, video calls are a fine option.
Now, let’s find good software development companies to negotiate with!
Here are the most important categories for deeper research to support your business conversations:
1. Business experience
There are many ways to find out more about your potential vendor’s experience.
- Get familiar with the portfolio of each development company. Read the case studies of their projects if they’re available, or ask for a summary of such. Don’t trust your eyes. Mockups or big-name logos might hide the fact that the company only did minor work for that client.
- Got interested in a particular project? Talk to the company about the business results their build achieved. You may even want to ring the client that commissioned the project.
- Read the reviews, but remember not all of them are equal. Explore marketplace testimonials on Clutch and Glassdoor or video reviews on the partner’s YouTube channel to have a better feeling for how they deal with people.
- Consider if the content they create makes any sense. For example, The Software House always strives to produce in-depth technology and business content for CTOs and developers. This discussion about microservices could be worth your attention:
2. Technological expertise
Nothing is more revealing than a tech interview with the CTO, PO, and Senior developer representing the software development company.
The way such an interview goes depends on two things:
Examine their proficiency in working with your technology stack, architecture, and infrastructure. If ongoing communication with the in-house team is central, you might engage outsourced developers in a test project to assess their ability to think and reason together with your people.
Beyond the interview, you can:
- Establish the average experience of their development team by considering the seniority of the partner’s developers based on LinkedIn data.
- Analyze their recruitment campaigns. Find out what people they are looking for as it reveals what’s important for them.
- See how do they help their developers mature by asking about their internal workshops, seminars, or hackatons.
- Examine if they’re involved with the software development community. What do they give back? Several open-source projects from their developers or self-published industry reports can suggest that the company stays connected with software developers on the inside and outside.
3. The practicality of the software development process
Analyze their development workflow to determine its quality and how suitable it is for your needs.
- What do they mean by a process? Do they have precise rules for each stage of the software development stage project?
- Does the process match the one your company has? For example, if require day-to-day communication, can their process ensure it? Or if you need to monitor the progress and all the deliverables as you go, will you gain access to tools, reports, and other means to do so?
- What quality assurance processes and tools does the development company use?
4. The development project’s stability and security
If you are looking for a long-term business relationship, find out if the company is reliable enough to be worth the effort.
- Is that software development company transparent about its processes and policies? Is it easy to find the people that manage it, get to its financial reports, or to acquire information about employees?
- How do their finances look like for the past three years?
- Are they well known in the software development industry? Can you find stories about them on the internet outside of their official website?
5. The chemistry between your team and the custom software development company
It is vital for all parties involved to enjoy their work together. Without that feeling of shared reliability, the project will flop.
- Almost every project has some crises along the way – that’s when likability will matter the most.
- You should know quite quickly if you can work arm-in-arm for days with the partner’s team without losing your grip.
- 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, CEO, and CTO.
- If possible, make sure you talk to developers that actually worked on the project that caught your attention.
6. Bonus tip: Investigate their sales process
These early negotiations you find yourself in reveal a lot about how well the partner can do business. Stay on the lookout for signs that show how the project can end.
- How do you rate the sales process of the company? Does it feel like it is quite impersonal and transactional, or does it feel like a business relationship of shared understanding?
- Do they attempt to learn more about your company and the project from the start? Does the company advise or criticize or is it a passive receiver of your requirements that hurries with pricing?
- Are the 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?
Good software development starts with a careful choice
You’ve learned a lot about finding a trustworthy software development company for your custom software development project. Let’s just refresh your memory, as it was a long lesson.
- Choose to define critical and non-critical needs even when you’d rather hurry.
- Select evaluation criteria based on sections from Phase 1 of this article to start with
- Create a detailed checklist to be used as a filter.
- Shortlist at least 3-4 software outsourcing companies to talk with, using the information from Phase 2 as a reference
- Read this outsourcing guide for CTOs to know how to make your choice a success.
And have patience!
Do you now know how to choose a software development company? You might also want to know when’s the right time to ask for external support. If that’s the case, see if your company fits into one of the 5 software development outsourcing scenarios.