What are the steps for choosing the right software development partner?

When it comes to outsourcing companies there is no shortage of opportunity. A blessing and a curse for those who want to find a reliable and competent partner. You have a lot of work in front of you in order to weed out the companies you don’t want to work with and find the few who could help your business out. The right partner cannot be defined through an exact recipe, because it depends on the requirements of each particular situation, but going through the process of finding a good provider is a lot easier when you have a short guide to follow. It’s a long process with plenty of risks and a lot of research to be done. But where should you start? Let’s take it step by step.

 

Step 1 –  Why you are looking for a software partner?

Define your own goals and what you want from this relationship. Be specific.

Maybe you want an end-to-end team covering backend developers, frontend developers, business analysts, project managers, designers, DevOps and testers. Or maybe you just need a backend team. Some companies only cover development, leaving the business side to the client. If you’re looking to have a team to cover everything you need from an IT point of view, you’ve already set a defining factor in your search for a partner.

So many companies, so little time.

Define what you need or want first and it will be a lot easier going forward. I don’t recommend using cost as a factor from the get-go. You can do it of course, but going for the cheap route usually doesn’t end well.

Step 2 –  Do the research

It does take a lot of grunt work, but if you clearly defined your ideal software development partner’s persona it shouldn’t be very difficult. The old fashion way of just searching for companies online works, but Quora is also a useful tool for this.

You want a trustworthy partner so another way to find one is through an objective third party. We can all brag about how awesome we are, but it won’t mean much unless someone else says it too.

Clients are the best way to get recommendations, they’ll tell you the good, the bad, and the ugly.

Platforms like Clutch can be a useful tool to check out outsourcing companies in an objective way. Each company creates its own profile, but the client reviews are done independently by Clutch. The review process is quite exhaustive so you can get a really good idea on how that company works. It can also show the company’s experience in different industries or sectors.

Step 3 – Make a shortlist of promising companies

Put together a list of companies that fit your general requirements. It’s a lot easier sifting through them this way. Creating a funnel will allow you to take a large number of companies into account and keep only the “worthy” ones.

The shortlist should be, well, short, with around 5 companies.

Here’s a spreadsheet model you can use to save some time. It quantifies several important factors for this decision.

Step 4 – Assess the company’s experience

I’ll be specific – have a look at what kind of experience they have in your industry, how many completed projects they have, how many clients, and how many professionals. Case studies are a good indicator here. You should also check out their experience related to the technologies you want to work with. Python, Java, PHP, Perl, .Net, no matter what, make sure your partner is as in love with your technology as you are.

Also, keep in mind if there is a product mindset in the company if there are passionate business analysts and product managers to define and shape your own product.

Other factors that can help out are certifications in their respective technologies and how many ongoing business relationships they currently have.

Step 5 – Compare cultural compatibility and communication skills

Bad English skills and “Yes man” are huge red flags. Remember, you’re looking for a partner and if you want someone to cover all of your IT needs, you need a proactive partner that knows more about this field than you do. They have to be knowledgeable and work with you to find the best solution, not agree with everything you say because you’re the client.

The workflow will be defined by the people involved, so their background and culture will have an impact on your project. They have to be on the same page as you, regarding your company culture and, more than that, your home country culture as well.

Borders are barriers and it can take substantial efforts to break them.

Step 6 – Balance time zone differences

You can find an outsourcing partner in your home country, but in most cases, the partner is in another country so you will have some time zone differences. Issues with this affect communication and productivity, but depending on how the project is handled and how big the time zone difference is, it can be a smooth ride or a really bumpy one.

If the partner is doing a project independently, you don’t need to worry so much about the time zone difference, but if you have two teams or more, in different countries, it can become a hassle. You should have at least 4 hours a day of overlap time, to be able to work efficiently together. Most outsourcing companies will also have a flexible schedule so meetings and calls can be held when needed even with a large time zone difference.

Step 7 – Balance the price tag

You’re probably looking for an outsourcing company for two reasons: cost and/or availability. You want to expand, but can’t find the talent, or you want to have a specialized team that can handle all your IT needs at a lower cost. If you’re not an IT company yourself, this is an attractive choice.

Although, often enough, it’s a combination of both. A lower cost can be very attractive, but past experiences have driven companies more to the idea of getting things done well rather than doing them cheaply. From this point of view, Eastern Europe is an attractive location for finding an outsourcing partner even though prices can be much higher than in Asian countries.

Good software development will never be cheap. Anything under $25 per hour for mid-level skills shouldn’t even be considered.

Step 8 – Evaluate the future of the relationship

If you’re looking for a long-term relationship, you need to look at the economical, financial, and political stability of the region where your partner has its operations.

How old is the company and how stable is their home country? Can your relationship go on for multiple years with the prospects of the current economic climate in that region?

Also, look into how you can work for multiple years with only a few hours of overlap time. A strong methodology and work ethic can overcome such issues.

Step 9 – Interview, interview, interview

Having an outsourcing company as a partner means more than just working together. The team may be employed by the partner, but they will work for you and with you so you need to know them well and check if there is sufficient compatibility between yourselves.

Have multiple interviews and give coding challenges if you feel it necessary.

Remember, they won’t be just bodies on a chair writing code. They will be a part of your company, so get to know them well, both from a technical point of view and from a personal one as well.

Go through interviews with the team members that you find most appealing (from the CVs you received). It’s a good idea to get to know the people you will be working with, beyond their technical acumen. You can also do an in-person visit at their HQ and get to know the company and management on a first-hand basis.

Step 10 – Start small

Let’s say you need a 30-person team, covering everything – development, design, testing, BA, PM.

The best way to go about this would be to start with a 3-4 person team for the first month or so. A small team will be easier to manage and it will be easier to get the kinks out of the relationship because there will be kinks. It’s best to iron them out before going in full production mode with the entire team.

You can also start with a pilot project to test the relationship out. This is especially helpful if you haven’t worked with outsourcing companies before.

You can gradually increase the team size so, in 3 months, you can have the whole team onboard. For a large team it’s best to have a project manager in either location and, depending on the project needs, a business analyst.

Finding the right software development partner, be it for a one-time project or for a long-term relationship, won’t be easy. It’s a tough ride, but these steps will help you get through the process, putting the important things in the balance, and helping you make the right choice.

By Samuel Andras