1. A method of deploying software into a computing environment, the method performed by instructions executed on a processor coupled to a computer readable memory containing the instructions, the method comprising: providing a model of the computing environment into which the software is to be deployed; customizing a plan that includes matching elements of the software to characteristics of the computing environment to deploy the software into the computing environment; and deploying the software into the computing environment according to the customized plan wherein the software is automatically deployed into the computing environment without a software developer collecting information about the computing environment.