9. At a computer system, the computer system including a processor and system memory, a method for providing technical assistance services for a developing software product, the developing software product being developed by a plurality of different product development groups, one or more other software developers developing other software products that are to depend on at least a portion of the developing software product, the technical assistance service allocated to a software developer to assist the software developer in developing a dependent software product, the method comprising: an act of a service allocation module receiving a service request for technical assistance services from a software developer that is developing another software product that is depend on at least a portion of the functionality of the developing software product, the service allocation module controlling the allocation of service requests to a plurality of different service providers, the developing software product having a functionality defined by the plurality of different development groups, changes to the functionality of the developing software product being determined by at least one group of the plurality of different development groups, such that changes to the functionality of the developing software product is determined independent of the one or more other software developers developing other software products that are to depend on at least a portion of the developing software product and wherein changes to the functionality of the developing software product cause changes in the technical assistance; an act of accessing request allocation criteria for the software developer, at least one request allocation criterion included in the service request, at least one request allocation criterion maintained at the service allocation module; an act of the processor identifying an optimum service provider, from among the plurality of service providers, for servicing the service request by matching the accessed request allocation criteria and service provider characteristics to provide a match in accordance with a routing algorithm; an act of sending the service request to the optimum service provider; an act of receiving an answer to the to the service request from the identified service provider, the answer is based at least in part on the service provider's expertise with respect to the at least one portion of the developing software product's functionality that the other software product is to depend on; and an act of at least notifying the software developer of the existence of the received answer.
9. At a computer system, the computer system including a processor and system memory, a method for providing technical assistance services for a developing software product, the developing software product being developed by a plurality of different product development groups, one or more other software developers developing other software products that are to depend on at least a portion of the developing software product, the technical assistance service allocated to a software developer to assist the software developer in developing a dependent software product, the method comprising: an act of a service allocation module receiving a service request for technical assistance services from a software developer that is developing another software product that is depend on at least a portion of the functionality of the developing software product, the service allocation module controlling the allocation of service requests to a plurality of different service providers, the developing software product having a functionality defined by the plurality of different development groups, changes to the functionality of the developing software product being determined by at least one group of the plurality of different development groups, such that changes to the functionality of the developing software product is determined independent of the one or more other software developers developing other software products that are to depend on at least a portion of the developing software product and wherein changes to the functionality of the developing software product cause changes in the technical assistance; an act of accessing request allocation criteria for the software developer, at least one request allocation criterion included in the service request, at least one request allocation criterion maintained at the service allocation module; an act of the processor identifying an optimum service provider, from among the plurality of service providers, for servicing the service request by matching the accessed request allocation criteria and service provider characteristics to provide a match in accordance with a routing algorithm; an act of sending the service request to the optimum service provider; an act of receiving an answer to the to the service request from the identified service provider, the answer is based at least in part on the service provider's expertise with respect to the at least one portion of the developing software product's functionality that the other software product is to depend on; and an act of at least notifying the software developer of the existence of the received answer. 17. The method as recited in claim 9 , further comprising: an act of storing the answer in a knowledge base.