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 with whom you're willing to take the plunge. And since outsourcing has become even more relevant in the wake of a global pandemic, it's a task that should be given ample thought and time.
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, there’s a lot of value here to unpack, which will save you time and give you greater confidence in successfully searching for, validating, and engaging an exclusive software development outsourcing partner. But before you dive in, you ask yourself these questions:
- So, where should you start?
- How do you find software development companies that perfectly align with your business needs?
- What questions should you be asking precisely?
I’m going to provide the answers here that have proven true for many of our partners and those which have achieved the greatest success for the outsourced engagement and project deliverable. After a quick step-by-step process on how to find qualified providers, I’ll be listing the 8 essential criteria to look at when evaluating them.
Get a free copy of our evaluation checklist for software development outsourcing companies to help you keep your process on track.
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 the 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 will involve a lot of grunt work. That being said, your preparation of creating a criteria for suitability will help save a lot of time. By determining the specific shoes you WANT your provider to step into, you'll be able to naturally steer your discussions and evaluation in the right direction. If you haven’t thought to do this, I recommend you take this little extra step to get a better understanding of the ideal software development company you want to work with. Ultimately, you’ll still be Googling, 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.
Capability is one thing, delivery and supportability are another, as your project engagement matures. Since you’re looking for dependable, reliable partners, recommendations from others carry significant weight. 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. From there, you can take the conversation even deeper to understand why the client may have offered their position.
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 ranking providers here primarily by hourly rate. Although a very important aspect, this can negatively impact your ability to assess the matter of ‘total cost of ownership’ experienced over the duration of your partnership. Keep in mind that going for the cheap route too often 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.
If you want a more detailed guide on how to come up with that shortlist, check out our article 4 ways to properly list (and shortlist) potential software development outsourcing firms to examine further.
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 other 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.
Providers unwilling to invite you to experience their business firsthand are already sending a message about the engagement style you might expect from them. Unlike finite tasks, such as painting a room or balancing an expense spreadsheet, software design and development is a living entity that grows and matures over time and that requires evolving communication and collaboration. Any early indicator that these two requirements are problematic will tell you something of the partnership you might expect. Your goals and the development outcomes are achieved together. You succeed and celebrate milestones together and share the burden of working through problems to solutions together. It only makes sense to evaluate your software partner in these sorts of relationship terms.
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 shortlisted 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 ahead of time about your plans so that they can ask for specific approvals from their clients if you attend 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 in defining 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:
Operational Maturity: 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.
Depth of 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, specializes in extending software development teams by providing full-time, highly skilled dedicated developers. But they 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 skills and services offered by 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 flexibility of the teams of your potential outsourcing partner are essential in assisting your business and cutting time to market for your products.
Don’t forget, 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.
For further tips on how to properly assess an outsourcing firm's capabilities, read our article How to thoroughly evaluate the tech providers' backgrounds and their capabilities.
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 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 the benefits they are receiving from their employer. And more importantly, how is the company taking care of their overall well-being. One good indication that should also give you an idea of how a company is run is how much the management trusts its 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 (and the presence of boomerang employees), which shows how comfortable people are in a company, compared to the local industry standard (note though, that every country is different).
Learn more about why checking the company culture is important and how to assess this factor by reading our article about it.
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. In other 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 do you 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 for that transition as well. 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 often too eager to jump into development without a clear scope of the project, this spells almost certain 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 where they are vague or not thought-out enough. Sometimes they will take the full initiative to do it on their own, and other times it is just as practical for us to prepare these and have them validated by the client.
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.
You might be thinking this all sounds too rigid?
To be clear, having a well-defined and documented idea of the product you want to build doesn’t mean you can’t work in a completely agile way. Making the most of both approaches takes experience, but the key is understanding the specific value each brings to running a software development team, and supporting the product owner, CTO, software developer, and the QA and testing process.
- 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 blog articles 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 provider’s team needs to be, 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.
- Team Proximity
More than simply determining who your team is made up of is to know where the developers will be primarily located. While it’s reasonable for exceptions to be made for more experienced developers, generally it is preferable that the majority of the outsourced team members should be in reasonably close proximity to each other, preferably even in the same office. While the Covid story shows us that achieving goals is entirely supportable in WFH conditions, we know that proximity is key for communication, training, company culture, control and the magic that collective thinking produces.
- 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 the 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? Be sure you understand how a provider manages the exit of an employee who is part of your team. Continuity is key. Does the outsourcing provider have clear and regular procedures that support feedback on processes, quality and developer performance, 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. 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 it acceptable to you?
Another key aspect of successful communication is cultural awareness. Make sure the people you consider working with shares your organization’s stand, particularly on respecting 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.
Recommended further reading: Communication Processes and Standards of Quality — Two Key Factors in Outsourcing
7. Review legal and security aspects
It’s imperative that you deliberately prioritize your initial discussions, so you understand the terms of the prospective agreement BEFORE going too deep into negotiations for your project or product needs. Discovering later that your requirements are poorly aligned with your prospective outsourcer's engagement style wastes a significant amount of time that can't be regained later in your schedule. 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 ensure that the provider upholds security standards that are on par with or better than what your business or industry is subject to. When it comes to security, priority should be given to the safety of the premises and the protection of the IP and source code. Moreover, if you have EU clients, then there's also Data Privacy and GDPR compliance to think about. Lacking these minimum requirements from the provider should cause you to think twice.
So before you dot those i's and cross those t's, you should first know which security and contractual aspects to check and how. Our detailed article about this may help.
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 the quoted rate encompasses, and find out if there may be hidden costs associated with each hire, or minimum engagement periods.
- 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 cost reasons. 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 as a wide range of services you can use on-demand instead of having one full-time dedicated resource on the long-term, you can minimise costs and maximise resources while still having the team you need, when you need it.
- Risk-free trial
A less common, but valuable opportunity exists when an outsourcer is willing to offer a risk-free trial. This is a powerful and great way to assess their capabilities firsthand. Although, you should bear in mind that some restrictions are likely linked to a trial like this. For example, the provider may showcase their work, but are likely to not deliver any code if a commercial agreement isn’t entered into following the trial.
On the plus side, 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 shows that they ‘back’ what they can provide, which is a proactive step towards transparency and building trust with you.
Outsourcing done right
With 15 years worth of experience in conducting multiple Software/IT outsourcing projects and handling the first contact with every company Arcanys partners with, I have a privileged position of seeing firsthand the needs and expectations of both Client and Outsource Partner. I also know that due to time pressures and competing priorities there can be a strong temptation to be strongly influenced by a company's pitch and base your decision on client reviews. Always remember, what works for Jane doesn’t always work for John.
Stick to being thorough on due diligence, neglect no criteria, and take time to get to know the potential providers. You might find it tedious, but it will in many cases save you a lot of trouble, disagreements and angst over project spend. That is precisely what this guide is for–to give you a practical way 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.
How does Arcanys measure up? Are we the kind of Partner that meets your criteria?
If you need help in outsourcing your software development operations, get in touch with us. We’ll be happy to guide you through the process and look forward to our joint successes.