There is a use case where an external tool is polling a device. That device also needs to be polled in DataMiner, but then we are "double-polling" it, which should be avoided. To avoid this, we could enable the SNMP agent on the DataMiner element that is polling that device. Then the external tool could poll the DataMiner element assuming the external tool communicates using SNMP. However, if that's not the case, are there any other possible solutions? Next to that, are there use cases in practice where double polling happens (e.g. if no other workaround is possible)?
Double polling happens in real life. Often DataMiner needs to poll products where older legacy software tools are also still polling it. But you are right to raise this point, as it does require some caution. And this really needs to be looked at case by case, as it largely depends on the type of API / protocol / interface, and on the quality of the implementation on the product-side of it (e.g. I have seen products with SNMP interfaces that easily can deal with this, and others that immediately run into trouble if you do that).
Double polling can be considered, if it is an absolute must, but should be avoided if possible. The other aspect of it is also the control part of the integration, it is definitely recommended to avoid products being controlled by two systems, as this could result in some trouble as well.
The alternative is indeed to have the third party solution use any of the DataMiner north bound interfaces to collect the data that it needs (such as SNMP, but there are various other north bound interfaces). One of the advantages of that is that the third party system does not have to deal with the complexity or quirks of the underlying product, i.e. the interfaces from DataMiner are always standard (e.g. SNMP) irrespective of the underlying API (which could even be non-SNMP).