I have programmed an application that I deploy to our users using SCCM. I do updates on the application currently about 5 times a month. To release the new version I create a copy of the old application and then just change the name and the ".msi" (including product guid) that it is referencing. In the new application I make sure that it supercedes the old application and does a complete uninstall. Then I retire the old application and delete the deployments. I would like to totally delete the old applications as well because they start to make the application list very long. However, I am afraid that if I delete the old applications then they will not be uninstalled from users machines when they get the new application.
What is the best practice for this supercedence/retire/delete process of upgrading applications?