_ Blog / Management

Ultimate Guide for Offshore Software Development

by Tamás Török
/ January 11, 2017
#Management
Offshore software development

Developing a product is a pretty damn hard thing to do.

You not only have to create something people want to buy, but you also need to avoid technological dead ends and keep your eyes on the recent feature your users requested. And I haven’t talked about deadlines...

If you work for a startup, the whole thing just gets worse.

You are probably often faced with a fluctuating workload that sometimes demands more people than are currently available.

Apart from working more and hiring software developers, there is another way to overcome these challenges. In these pressing situations, outsourcing software development partly or fully could make a real difference.

I know what you think...

I’m sure you’ve already heard some horror stories about offshore software development. It has a really bad reputation thanks to fraud and fake companies that take the money without delivering what they promised.

But here’s the kicker:

We’re bringing a fresh, transparent approach to software outsourcing.

With this guide, you will see the whole process of offshore software development and learn how to use best practices to filter out frauds, reduce potential risks and eventually make it work for you.

If you’re looking for an offshore software development team, this guide is for you.

Use these links to jump to a specific part of this post:

Offshore Software Development Guide

WHAT’S THE DIFFERENCE BETWEEN OFFSHORE, NEARSHORE AND ONSHORE?

  • Offshore software development means you work with a team far away from your home country. They are usually many time zones away from you.
Offshore Exp
  • Nearshore software outsourcing is quite similar to offshore software development. The main difference is proximity. A nearshore software development company is typically in the same time zone or at least pretty close to your country.
Nearshore Exp
  • Onshore software outsourcing means you work with a software company that operates in your country.

Onshore Exp

WHAT IS OFFSHORE SOFTWARE DEVELOPMENT?

Offshore software development or offshore software engineering is outsourcing work to a third-party software developer. Software related services can vary and can be offered in a wide range; these could include web development, web application development, mobile app development and many other related services. There is really a hell of a lot of software development related things.

Your partner company is typically far away from your country and probably has a different business culture, which is usually the main cause of discomfort and missed expectations. One of the main reasons to outsource software development to an offshore partner is to leverage cost advantages.

A software project can be outsourced to an individual or a company. In the first case you hire a freelancer to do the job, in the second you hire a whole team for a project. These projects are typically much bigger and demand more diverse expertise.

In this guide we're focusing on outsourcing software project to a software development company.

Let’s dig deeper and see the pros and cons to offshore software development.

ADVANTAGES OF OFFSHORE SOFTWARE DEVELOPMENT

Well, it’s not just cost-saving...

  • Cost effectiveness: Software agencies based in Western European countries or in the USA charge higher fees. Offshore countries have lower cost of living so they can afford to offer lower fees compared to onshore software development companies.
  • Lower operation costs: Hiring new team members for your software team involves administration costs; you also probably need to provide the necessary equipment (computers, peripherals, etc.) as well as office space.
  • Quality of workforce: In most cases, you won’t find any differences in the quality of the workforce. For example, Eastern-European countries, like Hungary, offer high-quality education in software engineering. It’s a pool of talented software developers at an affordable price.
  • Don’t have to train employees: Your partner will take care of training their employees. This is a must-have in order to keep their labour force competitive and also to keep those people in the company for long term. An outsourcing partner can afford to pay for very special trainings and equipment since it’s part of their core business.
  • Specific skills: Most offshore software developers have focused knowledge. If you need a qualified specialist with a specific skillset, it’s better and faster to hire an outsourcing software company to get things done.
  • Less administration stuff: Finding the appropriate person is a long process. Especially in Western countries, finding a great software developer at an affordable price is almost impossible.
  • Boost for product development: Hiring an outsourcing software developer can give an instant boost to your product development, helping you reach your next product milestone in time.
  • Easy to scale up or down: Product development can be very hectic. Sometimes you need a lot of people to get stuff done but there are periods when you don’t need that many people on a specific project. In this case, you can easily scale down or up your workforce. It’s really a lean way to do software development following the actual state of business and capacity.
  • You will be more focused: If you outsource your software project partly or fully, you can focus on other pressing issues. You will have extra resources to address another, (more value-added) part of the project.

