When you actually need it
Only when you serve the same or similar content in multiple languages or regional variants. Don't add hreflang 'just in case'.
Self-referencing always
Every localized URL must reference itself plus every sibling language. Missing a self-reference breaks the whole cluster silently.
Sitemaps beat head tags
Manage hreflang via XML sitemaps, not in-page head tags. Cleaner, easier to audit, faster to update at scale.