What To Look For When Outsourcing Development

And how to find the outsourcing partner who’s right for you

You need help. You’re swamped with tasks, missing deadlines, or in need of expertise you don’t have. You can almost see the lines of unwritten code swelling into a beastly workload and backing you into a corner.

Luckily, you’ve read our previous post about outsourcing, and after careful consideration you’ve enlisted a contractor to bail you out. So you grab your phone and call for help, only to hear…

…please call back during business hours
or
…please hold
or better yet
…this number is no longer available

This happens all too often because companies become blinded by rates. Why pay top dollar for a local developer when you can outsource across the country or across the globe for a fraction of the cost?

In our previous post, we mentioned several common types of outsourcing. Sometimes, all you need is a freelancer or two to help with a little extra work. Other times, you need the support offered by a company of developers. But no matter what type of help you’re looking for, when you shop for any service you have to compare vendors based on more than rates alone.

What do their clients have to say about them? Do they have positive reviews or any relevant testimonials? Where are they located? How easy is it to get in touch with them?

Hiring cheaper help doesn’t always mean you’ll pay less, especially when inexperience or poor practices cause your project to drag on. Conversely, higher rates don’t always translate to higher quality work. So to help you get the most out of your time and money, we’ve compiled a few things you should seek out when choosing a development partner:

Are they qualified?

For developers, every project is a learning experience. Just be careful not to choose a developer who needs to learn a lot in order to complete your project.

Some developers don’t specialize in the area you need, while other developers simply don’t have enough real-world experience or sufficient expertise to work on your project.

A great way to find out whether a developer can handle your project is to do plenty of research. Visit their website and poke around for a while. Look for projects they’ve completed that are similar to yours, and see if they have their expertise spelled out on any page(s).

Do they focus on a niche market, or do they appeal to a broad audience? Do they have any reputable partners? Have they worked on projects for any big-name companies like Microsoft, Oracle, or IBM?

Look at their content. Do they try to sell you on how great they are without mentioning any specific technical expertise or real-world problems they solve? If their content resembles advertising copy that doesn’t have any substance, or if there’s little effort to inform you about what they can do, keep searching.

A great developer doesn’t make you look very hard to learn about their expertise. They usually dedicate separate webpages to explaining their experience and capabilities. But even if this is the case, you’ll probably still have questions.

So get in touch with them. Send an email, fill out their inquiry form, or even call them. Doing so gives you a chance to interact and helps you get a feel for them. Pay close attention because this gives you an idea of how well they comply with another very important item on the list…

Do they communicate?

Still waiting for a response to that email you sent two weeks ago? Are you the one who always initiates contact?

You need to have a truly comprehensive experience, complete with needs discovering, requirements gathering, and other phases of iterative agile development. Reliable and frequent communication is essential to the entire process.

Go online and look at your prospective developer’s testimonials. Get in touch with their clients and others who’ve worked with them. See what they have to say about how well the developer communicates: Are they reliable? Do they give frequent updates and ask lots of questions? Do they communicate well internally (is everyone on the same page when it comes to a project)? Do they use multiple communication channels (text message, instant message, video conferencing, etc.)?

Also, pay attention to who’s responsible for keeping in touch with you. Make sure that your prospective developer assigns someone to act as a dedicated communicator or your single point of contact. Granted, you do want to occasionally discuss your project with engineers and designers; just make sure that the dedicated communicator sets up the meeting and takes part in almost every discussion you have with the development team.

When there’s excellent communication, your project gets done the right way.

Do they focus on solving your problem?

If you find a well-qualified developer who’s great at communicating, you can almost feel confident putting your project in their hands. Before you do, make sure they focus on solving your problem.

You probably have an idea of the solution you want, and all you need is someone who will build it.

Not so fast. Your ideal solution might not be the best solution to your problem, and you want to choose a developer who understands this.

So when you get in touch with your prospective developer, see if they ask questions that revolve around your problem, not your solution. This is the only way they can truly grasp your needs and build software that’s worth your time and money.

Do they avoid giving estimates right away?

Surely you’ve got a budget and an idea of how much time you think your project requires. So you’re shopping for developers and decide that you want to ask for time/cost estimates upfront. Like, really upfront. Like, in the first few conversations you have with a developer.

If they give you any numbers this early in development, especially numbers for your entire project, make sure you raise an eyebrow.

Why? Because estimates are complicated.

Sure, if you give your general requirements to an experienced developer, they can use proven estimation methods to provide you with a very general estimate. If this is what you want, look to hire someone who has plenty of experience creating the solution you need.

What if you’re in need of something that’s not really custom, and instead is a common solution in the marketplace? Plenty of developers offer standard solutions, like simple websites or mobile apps, that they have experience creating. They’ll be able to give you solid numbers on cost and time since they’re very familiar with these types of solutions.

In any case you should expect any estimate to change as your developer learns more about your needs, and as development issues arise.

For custom work, good estimates that are more useful and somewhat accurate come as the result of plenty of discussion. An estimate is an educated guess based on information you give your developer. Your developer has to grasp your needs and then break down the work to be done, which means they’ve got to thoroughly research your problem and your solution. The more your developer knows about your requirements, the more value they can add to their estimates.

So make sure your developer has the experience to provide you with the broad estimate you’re looking for, or partner with someone who knows that thorough research is the only way to give you valuable estimates for your custom project. Otherwise, you might subject yourself to an overconfident or inexperienced developer who will leave you consistently disappointed.

With these points in mind, you’re better prepared to choose a developer who provides a great development experience and delivers software that meets your needs.