DISADVANTAGES OF OFFSHORE SOFTWARE DEVELOPMENT

Disadvatages offshore software development
  • Communication is a bit slower: When you work with someone who sits next to you, it’s much easier to talk with her in person than via chat or phone. Time zone differences can also be an issue; the worst thing that can happen is when your software developer partner is waiting with questions and the development stops. To mitigate these disadvantages, set up a channel for instant messaging and frequent video calls for reviewing progress and discussing project-related issues.
  • Demands more coordination: It’s somehow connected to the communication issues, but it demands more coordination, frequent meetings and checkpoints to keep the project on the right track.
  • Fraud and shitty companies ruin the picture. They are ruining the reputation of offshore software development companies, which is a serious thing that holds back a lot of companies from outsourcing software development.
  • Cultural differences: If you find an outsourcing partner far away on the globe, cultural differences can be an issue that could slow down the project. Mutual understanding (language barriers) and business ethics play a crucial role here.
  • Political climate: In some countries, the political situation can shift easily (like in Ukraine), which definitely is not helpful for your project and carries a potential risk.
  • Black box: In most cases, you don’t see what’s going on in the other software development company, and this can also be true for your project. If the code your partner writes isn’t visible or available for review, it’s hard to give early feedback and small mistakes can easily grow into much bigger ones.

Even with remarkable advantages, there are some disadvantages that definitely can hold us back from working with an offshore software developer or simply keep us up at nights.

You might be wondering: After these, who the hell wants to work with an offshore software development company?

The thing is that 80% of these disadvantages and risks mentioned above can be mitigated or eliminated. Really!

All you need to do is to keep reading.

HOW TO MAKE OFFSHORE SOFTWARE DEVELOPMENT WORK FOR YOU

Offshore software development checklist

Unfortunately, there is no guarantee that your software developer partner will be a good fit but I’m sure by following these tips you can definitely reduce the risks involved in the selection process.

These can be addressed in the following stages:

  1. Do your homework before you contact them
  2. How to select an offshore software development company
  3. After the first contact
  4. How to work with an offshore software development company (best practices)


Offshore Software Development Checklist

1. DO YOUR HOMEWORK BEFORE YOU CONTACT THEM

Dig Deeper

Before you start searching for the perfect software developer agency, you need to clarify first what you exactly need. It seems obvious but trust me, surprising things can happen out there.

Having a vague idea is not enough. Having an idea with few sketches is better but still doesn’t cut it. If you’re about to find an offshore or nearshore software developer, you need to clarify the following things first:

1. Have a clear understanding on what product/features your target customers wants (for your own sake). Get out of the building and talk with your customers.

2. Make sure that the form of product you want to build is met with the regulations (if applicable). It’s very painful when regulation issues are uncovered during the project.

3. A product roadmap with milestones needs to articulate your project’s goals and what milestones you need to reach. This creates a priority list.

4. Put together user stories. These clarify who will use your product and what they will be able to do with your app. Here is a guide how to do it.

5. Put together the wireframes, sketches or mockups of your project. Here is an easy to use iPhone app mockup creator and one for other applications.

6. What do you need to make this project happen? Capacity? Skills? Identify gaps and technologies you need.

7. Select one person who is allowed to make product-related decisions and can be reached by the software agency (it speeds up communication and decision making).

2. HOW TO SELECT AN OFFSHORE SOFTWARE DEVELOPMENT COMPANY

When you’ve found some potential partners to work with, the first thing you should do is to check out their online presence. Here is where you should focus:

References: Does the company has any references showing that they’re actually doing stuff?Obviously, you don’t have to be a rocket scientist to put fake projects on a website, so here are two things you can do:

  • Search for case studies showing more details about their projects and technologies they are familiar with. But case studies still don’t show what it is like working with the potential partners. So, you can dig deeper...
  • Get in touch with the companies they have worked with. Ask them about their experience, what went wrong and what went well during the project. Our intention is to gain a better understanding on the way our potential partners work and handle product development-related situations.

Testimonials: Testimonials from clients definitely build trust. In this case, you can also take it one step further by getting in touch with the person who was quoted.

