1. A method of self-managing an application program in a computing environment, comprising: spawning a primary application for execution in the computing environment; the primary application monitoring status of the primary application and the computing environment resources while executing; and upon detecting a first status threshold, the primary application spawning a secondary application in the computing environment, wherein the secondary application comprises a lower functionality version of the primary application, and the primary application terminating.