Edward RobeEngagement Manager

Choosing a Good Outsourcing Company


So you have an idea for a project, and are interested in looking at what sort of outsourcing companies are out there who can help you put together a killer product. Great! But how do you go about actually finding your perfect outsourcing team?

Well, it’s not as simple as googling “outsourcing” and picking the first result. You should consider what kind of team you want to put together, the requirements for the specific task, and other factors regarding getting your project started and on track.

This short guide will help you formulate a plan of action regarding your project - from inception to execution and beyond. Bear in mind that choosing an outsourcing company is a long and arduous journey, but one that can really pay for itself in terms of helping you find the high-quality specialists you need to get your product to market.  

Step 0:  What do I want from my outsourcing partner?

The clearer idea you have about what you want the outsourcing team to do, the easier it is going to be to make the right choice about whom to go with. I can’t tell you how many times I’ve heard someone say “I got a great idea!” and then as soon as I start asking them remotely detailed questions about their proposed project they simply shrug their shoulders and say, “that’s for the developers to figure out.”

Developers are not designers. Nor are they marketers, or salespeople, or testers. Those are separate specialists which you may (or may not) have to recruit in order to finish your project. The more you flesh out your idea prior to contacting the first outsourcing company on your list, the less headaches you’re going to have further down the line.

Many outsourcing companies will be happy to take whatever vague idea you have and transform it into something, but by doing some planning prior to reaching out to them, you’re going to ensure that their work matches closer to what you want to accomplish.

Make a Model

Try to put together some concrete expectations and functionality of your project. Consider making a wireframe, mock up, or some documentation and specifications for the project which you have in mind. The more information you can provide, the better! The outsourcing company might suggest some changes based on their experience and professional opinion, but that’s fine - at least they have a better idea of what you are looking for, right from the start.  

Step 1:  Outsourcing, outstaffing - what’s the difference?

The next most important question is determine what sort of team model you want to put together for your project. This is a particularly confusing part for people who are new to outsourcing, and can cause a lot of frustration to clients if they end up getting stuck with the wrong model for their needs.

Outsourcing

In traditional outsourcing, you hire an external company to provide a complete software solutions package. Maybe you are not a tech person, and want to supplement your own business with a technology solution, or start a completely new project based on a particular idea.

In this case, you would like the outsourcing company to handle the development, management, and design of the project based on your specifications - it is ultimately the outsourcing company’s responsibility to provide you the final product you want. Here at Binary Studio, we refer to this as custom software development. This is a good fit if you want to contract the whole project out to a 3rd party outsourcing company.

HINT: Other names of this sort of model:  standalone outsourcing services, and custom software packages.

Outstaffing

In outstaffing, you already have an existing team working on a particular project, and you need some help. Perhaps you would like to add a long-term member to your development team, or need a stop-gap replacement for a developer who dropped from the project, or maybe you just want an external tester to run through your code to check for bugs.

With this option, you still hold the responsibility for the project, and the outsourcing company simply provides you the qualified staff to do the job. We call this a dedicated development team, but it’s also commonly referred to as a extended, or integrated development team, and occasionally staff augmentation. This option best suits you if you have an in-house development team, or you are working on the technical side yourself and need qualified help. 

HINT:  This approach is sometimes referred to as an extended, or integrated development team, as well as staff augmentation.

Step 2:  What will my software be running on?

You also will need to determine what platforms and operating systems the software will run on:

  • Desktop application (Windows, Mac OS, Linux)
  • Mobile application (iOS, Android, Windows Mobile, etc.)
  • Web application (accessed through a web browser)

If you are unsure about what platforms and system you should use, you can always find a competent technical expert to discuss the different options with you. Ideally you will want to choose someone who you can trust with this consultation - and be careful with inquiring directly with the software development company you plan to work with. They may try to sell you an apple when you really need an orange!

Step 3:  What outsourcing relationship do you need?

Hiring an outsourcing company establishes a business relationship, and it is important to establish your needs and rules up front so as to better determine what kind of outsourcing solution you need.  

