1. A method for reducing complexity of at least one user task, comprising the steps of: capturing user interaction data corresponding to a user interacting with one or more graphical user interfaces of a software program while the user performs at least one software task, wherein the at least one software task comprises a plurality of steps performed by the user; analyzing the captured user interaction data to generate a set of data representative of the user interaction with the software program when performing the at least one software task; processing the set of data to determine an overall complexity metric for the at least one software task, wherein the overall complexity metric for the at least one software task is determined based on a plurality of complexity metrics associated with respective ones of the plurality of steps of the at least one software task; processing the plurality of complexity metrics to identify one or more usability issues having a measurable impact on the overall complexity metric for the at least one software task, wherein the one or more usability issues comprise one or more issues associated with the user performing the at least one software task; determining a ranking of the one or more usability issues based on the impact of the one or more usability issues on the overall complexity metric, wherein at least one of the one or more usability issues is determined based at least in part on the ranking; determining one or more recommendations for addressing at least one of the one or more usability issues; displaying a representation of at least one of the one or more usability issues in a ranked order according to the determined ranking of the one or more usability issues, together with a representation of at least one of the one or more recommendations which address the usability issues that are displayed in ranked order; and modifying one or more of the plurality of steps of the at least one software task based on at least one of the one or more identified usability issues and associated determined recommendations to improve usability of the software program, wherein the capturing, analyzing, processing, determining, displaying, and modifying steps are executed on a computing system comprising a processor and a memory, wherein one or more software modules for implementing the capturing, analyzing, processing, determining and displaying steps are loaded from the memory and executed by the processor.