Tuesday, July 8, 2008

Cost optimization objective for service management/delivery in an outsourcing engagement - A challenge

As in any optimization problem the goal or objective of a outsourcing function is to minimize the cost of providing the service to the lines of business. Evolving an objective function is riddled with multiple factors making it increasingly difficult for one to establish an objective function. Typical factors of an objective function are:

1. Onshore-Offshore percentage

2. Choice of delivery location to perform the services in an outsourced environment

3. Composition of workforce to perform service delivery (managers, Analysts, Software engineers, etc.) and their cost

4. The number of shifts designed to perform service delivery

5. And several more (not sure what I'm missing here)

Modelling based on the above factors results in devising an objective function next to impossible. In this context I was considering two approaches for the same:

Approach 1: Why not we consider all the above factors and design one single objective function. For example:

Min ååå XdCaRb

d a b

where X is each location where service delivery is performed and d = {India, US, China…..}

C is the cost per shift per resource pyramid and a ={(Shift A,Cost of Executives in location d), (Shift A, Cost of Managers in location d), ,…..(Shift A, Cost of Software Engineers in location d), (Shift B, Cost of Executives in location d)…. (Shift B, Cost of Software Engineers in location d), (Shift C,Cost of Executives in location d)…. (Shift C, Cost of Software Engineers in location d)}

R is the number of resources per resource pyramid in each shift and b = {(Shift A, # of Executives in location d), (Shift A, # of Managers in location d), ,…..(Shift A, # of Software Engineers in location d), (Shift B, # of Executives in location d)…. (Shift B, # of Software Engineers in location d), (Shift C,# of Executives in location d)…. (Shift C, # of Software Engineers in location d)}

Approach 2: We peel the optimizing functions for each of the key parameters and individually optimize them.

I'm yet to figure out which is the best approach to figuring out a optimizing function. If I choose the former then the function becomes too complex and modelling the constraints equally so. Will such a function be solvable.

If I adopt the Approach 2 then I'm not looking at it from a systemic perspective and hence may inherently end up building a suboptimal objective function while the individual parameters themselves are optimized.

Any thoughts on what could be the right approach?

No comments:

Post a Comment