1. A computer-implemented method for creating a data warehousing scheme having optimally selected components, the computer-implemented method comprising: inputting into an optimization engine a mathematical model of a goal for the data warehousing scheme, wherein the data warehousing scheme is a system of data processing systems, networking systems, software, data storage types, and data types used to maintain data and operations of an organization; inputting into the optimization engine at least one constraint on the data warehousing scheme and an affinity matrix, wherein the affinity matrix indicates relationships between groups of data sources and groups of output objects, and relationships between groups of available logical processes and groups of output objects, wherein each relationship is represented by a cell containing a binary value in which a zero indicates that a data source is not needed or is incomplete for a particular output object data structure and a one indicates that the data source exists and is used for the particular output object data structure and wherein upon completion of a major information technology project associated with the affinity matrix, every cell of the affinity matrix has a one; performing a mathematical optimization algorithm using the optimization engine, the at least one constraint, and the affinity matrix, wherein an output of the optimization engine is an optimized data warehousing scheme having the optimally selected components in a specified order; and storing the optimized data warehousing scheme.