As you already have software deployed, you will just have to trust that your techies for the new procedure when they manually uninstall/install software.
For policy driven installs and uninstalls, you can simply add the inventory task to the policy as its last item.
As running a full software inventory each time an application is weither installed/uninstalled is a bit drastic, I would add a process either via a MST or other means that adds to a company software key within HKLM\SYSTEM whenever an application is installed, and that also removes its application registry key from that company key when it is uninstalled.
You could then target that registry keys contents with custom inventory in order to have a custom dataclass populated with a list of software that has been installed. That table would obviously have rows removed when an application is uninstalled, and by enabling resource data history, you could have historical tracking of software installs & uninstalls per machine.