A server located inside the company contains all the Add-Ins along with their source code.
A very small "loader" Add-In is installed on the client. It communicates with the server in order to retrieve the list of all the Add-Ins that are available in the company.
The user can then select an Add-In and start using it right away without installation and without even restarting Office. What happens here is that the "Loader" will transparently download the Add-In from the server and launch it without installation.
The Add-Ins can be loaded and unloaded on the fly.
When a user wants to modify an Add-In, he clicks on "Modify Add-In". A development environment similar to VBA (but based on .NET) appears. The source code is downloaded from the server and displayed to the user.
When the user makes changes to the source code of an Add-In, the code is sent to the server for compilation. If the compilation succeeds (no syntax errors and no broken compatibilities), the developer can see the result immediately, without having to restart Office. In most cases, the developer does not even need to reload the Add-In. This is made possible thanks to a technology that "swaps" the running assemblies while preserving compatibility.
The solution is very easy to install: