Finding the right software development outsourcing partner is a tricky and tedious work. Done right, the selection process can take up to a few months before you can confidently decide on the one provider who you're willing to take the plunge with.
This article aims to provide sound advice for those who are serious about choosing the right tech provider for their custom software needs. Now as this guide covers practically all pertinent aspects of the outsourcing process, businesses who are in search of exclusive, long-term business relationships with a software development outsourcing partner will find the most value here.
So, where should you start? How do you find software development companies that perfectly align with your business needs? What questions should you ask precisely? You should find all the answers here. After a quick step-by-step process on how to find qualified providers, I’ll be listing the 8 essential and most important criteria to look at when evaluating them.
I. Find qualified tech partners in line with your needs
- Define the broad needs and requirements
- Research providers
- Make a shortlist
- Go visit them (or video call if you can’t)
- Research the provider’s background
- Evaluate capabilities
- Understand their company culture
- Assess processes and tools
- Determine standards of quality
- Observe their communication process
- Review legal and security aspects
- Carefully analyze the business
I. Find qualified tech partners in line with your needs
1. Define the broad needs and requirements
As they say, knowing your destination is half the journey. Define your own goals first and it will be a lot easier moving forward. Have a good idea of what your requirements for the project will be and what type of people you may need to have on board. Be open to suggestions from your potential providers based on your current situation. There may be additional optimizations you haven’t thought about, or your provider may have more strengths than you initially anticipated.
When you start looking into prospective outsourcing providers, be specific about what you expect from this relationship. Are you looking for an assistant, an advisor, a partner? What skills would best fit your project requirements? Some companies only cover development, leaving the business side to the client. Others offer more varied services that go beyond software development. So if you're looking for a complete solution that includes consultations with business analysts, project coordinators, designers, testers, or even insights into machine learning or data science, then the capabilities of the company already are a critical factor in searching for a tech partner.
2. Research providers
I owe you this warning: finding potential providers would involve a lot of grunt work. That being said, creating personas definitely helps. I recommend you to take this little extra step to get a better understanding of the ideal software development company you want to work with. You can use the more traditional methods of researching, such as doing online searches or posting questions at Quora. Review platforms like Clutch can also serve as credible resources for verified, unbiased reviews of B2B companies.
Now, you’re looking for dependable, reliable partners, so recommendations from others carry significant weight, too. After all, it’s easy to sing one’s own praises, but this doesn’t really mean much unless someone else affirms it too. Put credence in former or existing clients’ testimonials and reviews because these will tell you everything–the good, the bad, and the ugly.
3. Make a shortlist
Narrow down your choices to a short list of the firms that you’d like to get more in-depth with. That list should be about 2 to 4 companies (at the maximum), and their suitability based on the initial criteria you've identified. If you’re serious about making the right choice in picking a partner, you will need ample time to assess each of them.
I don’t recommend using cost only here although it is of course, a very important aspect. Keep in mind that going for the cheap route usually costs more further down the road. Rather than simply looking at the cost, a better way to gauge this metric is to work out the value for money the provider will be able to deliver over time. Many factors will enter in this computation, and we go into detail for each of these in the next section.
4. Go visit them (or video call if you can’t)
If you have the time, I do recommend you go visit at least the one partner you’re more certain to work with, if not the two preferred options you have. Making an actual visit allows you a more hands-on approach to evaluating these firms rather than simply relying on what you read about them.
Besides the premises, the employees and the management, it is also essential to assess the location and how comfortable and accessible it is, especially if you have to go there on a regular basis.
If you can’t visit the potential tech partner’s location, consider at least doing a few video calls with the management, maybe have a peek at the offices and working spaces, and speak to a few employees to get a better feel of the company and its culture.
II. Evaluate what matters
Now, granted you’ve already narrowed down your choices and have secured meetings with them, how do you know which company would be best to work with? Here are the 8 crucial criteria in evaluating your development partner:
1. Research the provider’s background
The most basic information you should find out is—How long has this company been running, and who is behind it?
The success of a software development outsourcing process hinges a lot on mutual trust. It’s therefore useful to get a thorough understanding of the expertise and ownership of the company, as well as of the management team. After all, the values and experiences of the founders radiate throughout the whole business year after year. If the organization is being run by the same people who founded it, say five, eight years ago, then points for that. It shows the level of commitment and passion the founders have for the business they started.
A company’s relationship with its software development outsourcing firm is usually so critical to the success of the business that I’d recommend you consider it as a real partnership rather than just a simple client-supplier relationship.
"It is vital to have both partners aligned regarding values, needs vs. experience, and long-term goals."
~ Fred Joye
The best way to see if a partnership can work out between the two parties is to find out for yourself. Visit the premises of the short-listed providers and meet with the teams. You may also potentially attend a few of the meetings to understand how things are working, and how they could work on your project. This will also give you a good grasp of the capabilities of the entire team across the various roles that are needed for the project to run successfully (i.e., developers, testers, project managers, maybe UI/UX designers and architects too).
Note: If you desire to participate in a few project-related meetings on your visit, make sure you inform the provider company ahead of time about your plans so that they can ask for specific approvals from their clients if you attend to meetings where project information is shared.
Speaking of clients, make sure you get to know who their key clients are (if they are allowed to mention them). Don’t hesitate to ask for testimonials or even references from previous or current clients that have a potentially similar setup as the one you’d like to work with. In addition to providing feedback about their working relationship with the provider, these current customers may also be able to offer useful tips for the initial weeks of collaboration and even some valuable advice for the long-term.
"Beyond technical capabilities, Arcanys have differentiated themselves through excellent communication and transparent project tracking (JIRA) allowing us to monitor projects and costs easily and effectively on a daily basis. Arcanys provides us the outsourced dev experience that most customers hope for but seldom get. Alan, Fred and the whole team are a joy to work with and I thoroughly recommend their services to anyone looking for a trustworthy development partner."
~ Nigel Gorham, Networks and Content Director at ECN (Executive Channel Networks)
A working relationship is never one-way; so as much as you should understand how the potential provider works, you need to make sure that they, in turn, also have a very good understanding of your operations. This is key to define the best setup for a successful collaboration. Depending on your maturity as the client company, the provider will have to fill in the gaps in the skills you don’t have in-house to ensure speed and quality in the delivery.
2. Evaluate capabilities
It is essential to find out whether the technical capabilities of the outsourcing company match your needs. Before you can do that though, make sure you also have a good understanding of your own needs, strengths, and weaknesses. Only then will you be able to see whether the company is a good fit and can help you raise the bar in becoming even more efficient. Here are the specific capabilities to look into:
Size and structure: While evaluating a provider, getting a good sense of the size and organizational structure of the company matters. The company should be at a scale where the management cares about the business you will bring them, or inversely, that the project is not too big for them to handle.
Services: Having an in-depth understanding of the entire suite of services the potential provider is offering is also vital, as they might be able to provide unsuspected additional services that can be real game changers. Arcanys, for instance, is specialized in extending software development teams by providing full-time, highly skilled dedicated developers, but can also help you out with machine learning, artificial intelligence, design, testing, AWS support, technical support or customer support, for example.
- Skills and Technologies: The advantage of working with a sizeable partner is that they not only provide the developers you need on a full-time and long-term basis to complement your team, but also potentially help you with additional skills you may need on an ad-hoc basis, or people your organization can rely on for advice. If they already have a team with specific skill sets or technologies that may also prove useful to you, you can leverage these to achieve faster, more efficient delivery. It’s therefore advantageous to have a good grasp of the skills your firm has in-house and those in the areas you may need soon.
Here's a quick overview of what we offer at Arcanys:
- Availability, flexibility, and speed: Often, by the time you begin looking for an outsourced team, the internal pressure has actually been building up for some time already. To get started as soon as possible, you need to understand how the potential partner can assist you in the short and medium term with the required resources by asking about the pipeline and the timeline to scale your team.
Additionally, you also need to make sure you can ramp up or scale down parts of your team quickly when you need to go from a potential growth phase to a maintenance phase, or vice versa. This is where the speed and the flexibility of the teams of your potential outsourcing partner are essential in assisting your business and cutting time to market for your products.
Lastly, there’s always the key differentiators: Ask them why they’re better than the others, and assess whether these differentiating factors would actually be beneficial for your own business. Since we’re heavily working with Australia and New Zealand-based companies, these are ours.
3. Understand their company culture
The company culture and values are probably two of the most critical indicators to see if you feel at ease with working with one or the other provider. Nothing can beat visiting the providers’ offices, having a feel of the atmosphere, and speaking with the employees as well as the management.
Often, checking the Glassdoor, Facebook, Instagram, LinkedIn or other social media pages in addition to what is posted on the website will give you a fair idea of how the employees feel working for the company.
"In Arcanys, learning is growing. I love how they believe in me and make me grow with paid training and exciting projects. The flat management structure brings simplicity and transparency within the company. The work environment is great, and there are plenty of awesome perks like free lunch, gaming room or free gym membership. Everything is totally cool. Keep up the good work in keeping your employees happy!"
~ An Arcanys team member on Glassdoor
Additionally, to understand how people work, I would recommend asking employees about the benefits they are receiving from their employer. One good indication that should also give you an idea of the way a company is run is how much the management trusts their employees, that is, whether they allow you to speak directly and freely with them in interviews without the necessity of a manager at all times. This shows a lot about the company’s transparency as well.
The ultimate check is the yearly attrition rate, which shows how comfortable people are in a company, compared to the local industry standard (note though, that every country is different).
4. Assess processes and tools
A good understanding of your processes is as important as understanding how your potential partner works. In some cases, you may want to keep your own processes, and in some cases, you may want to adopt some of the methods of your partner.
There are a couple of important factors that could come into play here. First, which organization has the more mature and organized way to produce high-quality output efficiently; and second, what degree of involvement you would expect to have with your dedicated team. Will it be a provider-managed team or a client-managed team?
"Failing to prepare is preparing to fail."
~ Benjamin Franklin
A suitable provider partner will hopefully teach you as much as they’re going to learn from you on the processes and business sides. The same is true for the tools used in both organizations.
A few of the critical processes to understand are the following:
- Approach to a project
Understanding how the provider approaches a new project will equip you with key insights on how you can prepare yourself as well for that transition. Some adjustments will have to be made in the way you have been working so far when you make the move to an outsourced model. It’s an excellent opportunity to review your own processes and improve efficiency in some areas.
In evaluating this point, try to answer these questions: How do they manage requirements, and what are their expectations for these?
Providers that are too eager to jump into development without a clear scope of the project spells trouble. If you want your project to be successful - both internally and with a software provider - having a clear scope is probably the most crucial part of it. As we say: failing to prepare is preparing to fail. This statement is true for software projects, and over the years, we’ve become more and more strict about this when we engage in projects. In some cases, when we feel like the project scope lacks maturity, we ask clients to re-work their requirements as they are not thought-out enough. Sometimes they decide to do it on their own, and sometimes we help them out.
Having clear-cut requirements is not just a recipe for success for outsourcing a project; it also allows all stakeholders to have a clear view of the product roadmap and potential functionalities (through a clickable prototype for example). A clear scope also enables you to solicit validation from influential people, guarantees delivery of a well thought-out product that will bring value to users, and ensures the project won’t take forever to complete.
Now, having a clear idea of the product you want to build doesn’t mean you can’t work in a completely agile process. However, getting the best of both worlds requires a lot of experience running a software development team, particularly from a product owner, CTO, software developer, and QA perspective.
- Hiring process
Get your potential provider to explain their hiring process, and how they select the best possible candidate for each project. To give you a sneak peek into how we do it at a very high level, we invite you to check blogs like how to avoid hiring bad programmers or how we attract and retain the best developers in the Philippines.
Onboarding is a critical phase for both the customer and the provider. This is where the foundations are set for the relationship, and everything, as much as possible, needs to be put on the table to avoid miscommunication issues down the road. The onboarding process should encompass a review of the processes, reporting, expectations, standards, and all other elements that fall into the project.
- Teams composition and dynamic
All companies have various degrees of maturity and skills in their teams. Given the project objectives, your provider needs to understand your setup, strengths, and weaknesses to make sure that they can complement where there is a need for the collaboration to go smoothly. A provider could also take it a step further and give you their assessment of your strengths and weaknesses and explain how their team will be structured to support your organization. The less mature the client is, the more experienced the team needs to be on the provider side, sometimes with Senior Architects leading the project along with some project managers.
In the usual setup we encounter, the client already has a strong team of senior developers or even a CTO. In these situations, we complement the team with a senior lead and mid-level developers, along with some additional on-demand services whenever needed. In cases where the client has weak technical skills, we would need to step in with our CTO-on-demand service, where one of our Senior Architects will guide the technical team. For startups, here is a setup we recommend.
- Where are the developers based?
More than just who composes the team, it’s also a key factor to know where the developers will be primarily located. While you could allow an exception for senior developers who may be remotely based, the majority of the outsourced team members should be in close proximity to each other, preferably even in the same office. This is important for communication, training, company culture, and control.
- Ability to scale up and down
Make sure you understand the timelines to scale up or down a team. If you plan to grow rapidly, ensure that you understand how they manage their “bench” and at what rate they can hire in any of the locations where they operate.
Usually, scaling down also requires some planning for the provider, as they can’t just get rid of developers who need to leave a project when a client wants to scale down. Usually, they would require a heads up on the client’s plans so they can arrange their hiring efforts accordingly.
- Reporting & hours logging
An ideal provider partner should have a comprehensive reporting process to monitor progress and display transparency about what the team is doing at any given time. At Arcanys, we provide daily and weekly reports of every single team member.
5. Determine standards of quality
It’s also vital that both parties agree on the quality of work. What is their take on the essential industry standards? For example, what does the provider think about commenting code? How do they ensure high quality, legible code? Do they adhere to clean code principles to control quality of what they produce? How about testing the code?
Then of course, don’t overlook the expertise of the developers: What are their respective education levels, credentials and previous work experiences? How does the provider pick the right candidates and make sure those individuals continuously upgrade their skills? Make sure you understand as well what happens when an employee leaves the company. What are their feedback processes for quality, developers, etc.?
These factors say a lot about the type of company a provider is and how they uphold standards of quality in whatever aspect.
6. Observe their communication process
Communication is a critical component for the success of any given project, and should never be underestimated. Having a transparent process and the right tools to enhance team communication and collaboration is essential.
In our blog, we’ve made the comparison between Skype, HipChat and Slack but there are plenty more project management and communication apps/tools available out there, and you’ll have to see which best fits your manner of collaboration. In addition, what is the provider’s process of communicating on progress, plans and problems with you? How does their Escalation Policy (if any) work and is this acceptable to you?
Another key aspect of successful communication is cultural awareness. The people you will work with should share your organization’s understanding of the differences between individuals and their respective backgrounds. This is why we constantly promote heightened awareness to cultural sensitivity to both our clients and employees.
7. Review legal and security aspects
It’s imperative that you understand the terms of the agreement before going too deep in the discussions. If you only become aware later on that your requirements are too far from what the provider is willing to work with, you would have already wasted a lot of time and effort. Nothing is worse than spending months discussing a collaboration when there is no alignment on the pertinent aspects of the contract after all.
You should also be able to establish that the provider upholds security standards that are up to par or even better than what your business or industry is subject to. When it comes to security, priority should be given to the security of the premises and the protection of the IP and source code. Lacking these minimum requirements from the provider should cause you to think twice.
8. Carefully analyze the business
Last but not least, understanding the business aspect of the engagement is vital.
Perhaps one of the most decisive factors when contracting any service is the cost. What are their rates?
You may be given an hourly or monthly rate, but what does it include? Make sure you understand what this quoted rate encompasses, and find out if there may be hidden costs associated with each hire.
- Models of engagement
Software providers have varying engagement models. Some are willing to engage in fixed-price models while others are not. Engagement models can be differentiated based on the types of projects and the expertise of the provider.
If you are looking at a team extension engagement, make sure that you know which developer is working on your project and assess every recruit. If you are satisfied with the team given to you, then regularly monitor whether the same developers are working for you. Some unscrupulous providers start with putting their A-team on the project only to switch them to more junior developers as time goes by.
- Types of projects they take on
Most businesses seek outsourcing options for a cost reason. But while cutting the costs in half is one nice benefit of outsourcing, it’s not always the most important. The flexibility, speed, expertise, and access to a pool of resources you don’t have the luxury to maintain in-house are amongst the side benefits of outsourcing. Coupling these additional benefits to costs is an extremely valuable proposition.
The most reliable providers often have more experience and maturity in running software projects, as they have seen hundreds of various configurations and solved dozens of common software development issues, making them more qualified to turbo-charge your organization.
- Value for money
Regarding costs, you should be able to reduce them by half on average, and reduce your burn rate for the same output. If you then add the benefits given above, the value for money you get out of a good partnership is even greater.
Keep in mind that the additional leverage you get from working with an outsourced partner is that you have flexibility in your team. This means that your payroll is not necessarily a fixed cost, but can become variable depending on your needs. Thanks to ramp-up or ramp-down clauses, as well a wide range of services you can use on-demand instead of having one full-time dedicated resource on the long-term, you can minimize costs and maximize resources while still having the team you need, when you need it.
- Risk-free trial
Some providers are willing to offer a risk-free trial. While this is a great way to assess their capabilities, there may be some restrictions linked to this trial. For example, the provider may showcase their work, but they likely will not deliver any code since it’s trial without monetary exchange at first.
On the other hand, a free trial should give you a very good understanding of how they onboard a project, the quality of the developers in their roster, and whether you feel comfortable working with them. If a provider is willing to offer a risk-free trial, it also shows that they trust what they can provide, which is a step towards transparency and building trust with you.
Outsourcing done right
With 15 years worth of experience in conducting multiple IT outsourcing projects and handling the first contact with every company Arcanys partners with, I have a clear understanding of the needs and expectations on both sides. I also know that the temptation is great to allow yourself to be strongly influenced by a company's pitch and base your decision on client reviews.
But never forget that what worked for others won't necessarily work for you, so it's important to perform due diligence, neglect no criteria, and take time to get to know the potential providers. And that is precisely what this guide is for–to give you a strong tool to assess your prospective software development partner efficiently.
When clarifying your intentions and examining your potential provider, you may want to use a proper evaluation checklist for software development outsourcing companies to guide you through the process.
Need help in outsourcing your software development operations? Get in touch with us, we’ll be happy to guide you through the entire process.