1. A computer implemented method for generating development infrastructure, comprising: decomposing a development process into one or more functional requirements, the functional requirements corresponding to one or more functional capabilities; mapping each functional requirement of the decomposed development process to the one or more corresponding functional capabilities; determining a first value for a first set of services based on a quantity of functional capabilities satisfying each functional requirement relative to a quantity of functional capabilities not satisfying any functional requirement; determining a second value for a second set of services based on a quantity of functional capabilities satisfying each functional requirement relative to a quantity of functional capabilities not satisfying any functional requirement; ranking the first value and the second value according to which set of services minimizes a total quantity of functional capabilities not associated with any functional requirement while still satisfying each functional requirement; and selecting the set of services that minimizes the total quantity of functional capabilities not associated with any functional requirement while still satisfying each functional requirement.