
photo credit: Smallman2010
One of our recent clients decided to use off-shore development for building their software platform. They signed up for oDesk and it seemingly couldn’t have been easier. They posted their project and received lots of interest. They found a development company in the Ukraine that seemed like a good choice. They liked their portfolio and the hourly rate was 25% of what it would cost in the U.S. The firm practiced SCRUM which is a type of software development that doesn’t rely on specifications but instead relies on many rounds of iteration. The development phase seemed to have progressed well and on-time and the clients couldn’t be happier. The developers said that they thought that the application was just 1 week away from being ready for go-live. The clients were very excited! They could already see themselves becoming famous and rich entrepreneurs overnight.
Then, the clients began to do real testing and the leaks started to appear in the software. For the next 11 weeks, the developers continued to fix defects and inadvertently introduced new ones. The test server would be down for days because there were configuration or software issues and the developers couldn’t or wouldn’t fix them in a timely manner. They would either be sleeping, not answering their emails, taking the day off, or making excuses that the issue was on the server which was NOT their responsibility. With the project now way over budget in both time and money, the clients decided to bring me on to fix one of the bugs in the core application. What I found was very shocking and surprising!
Over the next several weeks, I uncovered issue after issue where the offshore developers did lazy and amateurish work. First, the developers all used the same username for code source control which meant that it was impossible to trace down who worked on what. There was a lack of logging and error handling making it impossible to diagnose issues on the server. The code was not architected well which made it expensive to maintain and full of copy and paste. Over time, developers were rolled on and off the project causing the quality of the code to continue to drop. Rather than identify and fix the root cause, the developers were lazy and implemented hacks.
I worked with the client and the developers to tighten up the development process by performing code reviews, creating a code management process, helping diagnose issues, adding logging, and upgrading certain pieces of the codebase that were particularly poor. I diagnosed and resolved issues on the test server and prepared the site to go live. The clients were thrilled to see progress and were very upset that they had been deluded into thinking that they good getting a great deal and a robust application.
I think that the lesson is that the software, in this case oDesk, to manage the programmers is NOT enough. Experience and skill is required to make sure that the software is well-written and robust. You need to have a real architect on the project to ensure that you don’t get poorly written code back.
The clients also identified many other challenges due to the language barrier, the timezone difference (the Ukranians were 10 hours ahead), and the lack of availability as the developers were not readily available via cell phone. Now, the clients wish that they could just be rid of the development firm but is being held hostage because the developers are dragging their feet with the documentation. This story is not unique but just a prime example of what can happen with off-shoring and outsourcing development if you aren’t a skilled developer or architect yourself.
If you are even thinking about using Elance, Rent-a-Coder, Freelancer.com or any other online freelancing site, get ready for some Brain Damage! These sites are terrible for both the clients and the freelancers and here are just some reasons why:
For Clients:
For Freelancers: