Patent ID: 8250563

Claim:
A method for managing software, the method comprising the steps of: identifying, by a client computer, a problem in a program within the client computer using a software agent located within the client computer; recording, by the client computer-using the software agent located within the client computer, diagnostic steps into a script as the diagnostic steps are taken by a user to diagnose the problem within the client computer, wherein the user does not take any action to have the diagnostic steps recorded; recording, by the client computer using the software agent located within the client computer, correction steps into the script as the correction steps are taken by the user to correct the problem within the client computer, wherein the user does not take any action to have the correction steps recorded; responsive to the correction steps correcting the problem within the client computer, sending, by the client computer, a solution that includes the correction steps and a problem identifier associated with the problem automatically to a server computer via a network; responsive to the server computer receiving the solution that includes the correction steps and the problem identifier associated with the problem from the client computer via the network, searching, by the server computer, a rules database in the server computer for a stored solution that includes the problem identifier associated with the problem; responsive to locating the stored solution that includes the problem identifier associated with the problem in the rules database in the server computer, determining, by the server computer, whether the stored solution includes stored correction steps that are the same as the correction steps that corrected the problem within the client computer; responsive to determining that the stored correction steps associated with the stored solution that includes the problem identifier associated with the problem are not the same as the correction steps that corrected the problem within the client computer, identifying, by the server computer, differences between the stored correction steps associated with the stored solution that includes the problem identifier associated with the problem and the correction steps that corrected the problem within the client computer; and updating, by the server computer, the stored solution to include the identified differences between the stored correction steps associated with the stored solution and the correction steps that corrected the problem within the client computer to form a second stored solution.