A software recommendation system that uses Reinforcement Learning to recommend the most suitable upgradable software versions to a customer. The software recommendation system takes into consideration the user\u27s feedback and applies that learning to unseen cases, resulting in a better customer experience