What to do When an Offshore Software Development Project Falls Apart
I’ve been developing software for almost 15 years and have been exposed to every level of offshore development debacle. My company receives at least a dozen calls every month from individuals who thought they could save big by sending their work offshore, only to find that the off shore resources they hired are unable to deliver their product.
There are a million reasons why offshore development does not work out for most people. I’ve written a number of articles about the pitfalls of off-shoring, but in this article I want to go over steps you should take if your software development project has fallen apart.
Keep it Cordial
Keeping a cool head is imperative when dealing with an offshore team that isn’t delivering. Becoming angry and frustrated will put them on the defensive, and there are a number of cultural difference that may rear their head when disagreements arise. From personal experience I can tell you that when faced with confrontation, developers on other countries will react differently. For example, developers in India will often become defensive and argumentative, while developers in China will shut down and stop communicating. Most US clients have never done business with an international entity and therefore are expecting the same level of service and response that they would receive from a US company. Unfortunately, most international software companies have impressive websites but are usually loosely run organizations. Getting upset or demanding to speak to a manager doesn’t work the same way it does in the states. You can never go wrong with calm, cool and collective.
It amazes me how often people tell me that they spent 6, 8, 12 months or more working with an off-shore development team before they finally walked away. Unless your project is a really large platform, you shouldn’t exceed an initial development period of 16 weeks, with 12 to 14 weeks being an average project. Offshore development teams will string people along, and often the client does not want to walk away for fear of losing their money. But time is money and sometimes you just have to write it off as a learning experience.
If your software team seems disorganized and they are unable to provide you a clear list of deliverables and a date for delivery then your situation will likely not improve. Proper planning is paramount to success in software, without it a team will never be able to deliver. Your team should always able to clearly articulate what will be delivered at the end of a development cycle. No matter what development methodology they are using there should be some type of phased delivery where you are able to see regular progress. If your team can’t give you dates for delivery or they continually miss delivery, it’s probably time to walk away. The problems you are experiencing with your off-shore development team are likely due to a poor organizational core.
Secure Your Code!
Issues in a software development project can come from a number of places. The most common issues are poor project management, inexperienced developers or unreal expectations. Whatever the case may be, if you sense that your offshore development project is falling apart, the first thing you need to do is secure your code.
If this is your first development project you will probably not be aware of the importance of your source code until your developer tries to use it as leverage in the project. Software developers will not want to release source code to you because possesion of it gives them leverage in the project. It is important that you have possession of your source code and all updates throughout the project. If you are building a mobile application, the developer may send you Adhoc builds of your mobile app. Be aware that an Adhoc build of an app is not useful for anything other than testing the app. Without possession of the actual source code for your application you have nothing. The same thing goes for your website, web application, etc. Having possession of your source code will put you in a much better position because you could potentially walk away from the project with the work that had been done to date. (The quality of the code may be another story, we’ll discuss that later).
There are a number of ways that you can receive your source code, depending on how tech savvy you are. The optimal way is to have access to the code repository that the developer is using and backing up from there. You can also have the developer send you the source code periodically but this is not as efficient.
There is also a certain amount of tactfulness that should be used when attempting to get possession of your source code. If you are having issues in a project and you suddenly demand your source code, you risk putting your offshore developer on the defensive and discussions could go south quickly. Also, the developer may be inclined to send you an older version of your software. Because you are most likely not a developer yourself, it would be impossible for you to actually take inventory of what is provided. When presented with these cases our software team often take on the role of software arbitrator.
In addition to your source code, you should secure any design work that has been done. This usually means any Photoshop, illustrator, 3D files, ETC. that were used to create your initial designs. Note that you do not want image files (JPG, PNG, GIF), you want the files in the format that they were created in. Your offshore developers may also be reluctant to release these files in the event of an issue, for much of the same reasons they do not want to release source code.
Earlier we stressed the importance of remaining cordial while negotiating with an off-shore software development team. Should you decide to finally walk away from the project, you still need to retain a professional relationship with your original developer. This is imperative because you may end up using some or all of your original code, which means your new developer will likely need to communicate with your previous developer. If you have told your previous developer to stick his turban where the sun doesn’t shine, you will make things more difficult for your new development team.
Can I sue an offshore developer?:
Legal recourse is not usually something that can be pursued when terms of an offshore development agreement are broken. Even if you did sign a contract with the developer, it is likely not enforceable in the US unless the company has a business entity inside the United States. In a few instances we have seen Indian based development teams with LLCs set up here in the US. It is possible to go after the LLC in the respective state, but the odds of the LLC having any actual assets are slim to none.
If you have managed to walk away from a project with your code in hand you need to find out what you actually have. To do this you are going to need to find another development team who will review your code. Some developers will absolutely not work on code that was written by another developer. This is understandable because as soon as a new software development team touches your code, they inherit all the bugs and issues that are in that code. In most cases a poorly run project is going to mean poor quality code under the hood, they usually go hand in hand.
That said, there are cases where some or all of the code is actually usable. There are also instances where a new development team can re-write the entire platform more quickly and inexpensively than trying to fix the existing code.
Ask a Professional:
Getting a third party to help you navigate your situation is usually tricky. If you knew a savvy software developer, they would have likely advised you not to work with an offshore in the first place. You also need to find a company or individual who is familiar with the technologies that you are developing in so that they can help you properly secure your code and perform accurate code inventory. Our team has worked with hundreds of individuals in this situation and we are happy to provide free consultations. If you are having issues with an offshore software development project, feel free to contact us to schedule a consultation.