KognitaKognita.

Blog

How Product Owners Can Track Feature Adoption Without Pinging Engineering

10 min read

The feature shipped two months ago. The product owner wants to know if customers are actually using it. The answer is in Amplitude — behind a login, inside a dashboard the data team built with event names that were decided in a tracking spec meeting the PO was not in. The dashboard exists. The data exists. But the PO cannot read it without either getting trained on Amplitude's filter logic or knowing that "checkout_v2_initiated" is the event that corresponds to the thing they shipped.

So they ping an engineer. Or they file a ticket for a Looker dashboard. Or they wait for the quarterly business review where someone will have prepped the numbers. None of these are self-serve. All of them add days or weeks to a question that should take minutes. And the question — are customers using this? — is one of the most basic things a product owner is supposed to be able to answer.

The problem is not analytics access. The problem is vocabulary. The gap between "the new checkout redesign" and "checkout_flow_initiated where flow_version equals v2" is the gap between the product owner's language and the system's language. Bridging it currently requires a person who knows both languages. That person is almost always an engineer or a data analyst — both of whom have other things to do.

What self-serve adoption tracking actually requires

Getting a usage answer without engineering help involves several steps that most product owners cannot complete alone. The analytics platform is only part of it. Before you can filter a dashboard correctly, you need to know which events correspond to the feature, which properties distinguish the new version from the old one, and what "using the feature" actually means in event terms — a page view, a completed action, a specific button click that only exists in the new flow.

What stands between a product owner and a defensible usage answer
What stands between a product owner and a usage answer:

  Question: "Are customers actually using the new checkout redesign?"

  Step 1: Log into Amplitude (or request access — you might not have it)
  Step 2: Find the right dashboard (built by the data team, named something
          that made sense at the time, not findable by feature name)
  Step 3: Identify the correct event name
          -> Was it tracked as "checkout_started"? "new_checkout_opened"?
             "checkout_v2_initiated"? You were not in the tracking spec meeting.
  Step 4: Filter by the right date range, user segment, and environment
          -> Staging events pollute production data if the filter is wrong
  Step 5: Interpret the number
          -> What counts as "using" — viewing the page? Completing a purchase?
             Clicking a specific button that only exists in the new flow?
  Step 6: Ask the data team to confirm your interpretation is correct

  Estimated time to get a defensible answer without engineering help: 3-5 days.
  Estimated time if you just ping the engineer: varies, and now you owe them one.

Each step is individually manageable for someone who knows the system. Taken together for someone who does not, they constitute a multi-day project with a real risk of producing the wrong number if any one step is done incorrectly. The data team has the expertise to get through them quickly. The engineer who built the feature has the expertise. The product owner — who is the person most accountable for whether the feature succeeded — often does not.

Why the vocabulary gap is the real problem

Product owners think in features, flows, and user actions. Analytics systems think in events, properties, and session identifiers. The mapping between those two worlds is not documented anywhere in a form that is useful to a non-technical person. It lives in the heads of whoever wrote the tracking spec, in comments inside the analytics configuration, or in the implementation code itself.

The mismatch between how POs ask and what the system contains
The vocabulary gap between PO and analytics:

  PO asks:   "Is the new checkout being used?"
  System has: event: "checkout_flow_initiated", property: "flow_version: v2"
              event: "payment_method_selected", property: "source: redesign"
              event: "order_confirmed", property: "checkout_experience: new_ui"

  Without knowing which events map to which features:
  -> PO searches for "new checkout" and finds nothing
  -> PO builds a dashboard on the wrong event and gets wrong numbers
  -> PO asks the data team to translate, adds a 2-day delay to every question
  -> PO files a ticket to get a Looker dashboard built for this feature alone

  The data exists. The translation layer does not.

This is not a solvable problem by improving analytics tool UX. The vocabulary gap is not Amplitude's fault or Mixpanel's fault. It is structural: the feature was named one thing in the product spec and instrumented as something different in the codebase, because the engineering team names things in their own conventions. The broader problem of product owners lacking system vocabulary shows up constantly in exactly this form — the same thing, named differently, and no bridge between the two namespaces.

The result is that adoption questions get escalated not because the data is inaccessible but because the PO does not know what to look for. They cannot ask the analytics system the right question because they do not know the right question to ask. An engineer can look at the codebase, identify the instrumented events, and tell the PO exactly which filters to set. That translation is what currently requires a human in the loop.

What system grounding changes

The fix is not better analytics training for product owners. It is giving product owners the system vocabulary they need before they go to the analytics tool — so the question they bring to Amplitude or to the data team is specific rather than general, and the answer comes back in a meeting rather than a ticket.

Kognita indexes the codebase and makes it queryable in plain language. A product owner who asks "what does the new checkout flow touch in the system, and what are the main steps a user goes through?" gets back a description of which services handle each step, which UI components are new to this version, and what the feature flag state is. That description contains the vocabulary — the service names, the component names, the feature flag names — that maps directly to what the analytics system tracks.

What Kognita surfaces to ground a product owner before going to analytics
What Kognita gives a PO before going to analytics:

  PO asks Kognita: "What does the new checkout flow actually touch
  in the system, and what are the main steps a user goes through?"

  Kognita surfaces:
  -> The checkout redesign is handled by checkout-service and
     payment-orchestration-service
  -> Key user-facing steps:
       1. Cart review (cart-service, CartSummaryComponent)
       2. Address confirmation (user-profile-service)
       3. Payment method selection (payment-orchestration-service,
          PaymentMethodSelector — new in this version)
       4. Order confirmation (order-service, confirmation email via
          notification-service)
  -> Feature flag: CHECKOUT_REDESIGN_V2 (currently 100% rollout)
  -> The new PaymentMethodSelector is the primary UI surface added
     in this release — it did not exist in the old checkout

  PO now knows to ask the data team about events on PaymentMethodSelector.
  The question they bring is specific, not general. The answer comes back
  in a meeting, not a ticket.

