When Outsourcing Goes Bad

Outsourcing. (Or what used to be called delegation)

The idea sounds great: give all the things you can’t do or don’t want to do to someone else.

Sites like Elance and Rentacoder make outsourcing a task anyone can do.

Most of the time, things go well or at least reasonably well. I’ve been outsourcing all sorts of things for some time now.

But when outsourcing goes bad….

OK. A bit of background information.

I’ve used Rentacoder for articles in the past with varying degrees of success. Anything from excellent down to “we thought you wouldn’t notice it’s all rewritten from Wikipedia”. Whilst I’ve still got a few trusted writers, most of my articles are now done with a service called Get Articles Done. They’re well priced, good quality and reliable.

Graphics I use a trusted person on Rentacoder and get good results (but since Rentacoder have been bought out by Freelancer, I will be using a different freelance site in future).

This story is about getting code written.

The project:

Design a simple autocomplete for a text box for a site I’m working with.

A bit like the one on Google where you start typing and possible things you’re searching for appear in a drop down list.

A few years ago, probably close to rocket science. But nowadays there are a variety of scripts out there to at least point a coder in the right direction.

The project had a 5 page specification (complete with “this is how we want it to look” illustrations) to help get it right.

It also had a short example file of about 20k records. And a full example file with about ten times that. Not trivial but nothing a computer should balk at.

As I said, there are plenty of open source scripts to model it on.

So writing the program should be a piece of cake.

Maybe knock out a working demo in a day or two and debug it in the about the same time.

The technology has been around for several years – put the data into a database, query it using Javascript &/or PHP, deliver the results in real time.

Easy.

Or so I thought.

I’d factored in the usual – coders have more than their fair share of unexpected illnesses and deaths in their lives. The outsourcing world’s equivalent of the “my dog ate it” excuse for not having homework ready.

Programmer 1 made a half way decent attempt then went to ground with “emergencies” to sort out for other clients.

Programmer 2 started off well. He answered lots of questions helpfully, seemed to have a grip. I didn’t suss that was a conversation during a weekend. Weekdays, he’s not around anywhere near as often. Apparently the reason his code isn’t working is that there aren’t enough resources on our server, even though the demo link to his server has the same problem. Apparently we’ve got too much data.

Programmer 3  said he can do it in 3 – 4 hours. Silly me had assumed these might be either consecutive hours or even a couple of hours one day, a couple of hours the next. Not an hour here, a week’s gap to the next episode then another hour, and so on.

Programmer 4  promised his team could get it done in 24 consecutive hours. Despite coder apparently working until midnight his time the other night, there’s been no sign of properly working code.

Programmer 5  said 48 hours. Working demo arrived in that time. I extended the deadline by 24 hours to allow for testing and working with rest of data. It got close in that time but then a weekend got in the way before the final snags could be ironed out.

In between, Programmer 6 wrote a demo but neglected to mention that it required a resource-heavy component that isn’t standard issue on web servers. I don’t know if this would have worked but we’d have had to upgrade our server to find out.

Programmer 7 started work last night, about 7pm UK time. (Yes, this is still a work in progress at the time of writing!). He’s written a routine to check the sensibility – or otherwise – of our data. The data is computer generated and there’s lots of it, so that was a good idea. We’ve trapped for a few anomolies he’s found so that the latest set of data is ultra-clean (the previous data set was pretty good and certainly wouldn’t have stopped any code from working).

Stress level on this project: high!

There’ s no South Park style “here’s what I learned” moral of the story.

It will all work out OK in the end – someone, somewhere in the world will be able to write a solution (don’t message me with offers please, working simultaneously with this quantity of coders is enough!)

I’d normally only work with two coders for this kind of project. That way the project is still cheap but I stand a very high chance of getting it done close to spec and close to time.

It hasn’t put me off outsourcing.

It’s just made me a bit more cautious.

Not much more cautious – I’d checked out the previous projects and the Rentacoder ratings for all these people.

Anything much less than 10/10 meant instant rejection. Rentacoder’s scoring system is in theory on a 1 to 10 scale but in practice is either 10/10, occasionally 9/10 or a bad score when there’s been an arbitration. The comments are the things to read to find out what the real score should have been.

If this was to be their first project, sorry, not this time. If their bid reply was a cookie cutter one – meaning they’d not actually read the project details – again, rejection.

These coders all answered pre-acceptance questions sensibly and in a timely manner.

Which I guess means that when outsourcing goes bad, you just have to shrug your shoulders and keep going.