Relevant skillset: “I’m a software developer with 2+ years of experience in iOS application development.” Even if I have nothing to do with software development, it’s pretty easy to write anything and publish on a website. So, what can you do?

  • See if the company has a blog where they write about coding stuff.
  • Check team members and their LinkedIn profile to see their experience and endorsed skills.
  • You can also ask their former clients with similar project about their expertise.

Here, I prepared a free excel template for you to collect every necessary information and easily compare the potential companies.

3. AFTER THE FIRST CONTACT

It’s time to get in touch with the selected companies who survived the first qualification round. I recommend you pay attention to the following things:

Responsiveness: How fast did they get back to you after your first contact? It can be a weak indicator of workload of the company.

First impression: Usually at this step, you need to clarify the most crucial details of your project and define its focus. See how deeply they want to understand your concept by paying attention to what questions they ask.

Technologies/tools they use: Always ask what technologies they use. Not just software development-related technologies and tools matter, but also tools used for communication and project management. This gives you a better understanding of their workflow and practices.

Time zone challenge: In many cases, your software partner is based far away from your country. Make sure to clarify how you will handle communication and when you have dedicated times for regular meetings and collaboration.

Idea protection: You’re the person who knows your market the best so you can execute faster and better than anyone else.

Chances are your software development agency doesn’t know your market and doesn’t have the necessary resources to make it work. Honestly, until it’s just an idea, your project is only 1% ready and there are the other 99% that need to be done.

