A method, apparatus, and computer instructions for managing software. A
solution to a problem that has occurred with a program on a client data
processing system is received by a server. This solution is created while
solving the problem that occurred on the data processing system. The
solution includes a process that may be executed on another data
processing system to solve the same problem on that data processing
system. The process is, for example, a script, a macro, or a set of
computer executable steps or instructions. A database of solutions is
selectively updated to reflect the new solution. In response to a request
for a solution by another client system to a problem, the server will
respond with the current solution that exists in the database.