For example - how long are you planning to utilize the outsourcing company? Maybe you are looking for a quick review of your existing code to determine any improvements or fixes which may be needed. Or perhaps you are only interested in a long-term commitment from a developer who will basically be an extension of your existing team.  

Perhaps you seek only a senior development team to carry your complex project to fruition, or maybe you are comfortable taking on some juniors who are more affordable and able to follow your in-house tech lead’s instructions more than adequately.  

Answering these sorts of questions in advance will save you time when you start shopping around for different outsourcing companies, because you will quickly be able to see which companies are better suited toward your needs.

Step 4:  Starting the search

Okay, now that you have a good idea of what your project is going to entail, you can start searching in the appropriate places. Obviously, you could just google it. Just remember that the results you see are there because the companies have good SEO, but that doesn’t mean they’ll be your perfect fit! Instead, we’d recommend basing your search on whether you are hunting for a long-term or short-term project.

Long-term projects

For long-term projects, there are plenty of resources out there that provide a very in-depth view of a company which can help you decide whether they’d be a good fit for your project. We personally recommend clutch.co. Here, for example,  you can take a look at our company’s profile as an example and see very detailed feedback from our past clients as well as a good overview of the portfolio we have built over the years.  

Tech conferences are also a solid choice, as many serious outsourcing companies attend the larger ones which occur all around the world. This allows you to have some face time with your potential outsourcing partner and get a good feel of what they are about.  

Short-term projects

Regarding more short-term contracts, something like UpWork may be perfect for your project’s needs. For one, you can hire a freelancer directly (without paying the overhead of a full agency), and you can also find companies who have developers which are available at this very moment and ready to jump on-board immediately. Bear in mind that not all outsourcing companies have someone “on the bench” and available to work on a short term project, although if you’d like to work with a specific company it never hurts to ask!

Step 5:  Exercise Due Diligence

Due diligence is about checking a potential candidate carefully before signing a contract. There are obviously several considerations here but cost is not the sole factor.

You should have a basic idea of what you can afford to spend on this project before you even start putting together a model of what you’d like to build. This will have an immense influence on the quality of work you are able to hire, what kind of features you can include, and how much time and resources you are willing to put into getting the project done properly.  

Narrowing it down

Once you have a budget in mind, take your short list of possible candidates and compare them on quality and capabilities, not cost. Saving 10, 25, or even 50% on a contract is not going to be worth the savings if you are left with a poor product. Do your research. Schedule phone interviews, and talk with the developers with whom you will be directly collaborating about your project, even if it means getting them to sign NDA’s.

Make sure you have good communication with each person you will be in contact with, and keep in mind all the nuances such as time zone differences, cultural considerations, language barriers, and what sort of communication tools and systems you and the outsourcing company will be using in order to stay on the same page during the development process.

Don’t judge only by price

This is the biggest pitfall that people make when selecting an outsourcing company, and by far the most common. People take a shortlist of candidates and go for the lowest bidder. Perhaps in some situations this is an appropriate method of selecting a long-term business partner, but in my experience it will just lead to dissatisfaction for all parties concerned. If you are going to commit to such a big endeavor, you owe it to yourself and your project to check and make sure you are choosing the company which is the best fit for your needs.

Step 6:  Step back and review the contract

After you have made your selection, take a moment to step back and contemplate the project as a whole. Check your finance department if everything is in order, talk with your in-house team to see if they are satisfied with your selection, and then make well-informed decision on writing up a contract. A six or twelve month commitment is worth the extra preparation in order to ensure that you will be satisfied with the final product.

Step 7:  Commit, and stay connected

Once you have the project rolling, don’t stay passive during its development! Developers love frequent, constructive feedback to help guide them in their efforts. There is nothing worse than writing up a bunch of code only to see it thrown away because it didn’t fit the client’s vision. This is why it’s important to establish good communication before the contract is even made - it sets the standard for how the developers and client will disseminate information to each other.

Conclusion

With these points in mind, your outsourcing endeavors will surely yield positive results and a strong business relationship which can last years, providing you with a valuable resource which can transform your ideas and projects into highly effective software solutions.