1. A method executed by a processor for software distribution that does not overwhelm support infrastructure, said method comprising: selecting an eligible population of application instances to whom a software update is made available, from a target population of application instances; gathering a use information from said selected application instance wherein said use information is associated with running software associated with said software update on said selected application instance and gathering an error information from said selected application instance wherein said error information is associated with running said software associated said software update on said selected application instance using a remote diagnostics module configured to monitor the use and stability of said application instance; providing said use information and said error information to a distribution engine; calculating a stability of said software associated with said software update according to said use information and said error information, wherein said calculation is indicative of a confidence said software update is stable; adjusting the size of said eligible population according to said stability calculation associated with said software update; and distributing said software update to said adjusted eligible population until said adjusted eligible population includes the total of said target population.