How event names collapse after the third squad

Multiple browser windows and notes overlapping on a desk

Two squads can keep a tracking plan in their heads. The names still sound like speech: checkout_started, invoice_downloaded. A third squad arrives with a different product surface — a widget, a partner portal, a “lite” mode — and the plan becomes a dialect. That is the collapse. It is not a moral failure. It is what happens when language has no clerk.

The first symptom is the synonym. One team ships pay_clicked because their button copy says Pay. Another ships payment_initiated because a contractor once read a style guide. Both fire on the same human motion. Six months later a funnel is built on one name and a board pack on the other. The discrepancy is explained as “a tracking issue,” which is a way of not appointing an owner.

The second symptom is the novel. Events grow clauses: user_successfully_completed_onboarding_v2_android_only. Nobody can say it in a meeting without laughing, so they stop saying it, and the event becomes a private spell. App Analytics then appears to be a tooling problem. It is a speech problem.

At Instance Kernelhub we ask students to read their event list aloud. If a name cannot be spoken, it cannot be governed. The remedy is dull: a one-page grammar (verb, object, optional context), a weekly fifteen-minute clerkship, and the right to reject a name at pull request. The third squad will still invent something. The difference is whether invention is reviewed.

People object that grammar slows shipping. So does a week spent reconciling two funnels before a quarterly review. The house’s prejudice is for the slower week to happen at the moment of naming, when the cost is a comment in a diff, not a reconstruction from warehouse fossils.

If your company is about to stand up a third squad, write the clerk into the charter before the first ticket. After the dialect has formed, you are not doing taxonomy. You are doing archaeology. We teach both; we prefer the former.

Back to the journal