Is it time to reshore your software development projects?
Many companies have looked to offshore software application development for a myriad of reasons, ranging from potential cost savings to lack of in-house expertise.
While it is most certainly true that overseas app development can work for some projects, our experience with clients has exposed us to a number of instances where that has not been the case.
If you’re in the midst of an offshore project, we have some valuable information to share as to why you may want to weigh your options and reshore (or onshore) your software development project.
Reasons to reshore: The seven offshore software development issues we see most often
The common assumption is that an offshore project will cost less money. Cost is often the main driving factor behind offshoring. We have certainly seen cases where an offshore team has produced a quality product for less money than what could have been done onshore.
However, as many offshore economies grow, so do the costs for offshore developers. The total cost really boils down to how many offshore developers you need and how many onshore resources you need to manage the offshore work.
Even if offshoring is the right approach for you, you still need a dedicated team at home to oversee the offshore process. In fact, it’s this balance between offshore resources and onshore management that often tips the cost scales one way or the other. Perhaps you’re seeing the scales tip in favor of reshoring as the project progresses.
If your project complexity allows you to assign a five-man team to manage 50 offshore developers effectively, then it may very well cost you less to go the offshore route. But if your offshore costs are rising and you need a large team at home to properly manage the more complex offshore projects and deadlines, it may cost about the same to just keep the work at home.
We have actually reshored several software projects for clients in which the cost ended up being virtually the same onshore as offshore. A major driver here is that onshore teams generally get more (and higher quality) work done in less time—you may pay a higher hourly rate, but the work can be completed in fewer overall work hours.
Anyone who has read some of our past blogs knows about our deep belief that a market-ready software application requires more than just code. It takes a well-rounded team comprised of people with expertise in User Experience (UX) design, User Interface (UI) design, Quality Assurance (QA), and application security testing to design and develop a high-quality software application that meets the needs of end users and is successful in the marketplace. Once ready for production, there is still work to be done for rollout, marketing, and continued maintenance throughout the life of the product.
Does your offshore application development team have people skilled in all of these functions? If you lack the resources to fill these gaps with in-house staff, your end product is not likely to meet your (or your users’) expectations.
You may be experiencing some miscommunication with your offshore development team due to language barriers. This is something you will have to deal with, and it is a very real offshore software development issue that you need to prepare for.
You will find that English is a second language for the majority of people assigned to your project. There is a risk that certain words and phrases may be misinterpreted. Communication issues can make it difficult for an offshore team to have a firm grasp on the larger vision and business goals for the application.
Time zone differences throw yet another wrench into the mix, as it may be challenging to schedule meetings where you can communicate directly with the offshore team performing the work. Even well-written specification documents need to be discussed face to face to ensure everyone working on the project understands their roles and responsibilities. If your offshore developers have a question they need answered and your team is sleeping, work may be stalled for hours until your team arrives at the office and can provide guidance.
There are definite cultural nuances that come into play in offshore software development. Some of these have the potential to cause problems with your project timelines and goals. For example, deadlines may be seen as more fluid, making it more likely that you won’t be able to hold to your desired timetable.
If you are working with an offshore team, we suggest asking questions about potential conflicts that may arise ahead of time. The best way to avoid any cultural issues is to ask questions up front and make sure everyone has the same expectations.
Increased security risks
Whenever you take your work offshore there can be increased security risks. You may be dealing with any or all of these in your current offshore project. Your code may pass through many more hands as teams rotate, or your vendor may not have the right attitude about security. First and foremost, it’s important to make sure the software application is put through a rigorous and comprehensive application security testing process. This should be done throughout the design and development process and will need to continue throughout the product life cycle.
If the offshore team is unable to own the application security process, you should dedicate resources on your team to make sure security remains a priority at all stages of development and beyond.
Another security issue to consider is confidentiality. If your application stores any sensitive or personal data, you may be required to comply with certain regulations such as GDPR. This places an extra burden on the offshore team, and they need to demonstrate their ability to meet such requirements before work begins. Otherwise, you put your company at risk of severe fines and reputational damage.
Lack of control
Any work you outsource—whether it be software application development, desktop support, or any other function—is harder to control when it’s not close to home. Are you getting the results you want or are deadlines being missed? it can be quite a challenge to get what you need given the physical distance between your business and the offshore team.
Our experience with clients who have tried offshore software development is that offshore firms tend to be less formal in their documentation and processes. This makes it difficult to figure out what they did and to correct issues that arise.
In the pandemic-affected world in which we now live, unpredictability is a larger concern than ever before. Some economies are simply more volatile than others, and it’s nearly impossible to predict if and when another lockdown and business shutdowns will occur.
Many companies offshore software development work to Belarus, Ukraine, India, and Brazil. There is instability in these countries right now. Belarus has one of the highest per capita COVID-19 infection rates in Eastern Europe, yet the country is not following World Health Organization (WHO) recommendations for social distancing and business closures. Ukraine is currently dealing with increased tensions with Russia. Brazil is on course to become the worst-hit country when it comes to COVID-19, with the country’s leader downplaying the virus. India and China are experiencing lethal border skirmishes between their armies. It’s an unpredictable world.
While the issues stemming from COVID-19 have just recently emerged, it has quickly become a critical element to consider with offshore projects. Any type of instability in a region is a key factor to consider in the offshore vs. reshore decision-making process.
Two paths to reshore your software development projects
Any of the above reasons may give you the impetus to reshore your software development project. In our experience, we have seen this play out in one of two ways:
Controlled reshoring of application development
You have decided that you’re just not happy with the way the overall project is turning out offshore. Perhaps the quality isn’t what you expected, or the team is too difficult to manage remotely. Whatever the reasons, you have begun to plan how to bring the work onshore again.
We have worked with clients who had the skills in-house to take over the software development work, and we provided assistance in the actual reshoring process. Reshoring itself is a process that requires experience.
Proper hand-off of work completed, documentation, and coordination with the offshore vendor can lead to unexpected challenges. Working with a team that has gone through this process before (successfully) makes the transition smoother and gets your in-house team up and running quickly.
We also have clients who were looking to reshore but didn’t have the in-house skills to complete the software project. In these cases, we not only assembled a team to oversee the reshoring process, but we also assembled and managed a dedicated team to take over the project and see it to completion.
Unfortunately, we have also had clients come to us in the eleventh hour, with projects left incomplete and in need of a total overhaul. We recently had two mobile application development projects come back to us in this manner.
The offshore process had completely derailed, and they didn’t have the luxury of a controlled, well-planned reshoring effort. In these instances, the offshore vendor may not be cooperative, adding more frustration to the situation. These scenarios demand a team that has experience with bringing software projects back onshore. A skilled team can decipher what work has been done, what needs to be corrected, and the fastest path to complete the project successfully.
If you’re already in the midst of an offshore project or are even just considering it, make sure you weigh all of the options. While we have experience in the reshoring process, we would always prefer to see you have a successful project from start to finish without the reshoring hiccup.