To DO Before Using Magento Extension
Start point is config.xml file, for example /app/code/local/Companyname/Extensionname/etc/config.xml file.
Then next step will be analyzing files. There will be 3 aspect of checking it.
REWRITES Check model/class/controller.
Rewrites => you should at least take a look into every defined model/class/controller rewrite within your config.xml file. however its important to understand what the class/method you are rewriting does and try to call its logic (if possible) via parent::nameMethod().
Event Observes=>This can be extremely dangerous. we usually tend to break these in two types.
event 1.: events before some entity state change/save.
event2.: events after some entity state change/save. I consider save_before events more dangerous than save_after events, same goes for load_before and load_after, as well as for predispatch and postdispatch events. For example, my five years experience has shown me that usually, although not necessarily, your event observing logic would be safer if observing customer_address_save_after instead of customer_address_save_before. This is due to the usual case where Magento logic triggering customer_address_save_after event will get executed regardless of your observer logic executing successfully or not executing due to the error in your code. When 3rd party extension implements observer for some save_before, load_before, predispatch events you should really pay special attention to it and take a look at the code within those observers and try to understand whats going on.
Cron Job=> Extension might define some crucial business logic that needs to be triggered periodically by CRON, it will never be executed because you do not have system CRON set up.
Extensions if they are from commercial providers that have licensing is the way they check for a valid license as this can impact performance. If this happens on every page load, it’s not good.
Also, extensions that add extra JS libraries such as jQuery etc.
Then some extensions I saw completely mess with the standard layout handling of Magento like the Automatic Related Products one where some layout handles are hard coded and it’s tricky to change the behavior if you need to.