Thursday, March 22, 2007
Why Outsourcing is doomed to mediocrity...
Awhile back, I shared a story about a startup idea being executed by my significant other. Since the idea required more time than I could afford to throw at it, she went on a quest to find help. Of course she was cognizant of all of the failures that large enterprises have experienced, she felt she had a better answer.
Essentially, she was interested in moving the needle away from simply paying for effort towards preferring paying for result. In her search, she couldn't identify a single Indian based outsourcing firm who would do work fixed-bid and therefore one of decision criteria was to send work to China.
Having a husband that is an agilist and otherwise a pain in the bleep, I asked for her to consider introducing into the agreement notions such as requiring daily builds and unit tests but this advice was ignored and they did the massive big design upfront. The one thing that I did win on which resulted in her not wasting monies was to not only specify functionality but in painful detail also specify system qualities. Having criteria in terms of number of concurrent transactions, response times and clean error logs was a savior. She also took my advice in terms of specifying qualities around the source code itself, not only in terms of style and other beautification things but measuring notions such as cohesion and coupling and put a target score into the equation.
The other night, I got to see the resulting effort and from a functionality perspective, I was definetely impressed. However, my own opinion went down from there. I fired up JMeter and WebArt to throw some load at it and it failed horribly. I also looked at the source code which was well formatted but otherwise the work of folks who learn programming in universities or those Head First books but didn't really get the concept of thinking in Java.
She is now having the painful conversation that any client of an outsourcing firm hates to have. In one sense, outsourcing firms have the advantage in that they can deliver suboptimal mediocre work because the client may be faced with pressures in terms of deadlines. They also know it is a lot of work to find another replacement firm that may in the end not be any better.
The one tactic that I haven't ran across is the outsourcing firm themselves walking away from the table. With small startups, there is less loyalty as the work is pretty much a one-off and therefore they have less skin in the game. My perspective is that she should have avoided outsourcing in the first place and been more patriotic but of course if she did, that would have meant that she would have outsourced the work to me and I would have a bigger headache than I do already.
Anyway, I suspect that after I retire from the blogosphere, I will end up spending the next nine months writing from scratch her business idea...