Mike Jolley is the lead developer of WooCommerce, amongst other awesome plugins. He’s very smart, and has a ton of experience with mature WordPress plugins. His blog is kicking butt this month, as he’s taking part in WooThemes Blogging for Benjamin challenge, so you should read more than just this post. But this particular post does a great job describing various things developers should think about when hooking into WordPress that fire when plugins are installed, activated, deactivated, and uninstalled.