1. A method for generating one or more groups of similar users of a software application, the method comprising: generating a first set of usage data associated with a first user of the software application; generating a second set of usage data associated with a second user of the software application; transmitting the first set of usage data and the second set of usage data to a server configured to generate a similarity value between the first user and the second user based on the first set of usage data and the second set of usage data; generating a similarity table that includes the similarity value and a plurality of additional similarity values generated between each user included in a set of users of the software application and each other user included in the set of users, wherein each user included in the set of users is associated with a different set of usage data that comprises a command frequency table of one or more commands issued by the user to the software application and, for each of the one or more commands, an indication of a frequency with which the command is issued by the user; placing the first user and the second user together into a first group based executing one or more clustering algorithms that use the similarity table as an input; and communicating to the first user that the first user and the second user are both in the first group.