A computer implemented method for resolving an information technology incident, comprising: loading, from a workflow repository to a computing device, a repair workflow defined to repair the IT incident, the workflow having a plurality of steps, the steps being invocations of operations, and transitions between the steps, each of the operations having one or more inputs, processing logic for the input(s) and one or more outputs, each result of the operations having a transition attached, and each transition having a source step and a destination step; creating a run context on the computing device, and populating the run context with configuration data; binding one or more data values to the one or more inputs of one of the operations within the run context; processing the bound data values of the one or more inputs of the operation within the run context; executing the operation of a current step; extracting the one or more outputs of the operation within the run context; and selecting a transition to transition to another step within the run context, based at least in part on the extracted one or more outputs; characterized by storing history information of the current step in a repair history and reporting module, the history information of the current step including a result for the current step; the repair history and reporting module including the results of each step and providing a report and history interface allowing the user to filter repair workflows by using criteria including success in resolving the IT incident, to display information regarding the repair workflows including the percentage that resolved the IT incident and the mean time to repair, and allowing the user to select a particular repair workflow. loading, from a workflow repository to a computing device, a repair workflow defined to repair the IT incident, the workflow having a plurality of steps, the steps being invocations of operations, and transitions between the steps, each of the operations having one or more inputs, processing logic for the input(s) and one or more outputs, each result of the operations having a transition attached, and each transition having a source step and a destination step; creating a run context on the computing device, and populating the run context with configuration data; binding one or more data values to the one or more inputs of one of the operations within the run context; processing the bound data values of the one or more inputs of the operation within the run context; executing the operation of a current step; extracting the one or more outputs of the operation within the run context; and selecting a transition to transition to another step within the run context, based at least in part on the extracted one or more outputs; characterized by storing history information of the current step in a repair history and reporting module, the history information of the current step including a result for the current step; the repair history and reporting module including the results of each step and providing a report and history interface allowing the user to filter repair workflows by using criteria including success in resolving the IT incident, to display information regarding the repair workflows including the percentage that resolved the IT incident and the mean time to repair, and allowing the user to select a particular repair workflow.