In my experience, outsourcing software projects (whether onshore or offshore) has more often than not failed to meet delivery or cost expectations. I have seen this phenomenon when working with major consulting firms as well as with smaller boutique firms, whether the project teams were located in the same building or a dozen time zones apart, and I have seen it for projects of all sizes and complexities. I assert that a key contributor to this failure of expectations is due to the fact that almost all of these projects have had non-repeatable characteristics (new features, new paradigms, new teams, etc.) and we fail to account for (or sometimes do not want to accept) the factors related to the S-Curve when we pass on the responsibility of these project to a third-party.
Of course, this failure to meet expectations is not to be equated with a failure to deliver the end result (a product or successful project), since competent teams and leaders find a way to make that happen. But the costs and/or timelines often meet a significant mismatch in expectations.
So why is The S-Curve so significant, especially when dealing with outsourcing?
I believe that through experience and daily interactions, we develop an implicit grasp of the functioning of the internal teams and adjust our expectations appropriately with regards to the processes, factors affecting delivery and eventual outcome of projects. But none of this is possible with a third-party since there isn't the same amount of visibility (if any) into these factors. This forces even a greater emphasis on identifying, quantifying and including the factors into the delivery plan. This process is obviously easier if you are dealing with an experienced partner with an established team than with one that is about to bring a team together specifically for the sake of the project.
With respect to the type of factors to be taken into consideration for these projects, refer to the article by David Anderson titled "The S-Curve Explained" (http://bdn.borland.com/article/0,1410,32411,00.html) in which he points out a number of factors that contribute to The S-Curve phenomenon both at the start (Team Formation, Knowledge Sharing, Tools, Environment, etc) and end (project integration, bugs, etc) of the project.
While his focus is towards management of Agile Techniques on software projects, the concept can be generally applied. You may even add or take away from this list based upon your own experiences and team maturity. The point here is simply that these factors need to be applied to the plan and measured (however quantitatively feasible) throughout the project's timeline (and during post-mortems) to minimize the mismatch in delivery expectations. Post-mortems would facilitate in identifying key improvements for the next phases of the project, if the relationship and work with the same partner are to continue.
Sanjiva, San Francisco, Oct 30, 2005
Comments