1. A method comprising: receiving, by one or more processors, information indicative of a software application, wherein the information indicative of the software application includes one or more competing software applications to the software application; retrieving, by the one or more processors, one or more unstructured text data sources regarding the software application; identifying, by the one or more processors, a feature request based, at least in part, on the one or more unstructured text data sources regarding the software application, wherein the feature request indicates a function to include in the software application; determining, by the one or more processors, a frequency of the feature mentioned in the one or more unstructured text data sources regarding the software application; in response to the frequency of the feature mentioned in the one or more unstructured text data sources regarding the software application exceeding a threshold value, selecting, by the one or more processors, the function indicated in the feature request to be included in a new version of the software application; determining, by the one or more processors, one or more changes between a first version of the one of more competing software applications and a second version of the one or more competing software applications; determining, by the one or more processors, an impact of the determined one or more changes based, at least in part, on the one or more unstructured text data sources for the one or more competing software applications; and responsive to a determination that the impact of the determined one or more changes is above a threshold value, selecting, by the one or more processors, the one or more determined changes to be included in the new version of the software application.