1. A method for managing software defects, the method comprising: receiving, by a defect repository server, a plurality of software state logs each from an originating user computer system, each software state log being associated with a potential software defect of an application executing on its originating user computer system, and each software state log comprising software state information associated with its originating user computer system; storing, by the defect repository server, the received software state logs in a defect repository; and analyzing, by the defect repository server, the software state information of the stored software state logs to detect patterns in the software state information.