Now the product owner knows to ask the data team about events tied to PaymentMethodSelector specifically, because Kognita identified that component as the primary new surface in the redesign. The question they bring to analytics is targeted. The data team answers it in a meeting rather than spending a day building a one-off dashboard. The PO gets their adoption number without a ticket, without training, and without burning an engineer's focus time.

Connecting to post-launch Jira signal

Adoption is only part of the story. A feature that is being used at high volume but generating a backlog of bug reports is not successfully adopted — it is a liability. Getting the full picture without escalating to engineering means connecting usage volume to the quality signal in Jira: what have users been filing against this feature since launch?

Kognita's Jira MCP integration makes that connection available to product owners without a data pull or a support team report. By asking what tickets have been filed against a named feature since its launch date, the PO gets a view of the post-launch signal that normally requires aggregating information from Slack, Jira filters, and support tooling by hand.

Post-launch Jira signal surfaced through Kognita
With Kognita + Jira, a PO can ask about post-launch signal too:

  PO asks: "What user feedback has been filed against the checkout
  redesign since it launched six weeks ago?"

  Kognita + Jira MCP returns:
  -> 4 bug reports referencing "checkout" filed since launch date
       PROJ-1841: Payment method not saving on mobile (open, unassigned)
       PROJ-1867: Back button drops cart contents (open, in backlog)
       PROJ-1902: Address autocomplete not triggering (closed, fixed in 3.4.1)
       PROJ-1918: Promo code field missing on new checkout (open, in review)
  -> 2 feature requests referencing checkout since launch
       PROJ-1855: Guest checkout option
       PROJ-1890: Save multiple shipping addresses

  This is the user signal the PO needs to assess adoption quality —
  not just whether the feature is being used, but how it is landing.

This matters because "feature adoption" is rarely just a number. A feature with 40% usage and four open bugs affecting mobile users is in a very different state than a feature with 40% usage and a clean ticket backlog. Product owners need both signals to give leadership an accurate picture. Currently, assembling that picture requires going to engineering for the system view, to support for the complaint volume, and to the data team for the usage numbers. Kognita + Jira gives the PO a starting point that does not require three separate escalations.

What this does not replace

Kognita is not an analytics tool. It does not replace Amplitude, Mixpanel, or any product analytics platform. It does not tell you what percentage of users are converting through the new checkout or how session length has changed since the redesign launched. That data lives in your analytics platform and that is where it should live.

What Kognita replaces is the translation layer — the engineer-as-intermediary who has to be pulled in every time a product owner needs to connect their plain-language question to the system's technical vocabulary. It gives POs the system grounding to ask better questions, of both the analytics platform and the data team. The questions become specific. The answers become useful. The engineer who used to field the "what should I filter for?" questions can stop being a translation service.

Questions a PO currently cannot answer without an engineer
Questions a PO currently cannot answer without an engineer:

  -> Which services handle the new checkout flow end to end?
  -> What are the exact code paths a user takes through the redesign?
  -> What event names should I be filtering in Amplitude to see redesign usage?
  -> Is the checkout redesign fully rolled out, or still behind a flag for some users?
  -> What has changed since launch — has anything been patched or rolled back?
  -> Which Jira tickets mention the checkout and were filed after the launch date?
  -> Is the thing that shipped actually what was in the spec?

Every item in that list has an answer in the codebase. Stakeholder updates that rely on memory rather than system ground truth are consistently less accurate and harder to defend when challenged. Kognita gives product owners direct access to that ground truth — not as raw code, but as plain-language answers that are grounded in what the system actually contains.

The engineering relationship this changes

Product owners who cannot get system answers on their own have a structural dependency on engineering that shapes every interaction. They have to ask before they can plan. They have to wait before they can commit. They have to go back to engineering when leadership asks a follow-up question that requires another system lookup. The cadence of product work is set by the availability of engineers to answer questions, not by the pace of decisions that need to be made.

When product owners can answer system questions directly — understanding which services a feature touches, what the rollout state is, what post-launch tickets have been filed — the relationship with engineering changes. The questions that come to engineers are fewer but higher-quality. The PO is not asking "where do I find this in analytics?" They are asking "is this bug we are seeing on mobile a front-end issue or a service issue?" That is a better use of engineering time, and it is a better experience for both sides.

Scope misalignment between product and engineering often has its roots in product owners not having enough system context to write requirements that match what the system can actually do. Better system access for POs does not just improve adoption tracking — it improves the quality of work going into the next sprint as well.

Final take

Product owners are accountable for whether features succeed. They are not given the tools to assess success independently. The data is in analytics, filtered by event names they were not in the room to learn, connected to a system they cannot directly query. The result is a structural dependency on engineering for every system question, including questions as basic as "are customers actually using what we shipped?"

Kognita does not solve the analytics problem — it solves the vocabulary problem that sits in front of it. When a product owner understands which services a feature touches, which components are new, and what the feature flag state is, they can ask the analytics system the right question. That is what self-serve adoption tracking actually requires: not better dashboards, but system grounding that makes the right questions obvious.