I’ve been thinking about offshoring for some time, but haven’t had many interactions with someone who really used an offshore developer. Recently, I ran into a client who did try to develop some software using an offshore developer, and was able to ask him some questions about the experience. (Disclaimer: this client owns the dating site I blogged about recently). Plus, outsourcing/freelancing is on my mind, due to the pick.im launch.
Dan: What did you ask your offshore developer to do? Did they succeed in that?
Michael: We asked that a dating and friendship site be created for adults with mental illness and that it mimic sites similar to Match.com. We were assured that this would be no problem, but that was far from how things transpired. We did end up with a finished product, but I wouldn’t say it was a success. Nightmare would define things more accurately.
D: How exactly was the finished product deficient? Did it not perform well? Did it not meet your expectations? Did it not do what the developer said it would do? Were there unfixed bugs? Did it look bad?
M: There were certain features that never worked, and the developer kept maintaining that everything worked just fine. No, it did not meet the expectation that we would have a fully operational site with the features we had requested along with our bid that was accepted. He also promised support for his work, but when we started experiencing bugs he would only fix for additional fees. We didn’t know anybody else and really feel trapped. … The overall aesthetics were fine, but the internal workings had issues.
D: What were your motivations for using them? What was the cost savings?
M: Money was the only motivation. I have to say that the cost savings were significant up front. However, we were constantly investing money to fix issues that plagued the site from day one. So, we probably ended up spending more, because we eventually scrapped the website and started over.
D: Did the offshore developer build the ASP website we recently scrapped (for skadate), or was there a previous iteration?
M: No, that was the site that the offshore developer originally built. However, we found a local guy who made some modifications and was able to fix many of the issues.
D: How did you manage them? How were the requirements documented?
M: This was very loose and managed through email. I have to say, we were very ignorant and really should have sought out the advice of an expert before proceeding with the project. We knew what we wanted the site to do, but we really had no clue what we were doing…shame on us. What can I say though, using an offshore freelancer sounded pretty good for a social worker trying to make things happen on a shoestring budget.
D: So, did you have a master checklist of requirements, or did you just kind of email the developer feature by feature?
M: There was a list of basic features that was provided when we posted the job, but I wouldn’t call it a master list. That would make it sound like we were prepared! We didn’t even know what language the site should be written in. We did not know that asp was kind of a dinosaur language…
D: How did you find them?
D: How were they lacking, and/or not lacking?
M: Let me try to recap a bit. Things started out nicely. There was a lot of email communication and even some discussion over skype (although the language barrier made this difficult, so we primarily stuck with email). The great communication didn’t last though. The email responses slowed to a trickle and then all together stopped.
Fortunately, the payment funds had been deposited into an escrow account, and we refused earlier requests to release part of the funds until the work had been completed. This was a recommendation by the freelance site, and were we glad we at least had this leverage. When we finally resumed communication with the developer he threatened to stop work on the site until we released the funds. We were so exhausted that we called his bluff, and told him to go ahead and keep the site. To make a long story short, he completed the project, and we went our separate ways. Oh, and the project took twice as long as he had agreed.
Retelling this is making my blood pressure rise, so I think I’ll leave it there…
D: What would you do differently next time to increase your chances of success?
M: I would not go offshore, and to be honest, I probably wouldn’t choose someone who I couldn’t drive over to their house. I’d also make sure I sucked it up and paid for someone with development knowledge who could help manage the project.
D: Do you think that your project failed primarily because you went offshore, or primarily because you were a relative novice at managing a technical project, or some combination of the two?
M: I’m sure a bit of both, but it definitely would have helped if we would have had someone with development expertise that could have managed the project for us.
Wow. What a nightmare! (For a contrasting experience, read this excellent article about using RentACoder.)
So, as I alluded to in my last couple of questions, I think that this project would have been hard for any developer, anywhere. Obstacles to overcome include:
- shoestring budget
- lack of technical knowledge
- missing/unknown requirements
- lack of project management. It sounds like the client wasn’t able to do this, and the developer couldn’t or didn’t.
However, I think the issues above were exacerbated by offshoring because of
- language and timezone barriers
- missing trust building opportunities (face to face meetings, local get togethers)
- no real reputation risk for the developer if his work was not up to snuff (sure, his rating on a site might go down, but that’s different than running into someone you screwed at a networking event)
Anyway, a fascinating look at how offshore development can go awry. Try to think about the total costs, rather than just the hourly wage.