Friendly event names feel kind on day one and useless by launch three. "click_button" tells nobody which surface, which outcome, or which release introduced the noise.

We favour verb-object pairs tied to user outcomes — completed_signup, started_checkout, invited_teammate — with properties carrying plan, locale, and surface. The name stays stable; context moves to properties.

Before renaming production events, freeze a dictionary, map aliases, and dual-write for a short window. Teams that skip dual-write usually lose the board comparisons they still need next quarter.

Keep the dictionary where engineers already look when shipping. A schema that lives only in a slide deck will not survive the next sprint.