Is The Traditional Engagement Model for Software Outsourcing Broken?

I’m currently advising a new software outsourcing company regarding how they can differentiate themselves from the “pack.” One of the challenges they face is that their service is starting to look like a commodity.  All of the outsourcing companies say exactly the same things regarding low cost, high quality, excellent communication, wonderful project management, outstanding global communication, full client engagement, world-class technical skills, leading edge processes, western trained management… blah … blah … blah.  As any buyer will attest, we’re all making essentially the same claims.  I think that, secretly, there is one original slide deck for outsourcing companies, and we all just change the logos & graphics and re-use the same script.

As I was thinking about this company’s challenge, I had lunch with a colleague and we started discussing demands from his clients that outsourcing teams work overtime without charging for the extra effort.  As we talked about how to balance the client’s requirements against the HR challenges for the vendor, it really struck me that we are asking the wrong question.  Instead of asking, “How can we get clients to pay for overtime?”, we need to be asking, “How can we quantify the value that we’re providing to the client?“  We need to stop focusing on dollars per hour multiplied by hours billed.  We should be focusing on, and charging for, something that is actually both measurable and meaningful to the client.

I suspect that the problem stems from the historical notion that outsourced resources are just like the client’s own employees, who can be paid based on time worked.  They’re not, but we persist in trying to charge like they were.  Unfortunately, this way of thinking is a little bit lazy on both sides of the table.  Vendors don’t want to think about innovative models for providing services, and clients are comfortable thinking in terms of cost per unit of time.  Whenever we discuss project prices, you can see them doing the algebra in their heads - “My staff costs $XX/hour, and it will take us YY hours.  This idiot vendor will do the work for substantially less than $XX/hour, great!“  Unfortunately, this thought process doesn’t include considerations for productivity per unit of time, nor does it account for time billed versus time actually worked (Who is paying for time spent training?  Who pays the salary when a member of your outsourced team is sick?  Are members of your offshore outsourced team actually toiling away all day on your project, or are they taking breaks to browse the Internet?  How do you know?).  Fundamentally, the billable hour model is fatally flawed from both the vendor, and the client, perspective.  We’re just too lazy to come up with something better.

Within this context, we started thinking about ways to change the model.  I attempted to identify measurable units of work that could be the basis for payment (test cases executed, functionality implemented, defects discovered, bugs fixed…).  My colleague, who is a very experienced delivery manager (he’s even PMP certified!), raised all of the expected objections to each of these as either being difficult to quantify (breadth & complexity of each test case is wildly variable,…), or impossible to unambiguously assign accountability (Is the low defect discovery rate due to poor testing, or great code?…).  When we couldn’t agree on objective metrics, my colleague suggested a model that couples time based payments with a success bonus.  While that approach does bring some measure of the delivered value (the “success”) into the discussion, I still find it unsatisfying.

I’m kind of obsessed with this topic, now, and I’ll post more when I form better opinions on how to address it.  Suggestions are most welcome.

Technorati Tags:  ,