Set Expectations for Outsourcing - Page 2

with care">

In many cases, one goal of an outsourcing strategy is greater flexibility in ramping effective team size up or down.

Ironically, though, its important to evaluate a prospective outsourced development services provider at least as carefully as one might evaluate a prospective permanent hire.

By the time an outsource relationship has hit its stride, a client company will invest a lot in bringing that services provider up to speed. To do that again and again is a quick way to offset hoped-for savings with repeated startup costs.

Perhaps it would be even more accurate to think of choosing an outsourced services provider as being more like forming a professional relationship than like merely hiring a laborer.

The communication overheads of working with an outside company should be offset by the pool of expertise on the other side of that boundary. If anything, an outsourced services provider should perhaps be able to teach the client some new things about best practices in an industry.

At the same time, though, a prospective client must wonder if the services provider is promising value tomorrow that will come at the expense of the clients of yesterday.

If a services provider is promising the benefits of a portfolio of industry-specific tools and data, one must wonder who really paid for that R&D. Will competitors be next in line to be pitched a still-stronger portfolio, a year or two from now, that will have been developed at your expense?

Ownership of work products and terms of use extending beyond the term of a service relationship should be discussed and formalized at the beginning of a relationship—not at or after its end.

Another thing that needs to happen early on is an effective trial run of a services providers processes and personnel—while theres still time to discuss improvements or seek alternatives.

If one doesnt really begin the process of seeking an outsourced development contractor until a massive, critical project creates an urgent need, its going to be much harder to be a discriminating buyer.

/zimages/3/28571.gifDevelopers are redefining their abstraction demands. Click here to read more.

Once work is under way, its essential to distinguish between paying for effort and paying for results.

Just as competent in-house project management compares costs against progress based on objective milestones, its even more important for outside services providers to know that their progress—not their promises—will be the basis for intermediate payments and performance incentives.

Again, this implies a need to develop and solidify a service relationship during a time when the provider knows that you can afford to look elsewhere.

Finally, its just as critical to think about an entire development life cycle when an outside development services provider is involved as when an in-house team is doing the work.

In fact, its at least twice as critical because there are two interlocking cycles to consider. There may be future support or application enhancement that is appropriate to get from the same people who did the original work, assuming that the quality met the buyers expectations and that the time frame of the needed additional work is compatible with an outside contracting process.

At the same time, though, there may also be follow-on work thats either too sensitive or too urgent to do outside, in which case its crucial that in-house staff have all the needed intellectual property at hand.

Development managers have no one but themselves to blame if outsourced or offshored development turns out to be a proposition of getting "less for less." Its unrealistic, moreover, to hope in the long run for a continued stream of "more for less."

Good value, in the long run, comes from paying for what one gets—and a good outsourcing relationship is one in which no one is badly surprised by either whats paid or whats produced.

Technology Editor Peter Coffee can be reached at

/zimages/3/28571.gifCheck out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.