Offshore development was once the black sheep of the business world, shunned for what were seen as purely ‘cost cutting’ measures that came at the expense of quality and decency.
Yet in the space of a few decades, the business world’s view of offshore development has taken a 180-degree turn. Now it’s the businesses that shun offshoring that are being left behind.
A 2018 study found that the global outsourcing market amounted to USD$85.6 billion, up from USD$45.6 billion in 2000.
But first let’s clear something up. Offshoring has become something of an overused word, thanks to the considerable range of worldwide contractors and experts available for hire around the globe that are of course “offshore” and in a different country.
For the purposes of this article, offshoring can be defined as hiring lower priced (maybe less skilled) developers who work in a different time zone and for whom English is not a first language.
It’s worth mentioning that this article isn’t a license to recklessly hire an offshore company to build your product, especially for those that don’t have experience building tech. It’s a guide to successfully use offshore to augment your team, or to get an MVP built, and to reduce cost through careful and precise execution. There is a lot of opportunity when done wisely, but it can also cost a lot of money and pain if not done correctly! So, use caution and feel free to contact me directly with questions.
Now let’s begin.
What’s The Big Deal About Offshore Development?
Offshore development is the practice of hiring developers who are based overseas. Hiring offshore developers, or “offshoring,” is often done in order to reduce costs, as developers tend to be more expensive in Western countries by several orders of magnitude. But there are advantages other than lower cost.
Other major benefits of offshoring include:
- Larger talent pools
- Greater availability for projects
- Faster turnaround times for clients (working while you sleep)
- Business growth
- Greater flexibility
Why Offshore Development Requires Special Attention
The benefits of offshore development are numerous, however it will take special attention to overcome the key challenges commonly presented by working with overseas professionals.
These challenges are:
- Language barriers
- Cultural differences
- Time zone differences
- Verification of skills and experience
- Security concerns
- Bad quality
Without anticipating, planning for, and managing these challenges, you will run into more work than you expected. Then, the effort required to go forward begins to outweigh the advantages.
Offshore development will take time and patience at the outset to find alignment between your business practices and goals and your offshore employees.
First, Three Rules For Managing ALL Developers
Offshore developers are just that — developers. Therefore, let’s cover the three basic rules of managing developers and technical people.
1. Know exactly what you want.
The easiest technical spec for any professional to follow is a tight one. If you have a clear idea of exactly what you need, your developer will have a clear plan to make it a reality.
Leaving the spec wide open, or being capricious in your vision for the project, will lead to confusion and your project will go off track. The work will need to be revisited again and again to find a solution you are happy with. This slows down your project, adding unnecessary expense.
2. Maintain frequent, ongoing contact.
Keeping close contact serves multiple purposes.
Naturally, regular communication allows you to stay up to date on progress, provide feedback, deal with issues as they arise, and have a reasonable expectation as to when the job will be complete.
Regular communication also allows your developer to see your interest in and involvement with the job. This can help with their motivation, and will ensure they feel supported and able to ask questions or reach out at any time.
3. Manage your risk at all times.
You must work to manage risk regardless of whether your developer is right next to you in the office or on the other side of the planet.
Risk takes many forms, and it requires a skilled manager to identify and resolve issues as quickly as possible regardless of where liability lies. In development, risk can be anything from poor teamwork to unstable applications, to inaccurate project timeframes to lack of scalability.
Now that we’ve covered the basics of working with developers, let’s dive into the nine more complex discussion of managing offshore developers.
1. Remember That Success Is Almost Never Instant
When making the move to offshore development, a common mistake is to expect the same results from overseas teams as you would from in-house professionals. Offshore development simply takes longer to fall into place due to the inherent challenges of the arrangement.
This process will take patience, communication, time, and financial investment. You will need to become comfortable with managing and connecting with your team, and they will need to take time to get to know you.
As they take in feedback and gradually make improvements, you will soon see progress and reach the level of success you need to continue offshoring development.
Should you give up on the process without giving your offshore teams time to find their stride, you may miss out on the benefits other companies receive from this service.
However if you don’t see steady improvement over time, and instead see excuse after excuse or “don’t worry,” you may need to look for another partner quickly. The key is not instant change, but steady improvement. No improvement is a major sign that you’re going nowhere and you’re just being taken advantage of.
2. Keep Your Options Open
To mitigate the risk of an offshore team never finding their stride, you can take control by keeping your options open.
This entails searching for more than just one company to employ when researching offshoring options. You can even employ multiple companies at once in order to set yourself up with several excellent developers, or to be able to choose the best should some options result in disappointment.
This strategy allows you to truly invest in offshoring, rather than simply dipping your business toes into international waters. It lets you become an expert and learn who is out there, who can be relied on, who produces the best work – and who doesn’t. It also gives you more exposure to the practice of offshoring in general, giving you a bigger picture to work from.
Even if you are impressed by all chosen providers, multiple options give you a back-up plan if things don’t run smoothly in the future. This allows you to retain control over your company by not becoming dependent on a single offshore group.
It also requires you to retain more of the control of the project, including all project management software, code, repositories, APIs — everything — so that if you do need to switch developers you won’t find yourself trying to regain control of your property.
3. Lean On A Trusted Professional
Overseeing the offshore development process on your own is a big task, especially when you have work and projects of your own to deal with at home. Maybe you also have little experience building technology or managing developers, not knowing what to look for.
Therefore, finding a trusted professional that you can rely on will greatly impact the success of your offshoring projects. This could be an advisor or a dedicated senior lead developer who supervises the work. This high level staff member can be in-house or an onshore consultant, provided you are confident in their ability to manage, carry out quality control, and communicate with you regularly.
They can make judgement calls, help you avoid future concerns, and be committed to the task without distractions, thereby taking pressure off your workload. This is essential because if you don’t make the time one way or another to properly manage an offshore team, you can pretty much expect major problems down the road.
4. Start With A Solid Foundation At Home
Before making the move to offshore development, ensure that your in-house foundation is rock solid and ready for overseas expansion.
This includes making any major decisions yourself with your in-house teams, or a senior-level advisor or developer.
For example, choose the technology that is best for your business and make that your standard across the board. Otherwise, offshore teams will naturally gravitate to the tech that is the easiest or best for their team rather than best for your business.
Making major decisions is one of the areas that becomes significantly more difficult when offshore teams are involved, due to communication barriers and even cultural differences. This is why you should have these aspects of any offshore projects set in stone before making the investment.
Additionally, working to reduce the complexity of a project in-house before sending it offshore can mitigate the risk of a task being too loosely defined and complicated for offshore teams to complete efficiently.
For example, task in-house teams with building the shell of your app, its underlying infrastructure, servers, and continuous integration. You can then pass the rest of the project to offshore teams, where they can work within a defined and structured environment.
If your offshore developers suggest making larger changes outside the parameters of what you have given them, they will need to first explain the reasoning and why it would make good business sense. Once verified, this could certainly improve the final product, but generally speaking, a strict framework will ensure work is completed as required without any surprises.
5. Offer Consistent Tasks And Project Formats
You will find the most success in working with offshore teams when you offer them projects or tasks that follow the same format each time, so there is room for feedback, growth and understanding. You’re building a foundation you can continue to use.
To do this, zero in on the exact type of work and technology areas that you need the offshore team to work on. Make this pipeline consistent so they know what to expect and how to complete the work without needing excessive supervision each time.
Like an assembly line, this repetition will help to streamline your projects and ensure each aspect is completed to a high and consistent standard. They will learn to produce a specific result for you allowing them to get better and better. If you have them work on too much variety, they are always starting from ground zero and you never hit that momentum where the savings really kick in.
This strategy offers the added benefit of your being able to measure each point of the system, and make adjustments as needed, rather than trying to identify issues and create solutions in a broad system that is changing day after day with no consistency. Because communication is hard, you want to layer in strong systems that don’t require constant change.
Without a consistent system in place for your offshore developers, it’ll be pretty hard to iron out a development pipeline that feels like it’s worth all the effort to set up.
6. Control Your Intellectual Property
A key concern for companies considering offshore development is the question of security, and it’s certainly an area where caution is advised.
One way to protect your value from theft is to keep the core parts of your intellectual property private. If possible, design the development environment in such a way that offshore developers are unable to look behind the curtain for any proprietary technology you wish to keep hidden.
While it is possible to request that your offshore teams sign non-disclosure agreements, it may not protect the code, and it can be difficult to take action in cases of breached contracts.
Other ways to protect your intellectual property include:
- Limiting the number of people who will work on sensitive parts of a project
- Knowing IP laws in your home country and your offshore locations (visit the International IP Index to start your research)
- Ensuring secure lines of communication
- Start with offshoring on less sensitive projects to build up trust
- Ensure you own the code they produce
7. Don’t Lose Sight Of Your Goals
When you make the decision to move to offshore development, it’s important to have a specific goal in mind for the current phase of development, and to stick to it. I don’t mean just to save money (but that is part of it), I mean the overarching business goal (or phase) of the project. Are you gunning for your MVP (minimum viable product)? a version 2? A complete teardown and rebuild? It’s dangerous to be in a never ending phase of “ongoing development”, this is where everyone drops the ball.
This means keeping your use-case clear in your mind, and making sure anyone working on your projects is on board with your vision. As soon as you are finished with any phase in the process, re-evaluate your use-case again. Make sure it makes sense so that you’re ready to move on to the next phase (and succeed). Sit everyone down and clearly define all of it, identifying how perspectives and actions need to change, and why.
For example, if your goal is to go offshore in order to save money on a startup proof of concept, don’t forget this goal as soon as your MVP is in place. What is the real goal of the next phase and refinement of the product? Additional feature development? Squashing bugs as quickly as possible? A version 2?
Once the MVP is in place and you transition into ongoing development, without a clearly defined goal the day to day dynamics of your team change (even with in-house teams). They become less focused. Even your attention to the budget can become blurred, and this is when you start to see larger and larger invoices with little to show for it. Really take a hard look at the objectives for the next 3 months and give the phase a name, a goal and something to tie every action back to. Reestablish a tight budget and run the project with the same vigor and focus as the MVP.
Generally speaking, the moment your offshore team moves into generalized ongoing software development, you may notice that documentation starts to be neglected, and features can be added or changed without prior planning. High priority items are left undone while all the low priority items are finished. Developers can become careless, make sloppy decisions, and resist feedback, and these issues are only exacerbated by irregular communication (which also tends to slip after that major milestone is achieved).
By keeping your mind on a very defined goal, you can utilize offshore developers with a higher degree of accuracy. You must remember that to actually gain the promise of saving by using lower cost developers, you need to increase oversight, focus and consistency. Otherwise you just end up reinvesting the savings (or more) to do it right later on down the road. You don’t want to be one of those prepretuating the nightmare offshore story.
8. Prepare Your In-House Teams
Many businesses will not rely wholly on offshore development. Instead, they will use them as a low-cost supplement that assists and complements skilled in-house engineers. In many cases, this combination of in-house and offshore development offers the most promise for long-term success.
This hybrid model generally involves in-house teams leading and pushing work through the pipeline to offshore developers, who can easily pick up where your local teams left off and complete the project. Sometimes overnight while you sleep which is awesome!
If this is your plan, you will need to prepare your in-house developers to ensure a smooth transition.
Take the time to ensure in-house teams understand the value of the offshore staff. Notably, that the offshore teams will take the less appealing tasks off their hands. You can even be upfront and admit that offshore development does save the company money, which you can reinvest in further growth, which also benefits them.
Once your in-house team understands and is on board with the idea of offshoring work, they will be more invested in helping to make the strategy a success through their management of tasks and checking in on offshore progress.
Also, if you are using an in-house employee as a lead developer for your offshore teams, make sure they have the time and focus to do the job well. If managing offshoring is not part of their job description, it may not get the attention it requires which can lead to problems not being dealt with in a timely manner, and sub-par quality overall. It can be very stressful to be tasked with managing an offshore team without the proper time to do so.
Instead, make sure any lead developers are focused on offshore management without distractions.
9. Utilize Automation in Code Deployment, Testing and the Cloud
I saved some of the good stuff for those that read all the way through.
When you venture into offshore development (thinking back to the idea of creating an assembly line), it’s great to automate the development cycle, testing, and use cloud solutions that reduce the manual, repeat or tedious work.
Software has been created to help with everything from writing code to checking for bugs and running automated tests.
Here are just a few options popular with developers:
Automated (scalable) Cloud Platforms
By being aware of the challenges and requirements of offshoring, you will be perfectly placed to make the move in 2019 – and never look back.
Offshoring demands careful planning and management for success, as well as patience, due diligence, and skilled in-house staff to oversee and work with international teams.
Moving to offshore development or incorporating offshoring into your existing workflows can be an excellent way to bring down costs, improve outputs, and streamline processes.