Even if they won’t steal your idea, I recommend you make a nondisclosure agreement (NDA) with your software development partner (this is what we do with our clients at Coding Sans.

Test projects: Fast results build trust. Do they offer a sample project? With a test project, you can see exactly how they work and how the communication and coordination works with the other team. You can also check their code and see if the quality meets your expectations.


I prepared a free excel template for you to collect every necessary information and easily compare the potential companies.

4. HOW TO WORK WITH AN OFFSHORE SOFTWARE DEVELOPMENT COMPANY (BEST PRACTICES)

Offshore software development

Working with a geographically distributed team adds a small complexity to the cooperation, making it a bit harder to coordinate work and communicate issues during the project. 

Time zone syncing demands time flexibility from every stakeholder on the project.

Find appointments when both your team and your partner are available. Send out calendar invitations to project members so every call and meeting will be pre-booked in their calendar.

Tracking progress: Regular meetings and a commonly used messaging platform always give a picture about the project’s progress.

But the thing is, it’s pretty hard to keep everything in mind.

You will remember only a fraction of information your remote developers mentioned at the daily meetings. It’s good to have a tool to track how tasks are actually completed and what the ones that need to be finished are.

I recommend you add Trello or Milanote to your toolbox. These are awesome tools that make task management easy.

There are also other project management tools such as DaPulse, which helps you organize your workflow and keeps your team updated about the project. You can create a visual roadmap, set goals, assign tasks, create boards and share files. And it’s integrated with Google Drive and Dropbox.

We at Coding Sans use GitHub not only to manage our software development but also as a tool to be fully transparent with our clients, providing them the opportunity to see exactly how our developers work on the project. We know that ensuring code quality is crucial so we put together a guide that helps you get high-quality code from your software developer. Click here for the guide.We love using Slack, this is the central of our team's communication. The best thing is that Slack can be integrated with other apps such as GitHub, Google Drive and many more. Here you can find the best Slack integrations recommended for software teams.

Handling documents: For sharing, editing and accessing documents, we like to use Google Drive. Shared spreadsheets are good for analysis and documents are good for sharing contracts and reports. These files can be accessed by everyone involved on the project.

Easily handle administration: Working with an offshore software developer comes with some administration (well, almost everything comes with administration) and tools such as Docusign and Hellosign provide paper-free solutions to sign any documents. It simply saves you from the printing, scanning and uploading soul crushing activity.

So, this is a system that can be used to manage outsourced software projects; this is the backbone of mutual trust and a successful cooperation that leads to a transparent cooperation between your team and your outsourcing partner.

Check out this software outsourcing case study and learn how this company successfully outsourced software development.

THE PROJECT ENDED. NOW WHAT?

Even if the code has been tested, there can be minor bugs that weren’t uncovered during the tests. That’s absolutely normal and your outsourcing partner has to provide support after the project ended. We usually offer 6 months of live support so every issue within the scope of the initial project can be resolved.

We recommend you negotiate at least 2-3 months of support from your software developer.

CASE STUDY: HOW FINIS BUILT A MOBILE APP WITHOUT HIRING SOFTWARE DEVELOPERS

ABOUT FINIS

FINIS is a swimming brand, selling swimming goods and products to anybody who is around or in the water participating in swimming.

Their specific market is providing technical training products to take anyone’s swimming to the next level.

FINIS is well known around the world as the leader in this category. As they grow towards the future, they now include swimwear, goggles and apparels as a larger part of their products.

Besides their products they created a mobile application that increases workout quality by providing data and insights on the health benefits of swimming.

As a small team, what did they do to create a mobile app that helps swimmers further improve their performance?

Enter CJ Fiala, Marketing Lead at FINIS.

WHY HAVE YOU OUTSOURCED SOFTWARE DEVELOPMENT?

Why Outsource

Due to our limited work bandwidth (only 70 employees in the company), it would have required much extra work for the web development team to create a mobile application from scratch. We known a lot of companies that had success with similar outsourcing projects, so we outsourced the app development and decided against expanding our web development team.

WHAT CRITERIA DID YOU HAVE IN MIND WHEN SELECTING A SOFTWARE DEVELOPMENT COMPANY?

There were three important factors we considered:

  • The price was among the most important ones.
  • Flexibility and timing: the ability to work back and forth. As we were developing a product in parallel with the mobile app, we needed flexibility.
  • Credibility: looking for companies with success in the market and had developed apps for other companies in some sort of similar capacity.

DID YOU ENCOUNTER ANY CHALLENGES DURING THE PROJECTS? WHAT WERE THEY?

Challenge

Any company that develops a mobile app encounters challenges during the project.

We had to work hard on figuring out the functionality of the app. Also, implementing graphic design was tricky, but for the most part, it went pretty seamlessly.

In collaboration with the software development company, we were in the same time zone, which made it easier to communicate. Any scenario where you work with remote workers, you should understand it will not be as simple as having someone in house. During the project, we used TeamWork to communicate and manage the project.

We definitely encountered some bumps, but it requires patience and a level of trust.

HOW DID YOU ENSURE CODE QUALITY?

We had a heavy round of beta testing to make sure everything was working correctly.

WHAT ARE THE CRUCIAL FACTORS THAT MADE THE PROJECT SUCCESSFUL?

The ability to stay on time and schedule was huge. We were developing our product on site while they were developing the app. So, making sure these projects work together was crucial and demanded a higher level of coordination.

As a small team, things come up and you must make changes, and the ability to adapt to those is very important.

Good and honest communication: constantly talking and responding to us when we get in touch with them. If there was an issue, they honestly communicated it to us.

Consistently sharing updates with the team about the current state of the project. It was a big plus seeing the inside process to understand the quality of their work.

WHAT ADVICE WOULD YOU GIVE TO COMPANIES THAT CONSIDER SOFTWARE OUTSOURCING?

Advice

Do your research and talk to people around you who have done software outsourcing before.

When you talk with an outsourcing company, always communicate openly and honestly.

Communicate all needs at the beginning of the process, since new needs arising during the project could affect the price and schedule.

Understand that it’s an open, working together collaboration, not just a one-sided thing.

KEY TAKEAWAYS

Outsourcing software development isn’t as scary as seems if you do it right.

You can significantly reduce risks and make it work for you if you carefully define your project, research potential companies and use best practices to keep the work transparent, communication clear and the project coordinated.

With this guide, we wanted to shed light on the other side of outsourced software development that actually works.

About the author:

Tamas Torok is a marketer, helping tech companies to grow. He currently leads the marketing operations at Coding Sans and focuses on crafting high-quality, research-based content for engineering leaders. He started publishing the State of Software Development report and supports the growth of the Level-up Engineering podcast, dedicated to engineering leaders.