Category: Product Management

  • Building Reliable AI Agent Systems: A Product Leader’s Playbook

    Building Reliable AI Agent Systems: A Product Leader’s Playbook

    Your AI agent performs beautifully in a controlled demo. Then real users arrive with incomplete instructions, stale records, missing permissions, ambiguous goals, and requests that cross the boundary between drafting something and actually changing the business.

    The answer is rarely a longer prompt or a newer model. A reliable agent is a product system: a bounded workflow with trusted context, constrained tools, explicit verification, measurable release gates, and a safe way to stop. Build those pieces together and you can increase autonomy without losing control of quality, cost, or risk.

    Start with a reliability contract, not an agent architecture

    Before discussing models, memory, orchestration, or frameworks, define the job the agent is accountable for completing. “Answer customer questions” is too vague. “Resolve an eligible billing question using approved account and policy data, record the result, and escalate when authorization or evidence is missing” is a testable contract.

    This distinction separates output from outcome. A fluent answer is output. A correctly changed business state is an outcome. The useful metrics therefore sit at the workflow level: resolution rate, time to a verified result, cost per completed task, qualified pipeline influenced, or another measure tied to the user’s job. That outcome-first capability design should happen before anyone selects a model.

    Contract fieldDecision you must makeEvidence the system must retain
    OutcomeWhat real-world state counts as completed?The accepted artifact, updated system record, or verified tool result
    ScopeWhich intents, data, tools, and actions are allowed?The classified intent, permission decision, and tools invoked
    Quality barWhat must be correct, grounded, complete, and timely?Evaluation results and postcondition checks for the task
    Stopping conditionWhen must the agent ask, refuse, or hand off?The missing evidence, policy conflict, failed tool call, or risk trigger
    RecoveryHow can a failed or interrupted run be resumed or reversed?Run state, committed actions, pending actions, approvals, and rollback path

    The stopping condition deserves as much product attention as the happy path. If two trusted records conflict, the reliable behavior may be to expose the conflict. If an API times out after a write, the agent must determine whether the write happened before retrying. If a request would delete data, spend money, alter access, contact a customer, or create a legal commitment, a draft-and-approve flow is safer than silent execution. The downside is not an awkward response; it is an irreversible business action.

    A practical autonomy ladder is observe, recommend, prepare, execute a reversible action, and execute a consequential action. Move a workflow upward only when the additional autonomy is necessary for the user outcome and the preceding level has evidence behind it. My rule is simple: earn autonomy one consequential action at a time.

    Write the expected handoff as part of the contract. Name who receives it, what context travels with it, what the agent already attempted, and what decision remains. “Escalated to a person” is not a successful fallback if that person has to reconstruct the entire case.

    Put a deterministic shell around the probabilistic core

    An LLM can interpret ambiguity and propose a plan. It should not also be the unobserved authority for identity, permissions, transaction state, policy enforcement, and whether its own work succeeded. Keep those controls in ordinary application logic wherever possible.

    A production workflow usually needs the following control points:

    1. Authenticate the user and validate the request before sending it into the agent loop.
    2. Retrieve only the authorized context needed for this task, with identifiers and provenance attached.
    3. Ask the model for a structured plan that can be inspected, constrained, or rejected.
    4. Validate every proposed tool and argument against policy, permissions, and a typed schema.
    5. Execute scoped actions with timeouts, retry rules, and protection against duplicate writes.
    6. Verify the resulting system state instead of trusting a generated claim that the task succeeded.
    7. Return the result, evidence, unresolved uncertainty, and next state to the user.

    That sequence creates a crucial separation between proposing an action, authorizing it, executing it, and verifying it. The LLM can participate in each stage, but it should not collapse all four into one opaque response.

    Retrieve evidence for the task, not everything that might be relevant

    A retrieval-first pipeline is usually more controllable than placing a large collection of documents in the prompt. Filter by tenant, user permissions, document type, effective date, product area, and workflow state before semantic ranking. Preserve record IDs and timestamps so the answer can be traced back to what the agent actually saw. Lean context also reduces latency, cost, and the chance that irrelevant instructions steer the run.

    Embedding similarity is only one retrieval tool. Questions such as “Which decisions changed across these meetings?” depend on time, structure, and purpose, not just semantic proximity. A more capable search layer can combine vector retrieval, lexical search such as BM25, metadata queries, and purpose-built summaries. Route the query to the appropriate retrieval method and give the agent a way to inspect gaps rather than forcing every question through one embedding index.

    Retrieved content is still untrusted input. A document can contain stale policy, hostile instructions, or text that resembles a system command. Keep instructions separate from evidence, restrict which tools retrieved text can influence, and apply least-privilege access at the API layer. Privacy-by-design, data governance, structured logs, and tests for prompt injection and data exfiltration belong in the architecture, not in a pre-launch checklist.

    Treat every tool as a narrow product interface

    A tool description is not merely prompt text. It is an interface contract. Give each tool a single clear responsibility, explicit input types, constrained values, recognizable error states, and a response the workflow can verify. Separate read tools from write tools. Where the underlying system allows it, add dry-run modes, idempotency keys, and an endpoint that checks the final state.

    Avoid exposing a broad “run anything” tool when the agent only needs to look up an account, prepare a ticket, or update one approved field. Narrow tools reduce the decision surface, simplify evaluation, and make permission reviews legible. They also let you disable one unsafe capability without taking the entire agent offline.

    Persist enough state to answer operational questions after the run: which prompt and model version ran, what was retrieved, which plan was selected, which tools were attempted, what they returned, what was committed, which verification passed, and whether a person approved the action. Do not rely on a natural-language transcript as the only record. Store structured events with a run identifier and propagate that identifier through tool calls.

    Model selection comes after these boundaries are clear. Tool-use fidelity, prose quality, latency, multilingual performance, context needs, and cost can point to different choices. Newer is not automatically better: one production team found GPT-4.1 more suitable for its prose workload than newer alternatives. Keep the workflow and evaluation interfaces model-agnostic enough to compare or replace providers without rewriting the product.

    The same discipline applies to multi-agent designs. Parallel agents are useful when tasks are genuinely independent, such as preparing different artifacts from a shared meeting. Specialized agents can also isolate permissions or context. But each added agent introduces another prompt, model call, state transition, failure path, and cost center. A second agent is not meaningful verification when it sees the same evidence, inherits the same assumptions, and merely agrees with the first. Add orchestration only when the separation has a measurable job.

    Make workflow evaluations a release gate

    A few attractive examples cannot tell you whether an agent is production-ready. Reliability work starts by naming how the workflow can fail, then turning those failure modes into repeatable tests.

    Use a failure taxonomy that follows the run from request to outcome:

    • The agent misunderstood the intent or accepted a task outside its scope.
    • Retrieval omitted the necessary record, returned stale information, or crossed an access boundary.
    • The plan skipped a required step or selected an unsafe sequence.
    • The agent chose the wrong tool or supplied invalid arguments.
    • A tool failed, timed out, or completed after the agent assumed it had failed.
    • The response introduced an unsupported claim or concealed uncertainty.
    • The agent claimed success even though the intended system state was not reached.
    • The handoff occurred too late or omitted information the recipient needed.

    Build a golden dataset from real user intents and known edge cases. Include normal successful work, ambiguous instructions, missing data, conflicting records, insufficient permissions, tool errors, adversarial content, and requests that should be refused or escalated. Each case needs an expected outcome, allowed tools, forbidden actions, required evidence, and an evaluation method. Otherwise the dataset is a collection of prompts, not a product specification.

    Grade the system at several layers. Task success checks whether the intended state was reached. Grounding checks whether material claims are supported by authorized evidence. Tool-use evaluation checks selection, argument correctness, sequence, and postconditions. Safety evaluation checks policy and access boundaries. Handoff quality checks whether the receiving person can continue without repeating work. Latency and cost reveal whether the successful path is operationally sustainable.

    Use deterministic checks where the answer is objective. An account ID, required field, permission decision, or database state should not need a subjective model judge. Use rubric-based model evaluation or calibrated human review for writing quality, helpfulness, and other dimensions that genuinely require judgment. Regularly compare automated grades with human decisions; an evaluator can drift or share the actor model’s blind spots.

    Do not hide a severe failure behind an average score. Segment results by intent, tool, customer type, language, risk class, and workflow version. A high overall pass rate says little if the agent consistently fails the one action that changes access or sends a customer-facing commitment. Set separate go/no-go requirements for critical slices and treat forbidden actions as release blockers.

    A disciplined release path looks like this:

    1. Run offline evaluations against the current production version and the candidate change.
    2. Replay representative historical traces with writes disabled and inspect changed decisions.
    3. Shadow real traffic without allowing the candidate to act.
    4. Expose the candidate behind a feature flag to internal or explicitly selected users.
    5. Canary the workflow with a limited production population and a tested rollback path.
    6. Use an online experiment when the question concerns user or business impact, defining the minimum detectable effect before interpreting the result.
    7. Expand only after task success, safety, handoff, latency, and cost remain within their release requirements.

    This is eval-driven development in practical terms. Prompt, retrieval, model, tool, and policy changes are versioned product changes. They enter the same comparison pipeline and cannot bypass it because someone considers a prompt edit “just configuration.”

    Scale reliability and unit economics as one system

    An agent can be accurate and still be unscalable. It can also look inexpensive per model call while becoming costly per resolved task because it retrieves too much, retries weak plans, invokes unnecessary tools, or sends avoidable cases to people.

    Measure cost per completed safe task. The numerator should include model inference, retrieval, external APIs, tool execution, retries, verification calls, and required human review. The denominator should include only tasks that reached the intended state without violating the contract. Counting failed or falsely completed runs as successful makes the economics look better precisely when reliability is deteriorating.

    Instrument the complete trace so you can attribute both cost and delay to a stage. Useful operating views include task success by intent, tool errors by endpoint, retries by plan type, escalations by reason, latency by stage, cost by model and workflow version, unsupported-claim rate, and verification failures. Pair those measures with user satisfaction and downstream correction signals; a fast completion is not a win if a person has to undo it later.

    Cost work should target the mechanism, not apply a blanket downgrade. Shorten irrelevant context. Retrieve smaller evidence sets. Cache stable prompt prefixes where the provider and privacy posture allow it. Route simple classifications away from expensive reasoning models. Reuse deterministic results. Remove redundant verification, but only when evaluations show it adds no protection. In one concrete case, Earmark reported reducing its meeting workflow from about $70 per meeting to under $1 through prompt caching. That is a product-specific result, not a general benchmark, but it shows why context and caching decisions can determine whether an agent remains a demonstration or reaches everyday use.

    Define service objectives around the user journey rather than a generic chatbot response. Track whether eligible tasks finish safely, whether consequential actions are verified, how long the user waits for the intended outcome, whether interrupted runs recover, and whether handoffs retain context. Set the actual thresholds from the workflow’s risk, user promise, baseline performance, and economics; there is no responsible universal target for every agent.

    Prepare for incidents before increasing exposure. The operating playbook should identify the on-call owner, alert conditions, kill switch, feature flags, tool-specific disablement, prompt and model rollback procedure, trace replay process, customer-impact assessment, and postmortem owner. Test that the team can stop writes while preserving read-only or handoff behavior. An all-or-nothing shutdown is avoidable when capabilities are independently gated.

    Data retention is another scaling decision, not merely a legal footnote. Record what must be retained for debugging, audit, recovery, and user value; minimize everything else; define access and deletion behavior; and make the choice visible to enterprise reviewers. An ephemeral architecture can become a commercial advantage when persistent conversation storage is unnecessary: a no-storage design reduced a real enterprise adoption objection. It will not fit every workflow, especially where auditability requires durable records, so make retention a deliberate contract rather than a default.

    Use the first 90 days to earn a narrow production footprint

    A useful 90-day plan does not promise an autonomous platform by the end of the quarter. It creates one bounded production workflow, evidence that the workflow is valuable, and the controls required to expand it. The sequence below adapts an outcome-led 90-day AI operating model to agent reliability.

    Days 0-30: define the contract and make failure observable

    • Choose a frequent workflow with a recognizable end state and enough value to justify automation.
    • Write the outcome, eligible intents, tools, data boundaries, prohibited actions, stopping conditions, and handoff owner.
    • Map every identity, permission, retention, and policy dependency before connecting write tools.
    • Baseline the current process so improvements in completion, time, cost, and quality have a meaningful comparison.
    • Assemble real and adversarial evaluation cases with expected outcomes and forbidden behaviors.
    • Implement structured traces and a read-only or dry-run version of the workflow.

    The exit criterion is not a persuasive demo. You should be able to inspect a run and determine, without guessing, whether it completed the job, what evidence it used, what it changed, and why it stopped.

    Days 31-60: connect tools behind controls

    • Implement narrow tool adapters with typed inputs, permission checks, stable errors, timeouts, and duplicate-write protection.
    • Add retrieval filters, provenance, postcondition checks, and explicit approval points.
    • Version prompts, models, policies, retrieval settings, and tool schemas as one releasable workflow.
    • Run offline comparisons and shadow traffic, then review failures by category rather than as isolated bad answers.
    • Add feature flags, tool-specific disablement, alerts, and a tested rollback path.
    • Assign a product owner for the outcome and named engineering, risk, security, and operational partners for the controls they own.

    Leave this phase only when every serious known failure class has either a preventive control, a detection mechanism, or an explicit human gate. A line in a risk register is not a runtime control.

    Days 61-90: canary, learn, and expand selectively

    • Release to a limited population whose intents and permissions match the evaluated scope.
    • Monitor safe task completion, false-success signals, handoffs, latency, cost, corrections, and user outcomes by workflow version.
    • Review traces for both failures and unexpected successes; an agent may reach the right answer through an unsafe path.
    • Run incident and rollback drills before raising the exposure or enabling a more consequential action.
    • Compare production behavior with the baseline and the predeclared release requirements.
    • Expand one dimension at a time: more users, another intent, a new tool, or greater autonomy. Re-run the relevant evaluations after each change.

    The exit criterion is operational ownership. Someone owns the workflow’s outcome, someone responds when it degrades, the system can be rolled back, and the roadmap is driven by observed failure and value rather than a list of impressive agent capabilities.

    Key takeaways

    • Define reliability as a completed, verified user outcome inside explicit boundaries.
    • Keep authorization, policy enforcement, transaction state, and postcondition checks outside the model wherever possible.
    • Evaluate retrieval, planning, tool use, safety, handoff, and final state – not just the generated response.
    • Gate changes with offline tests, shadowing, feature flags, canaries, and rollback procedures.
    • Measure cost per completed safe task and optimize the stage causing the expense.
    • Increase scope and autonomy separately so production evidence can tell you which change caused a regression.

    Start with one workflow this week. Write its reliability contract, collect representative failures, and make a dry run traceable from request to verified outcome. Once that narrow path is measurable and recoverable, you have something worth scaling – and a defensible reason to grant the agent its next action.

    References

  • How to Turn MCP Product Data Into an Adoption System

    How to Turn MCP Product Data Into an Adoption System

    Your product data is available, but the people who need it still wait for an analyst, search through dashboards, or walk into a meeting with competing interpretations. Adding MCP access can shorten that path. It does not, by itself, make the resulting decisions consistent or useful.

    The real opportunity is to solve two adoption problems at once: get more people to use product data in their daily work, then use that data to improve customer adoption. That requires a repeatable operating system connecting activation, feature use, retention, customer feedback, account risk, qualified leads, packaging, and release adoption to named decisions and owned actions.

    Key takeaways

    • Treat every MCP prompt as a decision contract: define the metric, population, time window, comparison, expected action, and evidence standard.
    • Organize prompts around recurring product decisions, not around dashboards or data tables.
    • Require every answer to end with an owner, an action, and a plan for measuring what happens next.
    • Use stronger evidence for higher-consequence decisions. A churn-risk list or sales lead should face more scrutiny than a request to explore a feature funnel.
    • Start with one weekly decision loop. Expand only after people trust the definitions, joins, and recommendations behind it.

    Give every prompt a decision contract

    The most common failure is asking a broad question and expecting the model to infer the business decision. A request such as Why are users not activating? leaves too much unresolved. Which users count? What qualifies as activation? Which period matters? Is the goal to diagnose a problem, choose an experiment, or estimate its potential impact?

    A decision-grade prompt should specify eight elements:

    1. Decision: State what someone needs to choose after reading the answer.
    2. Metric: Name the behavioral outcome and use the agreed internal definition.
    3. Population: Identify eligible users or accounts, including relevant plans, personas, or lifecycle stages.
    4. Time window: Set the period and, when useful, the comparison period.
    5. Breakdown: Name the segments that could lead to different actions.
    6. Diagnosis: Ask for drop-offs, gaps, stalls, loops, themes, or regressions rather than a descriptive total alone.
    7. Prioritization: Define whether opportunities should be ranked by absolute impact, effort, risk, velocity, or another decision criterion.
    8. Evidence: Require assumptions, limitations, denominators, and statistical uncertainty where they matter.

    For example, replace the broad activation question with a request to show the activation funnel for small, mid-market, and enterprise customers over the last 90 days, identify the largest drop-off at each step, and estimate which improvement would produce the largest absolute increase in activated users. That framing gives a product leader something to prioritize. It also prevents a dramatic percentage change in a small segment from automatically outranking a modest change affecting many more users.

    The prompt cannot repair an ambiguous metric. Before operationalizing it, write down the activation event, the eligible population, the event sequence, the reporting window, and any excluded internal or test activity. Do the same for adoption, retention, time-to-value, product-qualified leads, and churn risk. If two functions use different definitions, the MCP response will make the disagreement faster, not make it disappear.

    A reusable prompt pattern looks like this: Analyze [behavior] for [population] during [window]. Break the result down by [segments]. Identify [decision-relevant pattern]. Quantify [impact]. Recommend [number and type of actions] ranked by [criterion]. Return the result with [owner-facing output], assumptions, limitations, and the evidence supporting each recommendation.

    Save that structure as a governed prompt template. Let teams change the business variables without removing the fields that make the answer auditable.

    Build the prompt system around lifecycle decisions

    A prompt library becomes unwieldy when it mirrors every report in the analytics stack. A smaller library organized around recurring decisions is easier to adopt because each prompt has a recognizable moment of use.

    DecisionQuestion the prompt should answerAction it should enable
    Improve activationWhere do small, mid-market, and enterprise users drop out of the activation funnel over the last 90 days?Choose the funnel step with the largest potential absolute lift.
    Increase feature adoptionWhich features are gaining usage fastest over the last 30 days, and which high-value features remain underused by a relevant persona?Select in-app guide placements and the audiences that should receive them.
    Improve retentionHow do 30-, 60-, and 90-day retention curves differ by plan and persona?Choose focused experiments for an early retention gap.
    Remove journey frictionWhere do users stall or repeat steps after onboarding, and which feedback themes explain the behavior?Change the journey, product tour, tooltip, or underlying product experience.
    Validate an interventionDid an in-app guide change activation or time-to-value, and how certain is the estimated effect?Keep, revise, expand, or stop the intervention.
    Manage revenue and account riskWhich accounts show declining use or sentiment, which users meet product-qualified-lead criteria, and which features correlate with movement between pricing tiers?Prioritize customer-success plays, contextual sales follow-up, and packaging tests.
    Learn from releasesWhat happened to adoption, feedback, and regressions across the last three releases?Choose one near-term correction and one larger product bet.

    Activation and time-to-value

    Start with the first customer outcome that matters, not with login or page-view volume. The activation funnel should show the sequence leading to that outcome and expose the step where each meaningful segment falls away. Once you identify the step, examine what users do immediately before and after it. Repeated steps, stalled paths, and abandoned onboarding flows tell you where to investigate.

    Time-to-value adds a second lens. Compare the time required for each persona to reach the key action, then examine the period before and after a tutorial or guide launch. A shorter path can matter even when the final activation rate has not yet moved. Keep the two metrics separate: one measures whether users reach value, while the other measures how long reaching it takes.

    Feature adoption and retention

    Feature adoption velocity helps you notice where behavior is changing, but velocity alone does not tell you what to promote. First decide which features are valuable for which personas. Then find the gap between expected use and observed use. A specialized feature can be healthy with a small eligible audience, while a broadly important feature can be in trouble despite a larger raw user count.

    Do not assume every adoption gap is a discoverability problem. Combine behavioral paths with NPS comments, support tickets, and in-app survey responses. Users may be unable to find the feature, unable to understand it, blocked by a prerequisite, or unconvinced of its value. Those causes demand different responses. A tooltip can address a hidden control; it cannot repair an unreliable workflow.

    Retention analysis should then connect early behavior to continued use. Compare 30-, 60-, and 90-day curves by plan and persona, but ask whether the gaps are statistically credible before allocating a roadmap around them. The useful output is not a collection of curves. It is a small set of testable explanations for why one group returns and another does not.

    Account risk, qualified leads, and packaging

    Commercial prompts sit closer to customer relationships, so their outputs need tighter review. A churn-risk prompt can combine declining feature use, reduced login frequency, and support sentiment, then rank accounts and propose customer-success plays. A lead prompt can identify users who cross agreed usage thresholds, map them to CRM opportunities, and draft follow-up based on demonstrated feature interest.

    Keep scoring separate from execution. The first operational output should be a reviewed queue, not an automatically sent message. A false positive in an exploratory feature report is inconvenient. A false positive that triggers an irrelevant sales or retention outreach reaches the customer.

    Packaging questions require the same discipline. Analyze usage distributions across pricing tiers and look for features associated with upgrades, but do not treat an association as proof that a feature caused the upgrade. Use the pattern to form a packaging hypothesis and an in-product nudge, then measure the resulting behavior.

    Make every answer end in an owned action

    Product data adoption stalls when an MCP response ends with an insight. An insight is only an intermediate artifact. The operating loop is complete when the answer changes a decision, someone acts, and the next analysis measures the result.

    1. Ask: Run a governed prompt tied to a recurring decision.
    2. Inspect: Check definitions, segment sizes, joins, assumptions, and uncertainty.
    3. Decide: Record the chosen action and the alternatives that were rejected.
    4. Assign: Name one accountable owner and a review point.
    5. Intervene: Change the product, journey, guide, customer-success play, sales follow-up, or experiment.
    6. Measure: Rerun the relevant analysis using the agreed success metric.
    7. Publish: Share the outcome so the prompt library accumulates organizational learning rather than disconnected answers.

    Standardize the answer as carefully as the prompt. Each response should contain the observation, supporting evidence, business implication, recommended action, owner, measurement plan, and known limitations. This makes the output usable in a product review, customer-success meeting, release review, or executive update without someone having to reinterpret it from scratch.

    Ownership should follow the action rather than the data system:

    • Product owns the choice of funnel step, journey change, experiment, or roadmap response.
    • Engineering owns instrumentation gaps and product regressions that prevent a reliable decision.
    • Customer success owns reviewed account plays prompted by usage decline and support sentiment.
    • Sales owns follow-up to qualified leads after CRM matching and account review.
    • Marketing owns persona-specific education when the issue is understanding or positioning rather than product usability.

    A weekly executive summary can reinforce this behavior if it remains selective. Limit it to the three most consequential product insights. For each one, name the KPI involved, the decision required, the owner, and the next action. Do not turn the summary into a longer dashboard delivered through a conversational interface.

    My rule is simple: if a finding has no owner or no plausible action, it is not ready for the executive summary.

    Earn trust before automating the cadence

    MCP makes analysis easier to request, which means weak definitions and broken joins can spread faster. Trust therefore has to be designed into the workflow. Check the following before a prompt becomes part of a recurring operating cadence:

    • Metric consistency: The prompt, dashboard, and operating review use the same definition.
    • Population integrity: Eligible users and accounts are explicit, and internal or test activity is handled consistently.
    • Segment denominators: Every rate or comparison exposes how many users or accounts it represents.
    • Identity joins: Product, support, survey, and CRM records map to the intended user or account without silent duplication.
    • Evidence strength: Descriptive patterns, pre/post comparisons, and randomized experiments are labeled differently.
    • Traceability: Feedback themes can be checked against the underlying verbatims, tickets, or survey responses.
    • Human review: Customer-facing or commercially consequential recommendations are approved before execution.

    For an A/B test of an in-app guide, ask for the observed lift, a confidence interval, and the minimum detectable effect assumptions used to plan the analysis. The minimum detectable effect is not the lift that occurred; it is the smallest effect the experiment was designed to detect under its assumptions. If the data cannot support a reliable conclusion, the correct response is to say so rather than manufacture certainty.

    Treat a pre/post comparison with more caution. If activation or time-to-value changed after a tutorial launched, the tutorial may have contributed, but other product, traffic, or customer changes may also explain the difference. Use the result as directional evidence unless the design supports a stronger causal claim.

    Roll out the operating system in a narrow sequence:

    1. Choose one recurring decision with a clear owner, such as improving a specific activation funnel.
    2. Write the metric contract and prompt together.
    3. Run the MCP analysis alongside the existing manual analysis until the numbers and interpretations agree.
    4. Adopt a fixed response format with evidence, action, owner, and measurement plan.
    5. Review the result in the existing weekly operating cadence rather than creating a separate AI meeting.
    6. Record the intervention and rerun the relevant analysis at the next appropriate review point.
    7. Add the next lifecycle decision only after people can explain and trust the first one.

    Do not measure the rollout by prompt volume. Measure whether recurring decisions have usable data coverage, whether answers turn into owned actions, whether teams return to measure those actions, and whether the underlying activation, time-to-value, feature adoption, retention, or commercial outcome moves.

    Your first move is not to publish a large prompt catalog. Pick the product decision that causes the most recurring debate, define its metric contract, and turn it into one weekly question with one accountable owner. When that loop reliably moves from evidence to action to measurement, MCP has become part of the product operating system rather than another interface people try once.

    References

  • Stop Groupthink in Hiring: Proven Product-Led Tactics to Make Faster, Fairer Decisions

    Stop Groupthink in Hiring: Proven Product-Led Tactics to Make Faster, Fairer Decisions

    Is hiring broken—or just badly designed? I’ve been sitting with that question after a recent conversation that crystallized what I see across product organizations: AI-fueled application overload, sprawling interview loops, and fuzzy criteria that invite groupthink at exactly the wrong moments. If you’ve ever watched a promising candidate stall out late in the process, you’re not alone. Listen to this episode on: Spotify | Apple Podcasts.

    Here’s the reality I’m observing in the market: Layoffs and hiring freezes have flooded the funnel, while AI tools make it trivial to submit hundreds of applications. Companies are overwhelmed, so they respond by adding more interviews and more stakeholders, hoping more touchpoints equal better signal. In practice, that complexity often dilutes accountability and increases noise—especially for product management leadership roles where clarity, not consensus theater, determines success.

    I’ve seen too many offers derailed by “one last step.” A candidate clears every structured interview, then a casual lunch or unframed panel suddenly becomes the deciding factor. The team isn’t briefed on what to evaluate, one lukewarm comment lands, and group dynamics cascade into a no-hire. That’s not rigor—it’s randomness masked as prudence.

    Groupthink ≠ good hiring decisions. When everyone has veto power, risk-averse no-decisions become the default. Focus-group-style interviews create bias, not signal, and “culture fit” often becomes a proxy for stereotyping or personal preference. As product leaders, we’d never ship a feature based on vibes; we shouldn’t make high-stakes hiring calls that way either.

    There’s a better way—and it mirrors how we run great product discovery. Define who you’re hiring before writing the job description. Set clear success metrics for the role. Assign each interviewer specific criteria to evaluate. Treat hiring like product discovery: intentional, structured, and evidence-based. In my teams, that looks like tight scorecards, interviewer calibration, and a decision owner who synthesizes evidence—not a popularity contest where the loudest voice wins.

    Chemistry checks still matter, but only when we define what collaboration actually means for the role. Introversion, debate style, or lunch-table small talk are not performance indicators. I look for behaviors we value in empowered product teams—clarity of thinking, healthy dissent, co-creation under constraints—often via a real working session with the future product trio. Diverse teams outperform homogenous ones, even if not everyone “vibes,” so I optimize for complementary strengths over sameness.

    If you’re a candidate, remember: When a process feels broken, it’s often not about you. Ask how you’re being evaluated to gauge process maturity; a thoughtful team will happily walk you through their rubric and what great looks like. For structure and support, I’ve seen “Who: The A Method for Hiring” help leaders clarify requirements; “Never Search Alone” and joining a Job Search Council (JSC) can give you peer accountability and sharper narratives. For current openings, I regularly point PMs to Scott Baldwin’s PM job postings on LinkedIn.

    My challenge to fellow product leaders: Audit your hiring process the way you’d audit your roadmap. Where are decisions getting stuck? Where are you over-indexing on consensus and under-indexing on evidence? Tighten the criteria, streamline stakeholders, and instrument the funnel so you can learn and improve. The payoff is faster, fairer, more confident decisions—and teams that reflect the rigor we expect in product strategy and stakeholder management.

    What’s one change you can make this week—reworking the scorecard, calibrating interviewers, or replacing an unstructured lunch with a real collaboration exercise? Small improvements compound. Let’s build hiring systems that are worthy of the talent we’re trying to attract.


    Inspired by this post on Product Talk.


    Book a consult png image
  • Stop Measuring Output, Start Driving Outcomes: My February CDH Book Club Guide

    Stop Measuring Output, Start Driving Outcomes: My February CDH Book Club Guide

    “Continuous Discovery Habits” turns five this year, and I’m celebrating by reading the book together with you. Each month, I’m releasing an in-depth reading guide designed for empowered product teams and product trios—complete with the chapters we’ll read, a preview of the key concepts, short shareable videos, individual and team discussion prompts, team exercises you can run immediately, and additional reading to go deeper.

    We’ll discuss each month’s reading in the comments, and we’ll gather quarterly for live calls. If you’re joining late, no problem—I’ll be monitoring comments throughout the year. Start with the current month or go back to January (https://www.producttalk.org/lets-read-continuous-discovery-habits-together-january-2026/). Jump in where it serves you best, ask for help, share what’s working, and connect with other readers any time.

    If you want to participate, grab a copy of the book (https://amzn.to/3hGkNYT?ref=producttalk.org)—or dust off your old one—share the “Spread the Love” videos with your colleagues, set aside time to run the team exercises, and register for the community sessions. Let’s do this.

    This Month’s Reading

    Chapters: Chapter 3: Focusing on Outcomes Over Outputs

    Estimated reading time: ~22 minutes

    This chapter zeroes in on the critical difference between business outcomes and product outcomes—and why it matters which one your team is assigned; how to translate lagging business metrics into actionable product outcomes you can actually influence; why setting outcomes should be a two-way negotiation between leaders and product trios; when to start with a learning goal versus a performance goal; and five common anti-patterns that derail outcome-focused teams. Need a copy? Grab the book (https://amzn.to/3hGkNYT?ref=producttalk.org).

    Share the Love with Friends and Colleagues

    We learn best in community. I like to seed conversations across my org with short, high-signal content—especially when I’m shifting a culture from outputs to outcomes and sharpening OKRs. Use these short videos to bring peers into the conversation and invite them to read along:

    “What’s an outcome?” (https://videos.producttalk.org/videos/ea9fdab71d1ee3c263/whats-an-outcome?ref=producttalk.org) — The real value of starting with an outcome. “Business outcomes vs. product outcomes” (https://videos.producttalk.org/videos/069fd5b5101ee2c78f/business-outcomes-vs-product-outcomes?ref=producttalk.org) — Why product teams need product outcomes, not business outcomes. “What’s the difference between OKRs and outcomes?” (https://videos.producttalk.org/videos/069fdab61919e4c38f/whats-the-difference-between-okrs-and-outcomes?ref=producttalk.org) — Any outcome can be represented as an OKR. “Understanding revenue model formulas” (https://videos.producttalk.org/videos/799fd5b5101ee2c4f0/understanding-revenue-model-formulas?ref=producttalk.org) — How to identify the business outcomes your company cares about. “Revisit your outcome every quarter” (https://videos.producttalk.org/videos/449fd5b4111ee0cfcd/revisit-your-outcome-every-quarter?ref=producttalk.org) — Don’t abandon your outcome, but do revisit how you measure it.

    Reflect and Discuss What You Read

    Reflection is the conversion rate optimizer for learning. When we pause to discuss what we’re reading, we retain more and apply it faster—especially in product discovery and product strategy work. This chapter challenges us to update our definition of success: away from features shipped and toward outcomes achieved. This month, I’m examining my own relationship with outcomes—where I’ve been rigorous, where I’ve drifted, and how I can help my teams strengthen day-to-day behaviors.

    Individual Reflection

    If your team isn’t working toward an outcome, look at the features or projects on your roadmap and ask: What impact are they supposed to have? If they succeed, what customer behavior or business result would change? If your team does have an outcome, consider whether it’s a business outcome, a product outcome, or a traction metric—and how that choice shapes your daily decisions and discovery cadence. Finally, think about the last time your team’s outcome changed: Was it a deliberate strategic shift, or did it feel like ping-ponging from one priority to the next?

    Team Discussion

    As a team, classify your current outcome: Is it a business outcome, a product outcome, or a traction metric? If it’s a business outcome, identify the leading customer behaviors that would signal momentum; if it’s a traction metric, broaden it to a product outcome that gives you more room to explore. Then, name which of the five anti-patterns (pursuing too many outcomes, ping-ponging, individual outcomes, outputs as outcomes, or tunnel vision) shows up for you and pick one concrete change. Finally, assess how outcomes are set: Are they handed down, or does your product trio co-create them? What would it take to make this a true two-way negotiation?

    Put It Into Practice

    Understanding the difference between business outcomes and product outcomes is table stakes. Translating one into the other is where product management leadership shows up. These exercises will help you connect company goals to customer behavior, avoid outcomes vs output OKRs traps, and increase your span of control over meaningful change.

    Exercise: Map Your Revenue Model

    Time: 30 minutes. Do this: Solo first, then share with your team. Start with this question: How does your company make money? Write out the formula for your revenue model. For example, a subscription business might be: Revenue = Number of Customers × Average Monthly Spend × Retention. Once you have the formula, identify each variable as a potential business outcome. Then, for each business outcome, brainstorm two to three product outcomes (customer behaviors or sentiments) that might be leading indicators. Which of these product outcomes is your team best positioned to influence?

    Exercise: Audit Your Current Outcome

    Time: 45 minutes. Do this: With your product trio. Take your team’s current outcome and run it through a quick diagnostic: Is it a business outcome, product outcome, or traction metric? If it’s a business outcome, what product outcomes might drive it? If it’s a traction metric, how might you broaden it to a product outcome? Is it a leading indicator or a lagging indicator? Can you measure progress weekly, or do you have to wait months? Is it within your team’s span of control? Based on your answers, draft a revised outcome that offers more actionable feedback while still connecting to business value, and prepare to discuss this with your product leader.

    Go Deeper: Additional Reading

    If you prefer an audio summary of this month’s reading, including the book chapter and the resources below, I’ve included an audio version at the end of this post for paid subscribers.

    Related In-Depth Guide: Shifting from Outputs to Outcomes: Why It Matters and How to Get Started (https://www.producttalk.org/shifting-from-outputs-to-outcomes/).

    Supplementary Reading: Empower Product Teams with Product Outcomes, Not Business Outcomes (https://www.producttalk.org/2020/05/product-outcomes/). Defining Product Outcomes: The 8 Most Common Mistakes You Should Avoid (https://www.producttalk.org/2022/12/defining-product-outcomes/). Understanding How Product Outcomes Connect to Revenue and Costs (https://www.producttalk.org/2023/04/connecting-product-outcomes-to-revenue-and-costs/). Product in Practice: Iterating to an Actionable Outcome at tails.com (https://www.producttalk.org/2020/08/actionable-outcomes/). Product in Practice: Iterating on Outcomes with Limited Data (https://www.producttalk.org/2023/12/iterating-on-outcomes-with-limited-data/). Measurable Outcomes – All Things Product with Teresa Torres and Petra Wille (https://www.producttalk.org/measurable-outcomes-all-things-product-podcast-with-teresa-torres-petra-wille/).

    Other Voices: The Business Equation by Brett Bivens (https://venturedesktop.substack.com/p/the-business-equation?ref=producttalk.org). KPI Trees: How to Bridge the Gap Between Customer Behavior, Product Metrics, and Company Goals by Petra Wille and Shaun Russell (https://www.petra-wille.com/blog/kpi-trees-how-to-bridge-the-gap-between-customer-behavior-product-metrics-and-company-goals?ref=producttalk.org). Persistent Models vs. Point-In-Time Goals by John Cutler (https://cutlefish.substack.com/p/tbm-2553-persistent-models-vs-point?ref=producttalk.org). Is It Time to Ditch the Old SaaS Metrics? by Kyle Poyar (https://openviewpartners.com/blog/saas-metrics-plg/?ref=producttalk.org). How Engagement Metrics Can Be Misleading by Oleg Yakubenkov (https://gopractice.io/blog/how-engagement-metrics-can-be-misleading/?ref=producttalk.org). Subscription Churn Metrics and Benchmarks for Operators by Elena Verna (https://www.elenaverna.com/p/subscription-churn-benchmarks-and?ref=producttalk.org).

    Related Courses: Business Fundamentals: Navigate Your Business Context with Confidence (https://learn.producttalk.org/course/business-fundamentals?utm_source=Product+Talk&utm_medium=cdh-book-club-february-2026).

    Our Live Discussion Schedule

    Our live discussion sessions are for paid subscribers and will not be recorded. Invitations will go out to Supporting Members and CDH Members (http://members.producttalk.org/?ref=producttalk.org) two weeks before each event—reserve time on your calendar now so you can participate fully and bring real examples from your team.

    Wednesday, March 18, 2026: 9am–10am PDT and 4pm–5pm PDT. Tuesday, June 16, 2026: 9am–10am PDT and 4pm–5pm PDT. Thursday, September 17, 2026: 9am–10am PDT and 4pm–5pm PDT. Wednesday, December 16, 2026: 9am–10am PST and 4pm–5pm PST.

    Audio Summary

    Prefer to listen? I’ve included an audio summary—Stop Measuring Code Start Measuring Behavior—at the end of this post so you can review the main ideas on your commute or between meetings.

    I’m excited to dive into outcomes with you this month. As a product leader, I’ve seen teams transform their product discovery, product roadmapping and sprint planning, and OKR quality when they anchor on clear product outcomes tied to business value. Let’s build that muscle together and make this a quarter where we stop measuring output and start driving outcomes.


    Inspired by this post on Product Talk.


    Book a consult png image
  • Stop Losing Customers: Predict Churn with Digital Analytics and Act Before It’s Too Late

    Stop Losing Customers: Predict Churn with Digital Analytics and Act Before It’s Too Late

    I stopped treating churn as a postmortem and started treating it as a forecasting problem. When we instrument our product, connect the dots across journeys, and embed those signals into our daily operations, churn becomes predictable—and preventable. This shift has been one of the most impactful product strategy moves my teams have made for product-led growth and retention analysis.

    "Discover why and how CS teams can use digital analytics to take a proactive, predictive approach to churn, stopping it before it happens." That is exactly the mindset I bring to customer success and product collaboration: anticipate risk, intervene with precision, and demonstrate measurable impact.

    The practical work starts with leading indicators. I look at user activation milestones, time-to-first-value, feature adoption depth, frequency and recency of key events, account-level coverage (are multiple users active or just one champion?), usage volatility, and friction signals like repeated errors or stalled onboarding. These behavioral inputs are stronger predictors of churn than survey sentiment alone.

    From there, I create a churn risk score. Early on, a transparent rules-based model is usually enough to separate healthy from at-risk accounts. Over time, we can layer in supervised learning if the data supports it. I rely on Amplitude analytics, Pendo, or a unified analytics platform to tag events, build cohorts, and compute risk in near real time. This is where we consistently see the patterns that matter—especially around user activation and sustained adoption.

    Signals without action won’t save a customer, so I connect the model to our systems of engagement. Through CRM integration, at-risk accounts trigger clear playbooks for CSMs and lifecycle marketers. Inside the product, in-app guides address gaps exactly where they occur—guiding users to the next best action, unblocking onboarding, or showcasing the value hidden behind underused features.

    Because not every nudge works for every segment, we treat intervention design as a product problem and run A/B testing on copy, timing, channel, and offer. We test whether a contextual tooltip outperforms an email sequence, whether a short product tour beats a knowledge base link, and which incentives accelerate onboarding without cannibalizing expansion.

    Operationally, this is a team sport. Product, CS, and marketing meet in product trios to review risk cohorts, prioritize root-cause fixes, and tune playbooks. We run a weekly risk review to turn insights into decisions, and we use monthly business reviews to connect leading indicators to lagging outcomes like retention, expansion, and NRR.

    Measurement is non-negotiable. We pair retention analysis with qualitative feedback to understand whether our interventions truly change behavior. The goal is to close the loop: when a risk cluster improves, we codify the playbook; when a tactic underperforms, we learn, adjust, and try again. Over time, the organization builds a muscle for proactive, data-informed customer health management.

    If you’re getting started, begin by instrumenting events tied to value moments, define a simple health score, and stand up a basic alerting workflow. Pilot one or two interventions, measure lift, and iterate. Within a single quarter, you’ll have enough signal to prioritize product improvements and scale the practices that reliably reduce risk.

    Churn rarely surprises teams that listen to their data and respond in real time. With disciplined analytics, thoughtful in-product guidance, and tight alignment across CS and product, we can move from reacting to predicting—and keep more customers succeeding with far less effort.


    Inspired by this post on Amplitude – Perspectives.


    Book a consult png image
  • Build vs. Buy in an AI-First World: My Framework to De-Risk Decisions and Own Your Data

    Build vs. Buy in an AI-First World: My Framework to De-Risk Decisions and Own Your Data

    Build vs. buy is a decision that never truly goes away, and with AI reshaping the economics of software, I’m revisiting this question more frequently—and with more nuance—than ever. The temptation to “just build it” is real when prototypes are cheaper, shipping feels faster, and small tools can rival big platforms. But the real decision has never been about code; it’s about value, data, and long-term responsibility.

    Across product orgs at every stage, I see the same pattern: AI makes building feel easier—but it doesn’t eliminate the tradeoffs. The hard part is separating what differentiates your product from what simply supports it. That’s why I start by asking whether the capability is truly core to my value stream, and then I force myself to reason about ownership and maintenance, not just velocity.

    My rule of thumb remains simple: If something isn’t core to your value stream, don’t build it. And even when it is core, vendors may still be better positioned—especially for payments, invoicing, and infrastructure. Those domains carry deep operational complexity, continuous compliance, and reliability requirements that are easy to underestimate and painful to own.

    Here’s how this plays out for me. I would never build my own blogging platform. I moved from WordPress to Ghost, because publishing isn’t where I differentiate, and the long tail of upgrades, security, and performance is a drag on focus. The platform does the job, my audience gets a better experience, and my team avoids owning commodity maintenance work.

    On the other hand, I did build my own task management system—despite the abundance of excellent tools like Trello, Evernote, and OmniFocus. For me, tasks, notes, and workflows are deeply personal and idiosyncratic. I wanted my system to reflect how I think, plan, and communicate, with tight integration to my daily product rituals. In this case, the underlying data became the real product—and owning and controlling that data changed the equation.

    That’s the heart of the decision: When the underlying data becomes the real product, ownership matters. Task management, notes, and workflows evolve into a personalized operating system. The moment your data model represents your unique value—and your future differentiation—build vs. buy is no longer a tooling choice; it’s a strategy choice.

    AI is pushing this even further. Cheaper prototyping and “vibe coding” lower the cost of building. Tools like Claude Code and platforms from OpenAI make it viable to ship smaller, targeted tools that would have been uneconomical a few years ago. That expands the frontier of what teams can build without committing to a monolithic platform—and it puts pressure on vendors to improve data portability.

    Which brings me to vendor lock-in. Exports aren’t always enough. When I evaluate CRMs or course platforms, I look for more than CSV dumps. I want robust, well-documented APIs, webhook coverage, import/export parity, schema transparency, and a clear migration path. I’ve seen teams drown in brittle integrations with Salesforce or HubSpot, struggle to unwind course data from Teachable, or get stuck in signature workflows around DocuSign without a clean escape hatch. Portability is table stakes now.

    I treat build vs. buy as a discovery problem. Options are assumptions to test. On the build side, I run feasibility spikes: proof-of-concept integrations, latency checks, cost-to-serve models, and a sober read on maintenance. On the buy side, I trial vendors, not their marketing. I replicate a real workflow, test the edges, validate data portability, and simulate failure modes like vendor downtime or schema changes.

    A word of caution on complexity: “we can build anything” is not the same as “we should build this.” Long-lived products accumulate hidden complexity over time—security, privacy, performance, observability, SRE runbooks, QA automation, documentation, and compliance. Be honest about engineering capabilities and maintenance costs, especially when uptime and regulatory exposure are in play.

    My practical checklist looks like this: Is this core to our differentiation? Do we need to own the data model? How strong is data portability (APIs, webhooks, mapping, re-import)? What’s the true total cost of ownership over three years (people, ops, security, compliance)? Are there regulatory or reliability constraints better handled by a vendor? What’s the opportunity cost of not building something more strategic? And if we buy, what’s our exit plan?

    Ultimately, build vs. buy isn’t just about speed or cost—it’s about core value, data ownership, and long-term responsibility. AI lowers the barrier to building, but it doesn’t erase complexity. Treat build vs. buy decisions like any other discovery effort: test assumptions, prototype, and validate before committing. Ask not just can we build it, but should we own it?

    If you’re wrestling with vendor lock-in, fielding pressure to “just build it,” or rethinking your stack in an AI-first world, this lens will help you ask better questions before you commit. And if you’re exploring targeted builds alongside platforms like Stripe, Dropbox, Obsidian, or Ghost, I’d love to hear what’s working for you and where portability remains a hurdle.


    Inspired by this post on Product Talk.


    Book a consult png image
  • The Safety of Speed: 180 Deploys a Day, 12‑Minute Releases, 99.8%+ Availability

    The Safety of Speed: 180 Deploys a Day, 12‑Minute Releases, 99.8%+ Availability

    “Speed is not the enemy of safety; it is the prerequisite for it.” I live by this principle. In our organization, the average time from merging code to it being used by customers in production is just 12 minutes, and that short window is fundamental to how we build, ship, and learn.

    In January 2026, we are averaging 180 ships per workday – roughly 20 deployments every hour. Conventional wisdom suggests that to increase stability, you must slow down. I believe the opposite. Speed is not the enemy of safety; it is the prerequisite for it. Accumulating code creates risk; shipping small batches minimizes it. Shipping is our company’s heartbeat.

    Maintaining this frequency while targeting 99.8+% availability has required over a decade of focused investment in systems, principles, and processes. We protect the integrity of our systems through three layers of defense: an automated pipeline that is simple, reliable, and removes the need for manual intervention, a shipping workflow that promotes ownership and uses guardrails as accelerants, and a recovery model that optimizes for mitigating inevitable failures. Here’s how we’ve built each layer so that velocity is our greatest source of stability.

    While our platform consists of various services and frontend applications, I’ll focus here on our Ruby on Rails monolith. It is our core application and the one we deploy most frequently; we also deploy it to three different data‑hosting regions with independent pipelines. Our other services follow similar pipeline principles and safeguards, but the Rails monolith is the clearest example of how we ship at scale.

    The automated pipeline is designed to move code from merge to production as fast as possible while enforcing strict safety checks. It is fully automated, and the vast majority of releases require no human intervention—critical for CI/CD at high deployment frequency.

    Once an engineer merges code to GitHub, two things happen immediately. First, the build: we compile the Rails application and its dependencies into a deployable asset (a slug) in about four minutes. Second, parallel CI: our test suite runs alongside the build; through extensive optimization, parallelization, and test selection, the vast majority of CI builds finish in under five minutes.

    As soon as the slug is built, it’s deployed to a pre‑production environment. CI does not block the progression of the slug to pre‑production. Deploying to pre‑production takes around two minutes. This environment serves no customer traffic, but it is connected to our production datastores, mirrors our production infrastructure variants (e.g., web serving, asynchronous worker), and is configured so that requests exercise the pre‑release code and workers.

    Immediately after deployment, we run and await several automated approval gates. We verify that the application boots cleanly on hosts (boot test), confirm the parallel test suite passed (CI check), and execute functional synthetics using Datadog Synthetics on critical flows—such as loading or editing a Fin workflow. If any gate fails, the release is halted and does not go to production.

    Once approved, we promote the code to thousands of large virtual machines. A deployment orchestrator triggers these deployments simultaneously, while a decentralized, staggered rollout avoids changing the state of the entire fleet at the same millisecond. Within each machine, a rolling restart mechanism removes a process with old code from the serving path, lets it drain gracefully, and replaces it with a fresh process running the new code. From the moment a deployment starts, first requests are served by new code within roughly two minutes, and the vast majority of the global fleet updates transparently within six minutes. When restarts trigger on every machine, production unblocks so the next deployment can begin.

    We treat a stalled pipeline as a high‑priority incident. If the automated system rejects three consecutive release attempts, it pages an on‑call engineer. These are pre‑production blocks, but if the shipping lane stops moving, changes pile up—and our stability relies on building and shipping in small steps. The on‑call’s job is to restore flow so that tiny, safe, frequent updates continue to keep risk low.

    Our shipping workflow is built on extreme ownership: tools assist, but the engineer is accountable for quality and the decision to merge. I insist that you are present when you ship. The practical benefit of a 12‑minute deployment cycle is that engineers remain in the zone, focused on the problem they just solved, and ready to validate behavior as it goes live.

    Stylized rocket launch piercing dramatic cumulus clouds at sunrise, glowing vapor trail symbolizing fast yet controlled delivery; overlaid headline text reads 'The safety of speed' in the sky.
    A rocket lifts into a luminous sky, a metaphor for shipping code fast without breaking things, where precision, automation, and guardrails power 180 safe deployments a day.

    To support this, our deployment system sends Slack notifications the moment code is submitted and as it advances through stages, embeds direct observability links to relevant dashboards and logs in every PR and message, and prompts verification so engineers actively watch the dials and test features in production. It is not acceptable to rely on green builds. You’re expected to watch your change go live and if you’re not prepared to rollback, you’re not prepared to ship. We maintain a no‑blame culture: quick rollbacks and immediate reverts are signs of vigilance and ownership, not failure.

    We make extensive use of feature flags to turn deployment into a non‑event. By decoupling deployment (moving code to servers) from release (turning features on), we shrink the blast radius of change. Flags can be enabled for all customers, a specific subset, or disabled for everyone in under 60 seconds through our backend UI. Engineers can group flags into beta features and run phased rollouts; we also ensure flags work consistently across non‑monolith applications. In the past three months, we created over 560 flags—and we actively manage them to avoid permanent complexity.

    For complex refactors—especially when behavior should not change—we leverage GitHub Scientist, an open‑source experimentation library. It runs candidate logic (new code) in parallel with existing logic (old code) in production, instruments both paths for result and timing comparisons, and keeps existing behavior user‑visible. That means we can iterate on and validate new code under real load without risking the experience, then switch seamlessly when confident.

    When engineers need to go deeper before merging, they can generate a slug and deploy it to a virtual machine, detaching a running production host from the serving path and connecting for manual testing. They can also put a pre‑release slug on a serving machine that handles a small percentage of jobs or web requests. Single‑host validation lets us slice observability to those hosts, compare against the main release, and make low‑level changes safer. Staging is a simulation; production is reality. Testing on a single production host validates assumptions with real‑world data without risking the fleet.

    Our recovery model starts from a simple principle: stop monitoring systems; start monitoring outcomes. Traditional monitoring tells you if a server is healthy; we care whether customers are healthy. We rely on heartbeat metrics—vital signs that represent the core value our product provides—such as the rate at which messages and comments are created.

    Unlike standard uptime checks, heartbeat metrics are binary in spirit. If message send rates dip below baseline, it does not matter if infrastructure dashboards are green. Down is down, and if customers can’t do their job, uptime percentages are irrelevant. By tracking real‑world success rates as a high‑level signal, we catch subtle degradations that traditional alerting either misses or over‑alerts on.

    Because we ship in small, incremental steps and maintain previous releases on our virtual machines, our Time to Recover (TTR) is generally very fast. If a heartbeat metric drops or a critical anomaly is detected right after a ship, the system can trigger an automatic rollback, reverting to the release that was running 20 minutes ago—often restoring service before an engineer responds. For complex issues, engineers can initiate a manual rollback through our deployment UI; doing so also locks the production pipeline to prevent further releases while we investigate and remove problematic code.

    Resumption of service is not the end. Every incident prompts an incident review, and we don’t just fix the bug. We ask, “How did the machine allow this to happen?” Then we harden the system so it cannot happen again. This loop—fast shipping, fast recovery, rigorous learning—compounds resilience over time.

    This operating model aligns to DORA metrics: high deployment frequency, short lead time for changes, low change failure rate, and rapid time to restore service. It’s a CI/CD and SRE‑informed approach that converts speed into a defensive advantage rather than a liability.

    Shipping 180 times a day isn’t a vanity metric; it’s a deliberate choice to protect the customer experience. With a 12‑minute window from code to customer, the feedback loop is tight and engineers retain context—and accountability—for the immediate impact of their work. Maintaining this pace requires more than fast CI; it requires judgment, extreme ownership, disciplined use of feature flags, and a recovery model that monitors outcomes. We rely on human expertise, augmented by these layers of defense, to catch issues before they turn into customer pain. We don’t ship fast despite our need for stability; we ship fast to stay in control of change.


    Inspired by this post on The Intercom Blog.


    Book a consult png image
  • The Customer Feedback Playbook: AI-Powered Tactics I Use to Make Better Product Decisions

    The Customer Feedback Playbook: AI-Powered Tactics I Use to Make Better Product Decisions

    Customer feedback is the most reliable compass I have for product strategy and execution. Over the years leading product at HighLevel, I’ve built and refined a system that turns raw signals from users into clear, prioritized decisions our teams can confidently ship.

    A practical guide to collecting and using product feedback in product management (from AI tools to early-stage tactics) for better product decisions.

    My playbook starts with continuous discovery. I keep a steady flow of insights from sales calls, customer support threads, community forums, and in-product behavior so I can triangulate patterns rather than chase loud anecdotes. This mix of quantitative and qualitative data helps me separate urgent noise from strategically meaningful trends.

    On the quantitative side, I rely on product analytics to ground the conversation. Amplitude analytics gives me activation, retention cohorts, and feature engagement, while controlled experiments and A/B testing validate whether an idea actually moves a target metric. Tying these signals to specific customer segments helps me see where product-led growth is working—and where it’s stalling.

    For qualitative insight, I combine in-app guides and lightweight surveys (via tools like Pendo) with structured interviews and support escalations (often surfaced through platforms like Intercom). I map problems using the Kano Model to understand which requests are basic expectations, which are performance drivers, and which are potential delights. This keeps our roadmap focused on outcomes, not just outputs.

    AI now accelerates the synthesis step. With LLMs for product managers in my AI product toolbox, I summarize interview transcripts, cluster themes across thousands of notes, and quantify sentiment without losing nuance. I still review raw artifacts to avoid hallucinations and preserve context, but AI reduces the time from signal to insight dramatically—freeing me to spend more energy on judgment and storytelling.

    In early-stage contexts, I bias toward speed and proximity to users. I schedule founder- or PM-led discovery calls weekly, instrument product tours early, and launch scrappy in-product prompts to validate demand before over-investing. When data is sparse, I focus on high-signal channels (power users, churned customers with qualified use cases) and document crisp problem statements that connect directly to activation, retention analysis, and revenue outcomes.

    Prioritization ties everything together. I translate insights into hypotheses aligned to outcomes vs output OKRs, then pressure-test them with feasibility and strategic fit. We run small, measurable experiments, track deltas in activation and retention, and adjust the product roadmapping and sprint planning cadence based on what the data and customers teach us.

    This approach builds trust with stakeholders and creates empowered product teams. By grounding decisions in a transparent trail of feedback, analytics, and experiments, we reduce thrash, move faster, and—most importantly—ship product moments that customers value.

    If you’re refining your own feedback engine, start by instrumenting the basics, set a weekly discovery rhythm, and let AI handle the heavy lifting on aggregation and synthesis. The compounding effect is real: better insights lead to better bets, which lead to better outcomes for your users and your business.


    Inspired by this post on Product School.


    Book a consult png image
  • Real-Time Analytics for Financial-Services Contact Centers

    Real-Time Analytics for Financial-Services Contact Centers

    Your contact center can have excellent reporting and still react too late. A weekly chart may explain why transfers rose, authentication failed, or members called again. It cannot recover the interaction that is already going wrong.

    That is the practical case for real-time analytics in financial services: detect a useful signal while there is still time to change the outcome, then deliver a safe action to the person or system that can take it. The goal is not a faster dashboard. It is a shorter path from behavior to decision to resolution.

    Key takeaways

    • Define real time against the decision window. A signal is timely only if it arrives before the next useful action expires.
    • Start with journeys that create material cost or dissatisfaction, such as lost cards, fraud disputes, loan-status requests, password resets, and payment issues.
    • Instrument the outcome as carefully as the interaction. Otherwise, you can see that an alert fired without knowing whether it helped.
    • Activate insights inside routing, agent, supervisor, and follow-up workflows. A separate analytics destination creates another queue for people to monitor.
    • Measure resolution, repeat demand, and guardrails. Activity metrics such as alerts generated or prompts displayed are diagnostics, not business outcomes.
    • Build privacy controls, consent handling, access restrictions, and auditability into the decision loop before expanding its reach.

    Define real time as a decision contract

    Real time is not a universal refresh rate. It is a promise that a signal will reach its decision point while an effective response is still possible. An agent-assist prompt must arrive before the conversation moves past the relevant step. A routing signal must arrive before the interaction enters the wrong queue. A proactive follow-up must arrive before the member has to contact you again.

    This distinction prevents an expensive architecture mistake: streaming every event without deciding what any event should change. Some information needs immediate activation. Some belongs in a supervisor review. Some is useful only for longer-term journey redesign. Treating all three as equally urgent increases cost and noise without improving service.

    Before building a pipeline, write a decision contract for each use case. The contract should connect the signal to an owner, action, deadline, guardrail, and measurable outcome.

    Decision-contract fieldQuestion to answerIllustrative fraud-routing example
    TriggerWhat observable event or state starts the decision?A potential fraud signal appears during an active interaction.
    DecisionWhat choice becomes possible because of the signal?Whether the interaction should receive specialized handling.
    ActionWhat should the workflow do?Prioritize the appropriate route and carry the available context forward.
    OwnerWho or what is accountable for acting?The routing workflow, with a supervisor responsible for defined exceptions.
    Action windowWhen does the intervention stop being useful?Before the interaction is transferred or the relevant verification step is completed.
    GuardrailWhat must never be bypassed?Required compliance steps, authorized data access, and a clear human override.
    OutcomeHow will you know whether the action helped?Resolution without an avoidable transfer, escalation, or repeat contact.

    A contract also exposes weak use cases early. If nobody can name the action, the signal is probably reporting data rather than real-time decision data. If the action has no owner, it will become an ignored alert. If the outcome is merely that a prompt appeared, the team has confused delivery with impact.

    The underlying platform still needs to bring together behavior across voice, chat, IVR, email, and in-app journeys. But unification is useful only when identity, journey state, and timing remain coherent across those channels. A member who fails authentication in the app and then calls should not look like two unrelated problems.

    Instrument five costly journeys before the whole contact center

    A complete contact-center data program is too broad a starting point. It invites months of taxonomy work before anyone changes an outcome. Begin with the five journeys most likely to concentrate cost or dissatisfaction: lost card, fraud dispute, loan status, password reset, and payment issue.

    This is not a mandate to automate all five at once. Rank them using the evidence you already have: contact demand, transfers, repeat contacts, unresolved cases, authentication failures, and escalations. Choose the journey where a specific intervention is both valuable and operationally feasible.

    For the chosen journey, create an outcome card before defining events:

    • Member intent: What is the person actually trying to complete?
    • Observable start: Which event shows that the journey has begun?
    • Resolution state: What evidence means the need was completed, not merely that the interaction ended?
    • Failure states: Where can authentication, routing, handoff, self-service, or follow-up break down?
    • Intervention: Which failure can the contact center change while the journey is active?
    • Outcome and guardrails: Which result should move, and which compliance or experience measures must not deteriorate?

    The event model should then describe the journey rather than mirror the screens of each tool. At minimum, preserve a pseudonymous member reference, interaction reference, channel, event time, journey, journey step, authentication state, transfer or escalation state, intervention, and outcome. If intent or risk is inferred, record the version and confidence associated with that inference. If an agent accepts, dismisses, or overrides guidance, capture that response too.

    Consistent definitions matter more than a large event count. Decide what a transfer is, when a new contact belongs to an existing journey, and what qualifies as resolution. Version those definitions. Otherwise, a changed IVR flow or CRM configuration can appear to improve performance simply because the instrumentation changed.

    Instrument the negative space as well. If the member disappears from a self-service flow, the absence of a completion event is not enough to explain why. Capture the last meaningful step, the failure category when it is available, and whether the member moved to another channel. That is how you distinguish successful deflection from abandonment followed by a call.

    Do not copy every transcript, recording, credential, or financial value into a broadly accessible analytics stream merely because the technology allows it. Use minimized attributes and controlled references where they are sufficient. Keep restricted evidence behind narrower permissions. Availability is not the same as permission.

    Put the decision inside the workflow

    The last mile determines whether real-time analytics changes performance. An insight that requires an agent to open another application, interpret a graph, and decide what it means has already lost much of its value. Activation belongs in the systems where agents, supervisors, and automated workflows already act.

    Four activation patterns cover most of the useful surface area:

    • Routing: Use intent, journey state, or a potential risk signal to direct the interaction to the appropriate skill. High-risk transactions can be prioritized for specialized handling, but the signal should not silently become a final financial or fraud decision.
    • Agent guidance: Surface the next relevant step, missing compliance action, or known journey context during the interaction. Explain why the guidance appeared, avoid conflicting prompts, and give the agent a defined way to dismiss or override it.
    • Supervisor intervention: Alert on a material pattern with an attached playbook. The notification should identify what changed, which interactions are affected, which action is available, and when the alert expires.
    • Member follow-up: Trigger a relevant message or next step after an unresolved interaction. The follow-up should close a known gap, not merely create another generic communication.

    Self-service requires particular care. If balance inquiries or password resets are overwhelming queues, routing eligible demand to self-service may help. But containment is not the same as resolution. Measure whether the member completed the task and whether another contact followed. A journey that exits the IVR but returns through chat has changed channels, not disappeared.

    Each activation needs a safe fallback. If identity is uncertain, the signal is stale, or a dependency is unavailable, revert to the normal approved workflow. Do not let a broken analytics path invent a route or compliance step. Log the fallback so operational teams can distinguish a bad recommendation from a recommendation that never reached its destination.

    Alert design deserves the same product discipline as customer-facing design. Deduplicate repeated signals, suppress guidance after the relevant action window, and route exceptions to a named owner. A queue full of low-value alerts trains people to ignore the important ones.

    The technology choice comes after these workflow requirements. CRM integration should carry member and journey context forward, while the analytics layer captures behavior and evaluates interventions. Products such as Amplitude, Pendo, and Intercom may instrument digital touchpoints, but the build-versus-buy decision should turn on your decision contracts: identity reconciliation, activation latency, workflow integrations, experimentation, access control, auditability, and operational reliability.

    I would not approve a platform solely because its dashboards are polished. Ask the vendor or internal platform team to demonstrate an end-to-end loop using one of your journeys: signal received, decision evaluated, workflow changed, outcome captured, and audit record produced. That sequence is the product you are buying or building.

    Measure outcomes, experiment carefully, and govern the loop

    Real-time analytics does not reduce operating cost by itself. It changes a decision, which changes a journey, which may change demand and resolution. Your measurement model has to preserve that chain.

    Use a scorecard that separates outcomes from activity

    Choose a primary outcome that matches the journey. Useful candidates include first-contact resolution, repeat-contact reduction, containment, and average time to resolution. Define the eligible population and exclusions explicitly so the metric cannot drift when channel mix changes.

    Then organize the remaining measures by purpose:

    • Journey outcome: Was the member’s need resolved, and did it stay resolved?
    • Operational mechanism: Did transfers, escalations, routing failures, or authentication failures change?
    • Intervention delivery: Was the recommendation generated, delivered in time, accepted, dismissed, or overridden?
    • Experience and compliance guardrails: Were required steps completed, and did complaints, corrections, or manual exceptions increase?
    • System health: Was the signal complete, timely, correctly joined to the journey, and available when the workflow needed it?

    Average handle time can be diagnostic, but it should not become the automatic objective. A shorter interaction that leaves the member unresolved may simply move cost into a repeat contact. Resolution and repeat demand tell you whether the system removed work or postponed it.

    Test the intervention, not the existence of the data

    Controlled experiments can show whether a changed IVR path, authentication step, or post-contact follow-up improves the chosen outcome. Define the minimum detectable effect before the test so the team knows which improvement would justify a decision and whether the eligible volume can support a useful result.

    Choose the unit of assignment deliberately. If the same member can return during the measurement window, assigning different experiences by interaction can contaminate the comparison. A member-level assignment may be cleaner. If the intervention changes an entire queue or supervisor workflow, individual assignment may be impractical; use a rollout design that reflects how the operation actually works.

    Do not randomize away mandatory compliance controls. When an intervention affects fraud handling, sensitive disclosures, or consequential routing, begin in observe-only mode, review false positives and overrides, and use an approved rollout. Experiment with the delivery or operational design only where compliance and legal owners confirm that variation is permissible.

    Make governance part of the product

    Privacy and compliance cannot sit downstream of activation. A real-time system makes decisions from live member behavior, so access controls, consent management, and audit trails belong in the initial architecture.

    For every decision contract, document the permitted purpose of the data, who can access it, where it is retained, how consent is honored, what enters the audit record, and who approves changes. Do not infer that an attribute is lawful to use because it exists in the CRM. The relevant compliance and legal owners must determine acceptable use for the jurisdiction, product, and member context.

    Auditability should reach beyond data access. Preserve enough context to reconstruct what signal arrived, which rule or model version evaluated it, what action was recommended, what the workflow did, whether a person overrode it, and what outcome followed. That record supports incident investigation, performance review, and defensible change management.

    Run the operating cadence through a product trio spanning operations, data, and compliance. In each review, ask which decisions fired, which arrived too late, which actions were ignored, which outcomes changed, and which guardrails moved. Retire noisy signals. Refine ambiguous definitions. Promote successful interventions gradually. This keeps the program focused on decision quality instead of dashboard volume.

    Your next step is small and concrete: choose the highest-cost or highest-friction journey among the initial five, write its decision contract, and run the signal in observe-only mode. When the team can trace the path from trigger to approved action to outcome, activate the narrowest useful intervention. Expand only after that loop is measurable, reliable, and governable.

    References

  • From Product Strategy to Adoption: The Solutions Engineering Loop

    From Product Strategy to Adoption: The Solutions Engineering Loop

    Your roadmap can be coherent, the launch can go smoothly, and adoption can still stall. The usual gap is not a lack of effort. Product strategy, field discovery, technical validation, and post-launch adoption were treated as separate activities, so each team learned something that the others could not use.

    You can close that gap by treating solutions engineering as part of the product learning system. The goal is not to give sales more technical coverage or product managers a larger queue of requests. It is to turn real customer conditions into testable product decisions, then follow those decisions until customers reach and repeat the intended outcome.

    Key takeaways

    • Define adoption as an observable customer behavior before you approve features or plan a launch.
    • Ask solutions engineers to capture evidence in a consistent format, separating what happened from what the team thinks it means.
    • Treat demos and proofs of value as experiments with a hypothesis, baseline, value event, and decision rule.
    • Measure the entire path from promise to repeated value. A login, click, or feature visit is rarely sufficient evidence of adoption.
    • Route each adoption problem to the right response: positioning, enablement, onboarding, integration, product design, or core capability.
    • Carry launch learning into roadmap and operating reviews so that adoption changes product decisions instead of becoming a reporting exercise.

    Write the adoption contract before debating the roadmap

    Product strategy becomes operational only when it specifies whose behavior should change, why that change matters, and what evidence would show that the product created value. Without that translation, teams can agree on a strategic theme while holding incompatible ideas about what success means.

    Write an adoption contract for every significant product bet. This is not a legal document or a long requirements package. It is a compact agreement among product, engineering, design, solutions engineering, sales, and customer success about the outcome being pursued.

    • Target user: Name the persona and operating context. A broad account segment is not enough when different people inside the account perform different jobs.
    • Starting condition: Describe the workflow, constraint, or workaround that exists before the change. This gives you a baseline against which the new experience can be judged.
    • Desired outcome: State the progress the customer wants, not the capability you intend to ship.
    • Value event: Identify the observable behavior showing that the user reached meaningful value. Opening a page may indicate exposure; completing the intended workflow is stronger evidence.
    • Repeat condition: Define what sustained use looks like at the natural cadence of the workflow. Daily activity is useful only when the job itself occurs daily.
    • Decision evidence: Agree on the metric, qualitative evidence, technical constraints, and guardrails that will determine whether to continue, change, or stop the bet.

    Suppose a product automates part of an operations workflow. Increase feature adoption is too weak to guide a team. A more useful contract says that the operations manager can complete the target workflow, obtain the intended result, and return to it when the job recurs without relying on the old workaround. The team can now examine setup, permissions, integrations, comprehension, completion, and repetition as separate parts of the same outcome.

    This contract also changes roadmap conversations. A feature request no longer competes on enthusiasm alone. You can ask which persona it serves, which blocked outcome it unlocks, what evidence supports the problem, and which customer behavior should change if the solution works. If those questions have no answers, the request needs more discovery before it needs an estimate.

    The solutions engineer is especially valuable here because the role can translate ambiguous requirements, technical conditions, and customer goals into product and go-to-market decisions. Bring that perspective in while the adoption contract is still editable. Waiting until a sales demonstration turns solutions engineering into a downstream interpreter of decisions it could have helped improve.

    Keep the contract stable enough to align the organization, but do not protect it from evidence. If customers repeatedly pursue a different outcome, struggle with an unanticipated dependency, or assign value to another part of the workflow, revise the contract explicitly. Silent reinterpretation is dangerous because every function can declare success against a different definition.

    Turn solutions engineering into a field evidence system

    A solutions engineer sees details that rarely survive a conventional feature request: the customer’s existing architecture, the sequence of the workflow, the people involved in approval, the point at which a demonstration loses credibility, and the difference between a stated objection and an actual blocker. That information can improve strategy, but only if the organization captures it in a form that product teams can compare and act on.

    Do not send raw call notes into a backlog and call it discovery. Use a consistent field record containing:

    • The persona, account context, and job being attempted.
    • The customer’s desired outcome and current way of achieving it.
    • The specific moment where the current product or proposed solution created friction.
    • The relevant technical condition, such as an integration, data, permission, security, or scalability constraint.
    • The evidence observed: customer behavior, workflow review, demonstration response, deployment result, or instrumented product data.
    • The proposed interpretation and any plausible alternative explanation.
    • The next question or test that would reduce uncertainty.

    Within that record, separate observation, interpretation, and request. They are not interchangeable.

    • Observation: The administrator could not complete configuration because a required permission was unavailable.
    • Interpretation: The permission model may not match how this persona operates.
    • Request: Add a new administrative role.

    The observation is evidence. The interpretation is a hypothesis. The request is merely a candidate solution. Keeping them separate prevents the first proposed feature from becoming the definition of the problem.

    Product leaders also need to protect this system from deal gravity. A commercially urgent request can be important without representing a widespread product problem. Conversely, a small implementation detail can reveal a structural barrier affecting an entire target persona. Evaluate field evidence with questions that make those differences visible:

    • Does the problem recur for the same persona, workflow, or environment?
    • Does it block the value event, or does it affect a peripheral preference?
    • Is the root cause a missing capability, product usability, configuration, integration, positioning, or customer process?
    • Does the problem appear in the strategic segment the product is designed to serve?
    • Can a smaller or reversible test distinguish competing explanations?
    • What roadmap decision would change if the hypothesis were confirmed?

    The last question is a useful filter. If no plausible answer would change a decision, the team may be collecting interesting information rather than decision-grade evidence.

    Bring the strongest records into the product trio’s learning cycle. Field evidence can then sharpen roadmaps, sprint planning, positioning, integration decisions, and stakeholder conversations. The solutions engineer contributes technical discovery and customer context. Product management synthesizes patterns and owns tradeoffs. Design examines behavior and workflow. Engineering tests feasibility and exposes architectural consequences. Sales contributes commercial context without converting urgency into automatic priority. Customer success adds evidence about repeated use after the initial deployment.

    This arrangement does not require every customer conversation to become a committee meeting. It requires a common evidence format, clear decision ownership, and a route by which meaningful field learning reaches the people making product choices.

    Run demos and proofs of value as product experiments

    A polished demo can prove that a presenter understands the product. It does not prove that a customer can adopt it. Even a successful technical pilot can produce a false positive if the solutions engineer performed work that the target user cannot repeat, the environment was unusually controlled, or the team never defined what customer value would look like.

    Design every proof around a falsifiable outcome hypothesis. A practical structure is:

    For [persona] in [context], enabling [change] should produce [observable behavior] because [value mechanism]. The hypothesis is supported if [agreed evidence] meets [predefined decision rule] without violating [guardrail].

    The brackets force useful decisions. You have to name the user, the operating condition, the expected behavior, and the reason the behavior represents value. You also have to decide what would count as failure before enthusiasm about the result changes the standard.

    Build the proof plan around the following elements:

    • Baseline: Document how the customer handles the job now, including meaningful friction and dependencies.
    • Scope: State which workflow, persona, environment, and constraints the proof includes. Anything outside that boundary remains unvalidated.
    • Value event: Identify the customer action or result that demonstrates progress toward the desired outcome.
    • Instrumentation: Decide which product events and qualitative observations will show where users advance or stop.
    • Enablement: Record how much assistance the customer receives. Heavy expert intervention can validate technical feasibility while leaving self-service adoption unproven.
    • Decision rule: Define what evidence will justify progression, iteration, repositioning, or stopping.
    • Learning owner: Name the person responsible for translating the result into a product, go-to-market, or adoption decision.

    A compact learning record can follow Insight – Hypothesis – Experiment – Metric. The sequence matters. A customer comment produces an insight, not a roadmap commitment. The insight leads to an explanation that can be tested. The test produces evidence against a metric or decision criterion.

    Capture objections with the same discipline. An objection about missing functionality may actually reflect an unclear value proposition, concern about integration effort, lack of trust in the output, or a mismatch between the buyer and the eventual user. Ask what the customer is unable or unwilling to do because of the concern. That question moves the discussion from the requested feature to the blocked behavior.

    At the end of a proof, classify what was learned:

    • Value validated: The target persona reached the intended outcome under representative conditions.
    • Need validated, capability missing: The problem matters, but the product cannot yet support the required workflow.
    • Capability works, adoption friction remains: The product can deliver value, but setup, comprehension, trust, or workflow design prevents the user from reaching it reliably.
    • Technical path blocked: An integration, architecture, data, permission, or operational constraint prevents deployment.
    • Positioning mismatch: The product can do what was promised, but the outcome is not important enough for the target persona or was framed in the wrong terms.
    • Evidence inconclusive: The test did not represent the intended user or environment, or the decision criteria were not measurable.

    These outcomes lead to different work. A positioning mismatch belongs in messaging and discovery. Adoption friction may require onboarding or product design. A recurring technical blocker may deserve roadmap investment. An inconclusive test deserves a better test, not a success story.

    Demos and early deployments become high-signal learning mechanisms when their evidence returns to product strategy instead of ending in the opportunity record. That closed loop is what allows solutions engineering to improve both customer execution and the underlying product.

    Measure adoption as a path, then act at the break

    Adoption is not a single metric. It is a sequence that begins with a credible promise and ends when the customer repeatedly receives value. Measuring only the end hides the reason users failed. Measuring only clicks overstates progress.

    Map the path for the persona named in the adoption contract:

    • Promise understood: The user or buyer can connect the product to a relevant outcome.
    • Entry: The intended user begins setup or enters the target workflow.
    • Readiness: Required data, permissions, integrations, and configuration are in place.
    • Activation: The user reaches the first meaningful value event.
    • Repetition: The user returns when the underlying job recurs and reaches value again.
    • Expansion: Appropriate users, workflows, or capabilities are added because the initial value is credible.
    • Retention: The product remains part of the operating workflow because it continues to produce the desired outcome.

    Instrument enough of this path to locate the break. For each event, retain the eligible persona or account, relevant product context, action attempted, result, and connection to the intended outcome. Always state the denominator. Activation among configured users answers a different question from activation among all purchased accounts.

    Use metrics such as time-to-value, daily active usage, and feature adoption only when they match the product’s natural workflow. A monthly administrative task should not be judged by daily activity. A high feature-visit count does not establish value if users repeatedly enter the feature because they are confused. Pair behavioral data with the qualitative context collected during proofs, implementations, and customer conversations.

    Observed patternQuestion to investigateLikely response area
    Interest is high, but eligible users do not beginIs the value proposition relevant and credible to this persona?Positioning, targeting, or enablement
    Users begin, but readiness failsWhich data, permission, configuration, or integration dependency is blocking progress?Onboarding, implementation, or platform capability
    Users complete setup, but do not reach the value eventDoes the workflow lead clearly to the promised outcome?Product design, guidance, or core capability
    Users activate, but do not returnIs the job recurring, and was the first outcome valuable enough to change behavior?Discovery, workflow fit, trust, or value proposition
    Adoption differs sharply by persona or contextWas the product designed and positioned for the segment that is actually succeeding?Segmentation, strategy, or packaging
    Usage is high, but retention or customer outcomes remain weakIs activity measuring value, required effort, or repeated friction?Metric design, product quality, or outcome alignment

    Match the intervention to the break. Use onboarding checklists, empty-state prompts, in-app guides, and product tours when the user needs contextual direction. Do not use a tooltip to conceal a broken permission model, an unreliable integration, or a workflow that does not create enough value. Guidance can reduce comprehension friction; it cannot repair a missing capability.

    When you test an intervention, define the intended behavior change and success criterion in advance. Segment the result by the persona and context in the adoption contract. An aggregate improvement can hide a deteriorating experience for the strategic user, while a neutral aggregate can hide a strong response in the segment the product is meant to serve.

    Complete the loop with a compact adoption review. After a launch or concentrated batch of customer learning, hold the internal readout while the context is still usable. A practical pattern is to run the readout within a week and convert learning into a 30-60-90-day experiment plan. The review should show:

    • The adoption contract and any evidence that challenges it.
    • Progress through the journey, segmented by the intended persona and context.
    • The strongest field observations, with interpretations kept separate.
    • The active hypotheses and experiments.
    • The product, positioning, enablement, integration, or onboarding decision each experiment may change.
    • The owner responsible for making that decision and returning the result to the group.

    Use operating reviews and QBRs to evaluate outcomes, not to count shipped features or completed guides. Ask which hypothesis was confirmed, which constraint was removed, where customers still stop, and what the organization will do differently. If an experiment has no route to a decision, revise it or stop it.

    For your next significant product bet, start before the launch plan. Write the adoption contract, ask a solutions engineer to challenge it with field conditions, and define the evidence that would change your mind. That small discipline gives every later conversation – roadmap, demo, onboarding, analytics, and QBR – the same customer outcome to pursue.

    References

  • Why Codeless Product Analytics Wins: Faster Insights, Fewer Bottlenecks, Bigger PLG Results

    Why Codeless Product Analytics Wins: Faster Insights, Fewer Bottlenecks, Bigger PLG Results

    Every quarter, I watch product teams move from gut feel to data-informed decisions—until instrumentation bottlenecks slow them to a crawl. That’s why I’ve become an advocate for codeless analytics: it removes the dependency on engineering sprints for basic event tracking and lets teams answer product questions in hours, not weeks.

    We explain what codeless analytics are, why (and how) Pendo supports them, plus responses to the top three myths about low-code/no-code solutions.

    Here’s how I frame it with my teams: codeless analytics enables product managers, designers, and customer success to tag features visually, track interactions, and analyze adoption without shipping code. The goal isn’t to replace engineered events; it’s to accelerate discovery, speed up iteration, and reduce context-switching for developers. In practice, this means cleaner prioritization, faster validation of hypotheses, and tighter product-led growth loops.

    Why Pendo? In my experience, Pendo’s codeless model shortens the distance from question to insight. Visual tagging makes event setup accessible, in-app guides and product tours let us experiment with onboarding and activation, and governance controls ensure data remains trustworthy across teams. The result is a unified analytics approach where we reserve custom instrumentation for complex logic while using codeless tracking for everyday product questions.

    Let’s address the top three myths I hear most often. Myth 1: “No-code is only for simple use cases.” In reality, most decisions we make weekly—feature adoption, path analysis, funnel drop-offs, and retention analysis—do not require custom code. Codeless analytics handles these well, and when we need deeper context (like server-side events), we complement it with engineered tracking. It’s a both/and, not an either/or.

    Myth 2: “Codeless data isn’t accurate.” Accuracy comes from governance, not the method. I set clear standards: naming conventions, tagging reviews, ownership, and periodic audits. With disciplined process, codeless tracking yields consistent, decision-grade data. The added benefit is visibility—non-technical stakeholders can validate the instrumentation themselves, reducing misalignment.

    Myth 3: “Engineers must instrument everything to scale.” Engineering time is precious; we should spend it on differentiated capabilities, not on routine click tracking. Codeless analytics scales by empowering product teams to self-serve, while engineering focuses on back-end, performance, and edge cases. When paired with a unified analytics platform and clear data contracts, this model scales cleanly across product lines.

    For teams adopting this approach, I recommend a simple operating model: define your core product questions up front, tag features aligned to those questions, connect insights to in-app guides for experiments, and measure user activation and retention continuously. Whether you run Pendo alongside Amplitude analytics or within a broader unified analytics platform, the key is to keep the insight-to-action loop tight.

    The future of product analytics is codeless because it puts insights where they belong—directly in the hands of the people designing the experience. When we remove bottlenecks, we learn faster, ship smarter, and drive measurable PLG impact. That’s how we turn product analytics from a reporting function into a competitive advantage.


    Inspired by this post on Pendo – Best Practices.


    Book a consult png image
  • AI-Powered Growth Loops: Transform Your PLG Product into a Self-Optimizing Engine

    AI-Powered Growth Loops: Transform Your PLG Product into a Self-Optimizing Engine

    Across my teams and portfolio, I’m watching AI fundamentally reshape product-led growth—from static funnels and one-off playbooks to adaptive, compounding growth loops that learn in real time. The shift isn’t just technological; it’s an operating model change that rewards continuous discovery, rigorous instrumentation, and outcome-driven product strategy.

    "Learn how AI is transforming PLG with a new generation of growth loops that can turn your product into a self-optimizing platform." That line captures what I’ve been building toward: systems that sense user intent, decide the next best action, act contextually, and learn to improve the loop with every interaction.

    Here’s the core pattern I rely on. First, sense: unify product analytics and behavioral signals (think Amplitude analytics, Pendo events, Intercom conversations) into a single, queryable, privacy-safe layer. Second, decide: apply AI Strategy—LLMs for product managers, rules, and retrieval—to segment users by intent and probability of success. Third, act: deliver in-app guides, product tours, tooltips, or personalized nudges that accelerate user activation and time-to-value. Finally, learn: run A/B testing with a clear minimum detectable effect (MDE), then feed outcomes back into the model for continuous optimization.

    Activation is where the gains start compounding. With gen ai, I can auto-generate tailored onboarding checklists, dynamic walkthroughs, and contextual help that adapts to the user’s role, data maturity, and current friction points. We’ve moved from generic product tours to precision guidance that updates based on real-time behavior—often lifting first-week activation and shortening time-to-first-value without adding support load.

    Experimentation is the governor that keeps speed and quality in balance. I instrument every growth loop end to end and pair eval-driven development with A/B testing to confirm incremental impact. Amplitude analytics gives me cohort views and path analysis; Pendo or Intercom can deliver in-app variants; a unified analytics platform closes the loop on retention analysis so I’m not optimizing for click-through at the expense of long-term value.

    Retention and expansion are where AI shines as a compounding engine. Retrieval-first pipeline patterns allow instant, contextual support that deflects tickets and boosts perceived product competence. Agentic AI can orchestrate next-best actions—prompting power users toward advanced features, surfacing value moments, or timing expansion prompts when success signals appear. The result is a virtuous cycle: better guidance drives deeper adoption, which improves model accuracy, which unlocks more relevant guidance.

    None of this works without guardrails. I bake in AI risk management from the start: strict data governance, privacy-by-design, human-in-the-loop review for high-impact actions, transparent user consent, and continuous drift monitoring. The goal is reliable automation that users trust—augmented by clear fail-safes when confidence drops.

    Operationally, I anchor the work in empowered product teams and product trios, focus on outcomes vs output OKRs, and practice continuous discovery to validate problems and solutions before scaling. The baseline metrics I watch: activation rate, time-to-value, week-four retention, PQL/PQA conversion, expansion revenue, and support deflection—each tied to a specific growth loop hypothesis.

    If you’re starting fresh, begin with the highest-leverage loop: user activation. Instrument your onboarding journey, define the critical path to value, ship two to three personalized interventions, and measure impact with a precommitted MDE. Scale what wins, drop what doesn’t, and iterate weekly. Once activation is compounding, extend the same approach to adoption depth, collaboration features, and expansion triggers.

    In practical terms, AI-powered PLG is less about flashy features and more about disciplined feedback loops. Build the sensing fabric, keep the decision layer auditable, ship small actions quickly, and treat learning as the product. Do that, and your product doesn’t just grow—it becomes a self-optimizing platform.


    Inspired by this post on Product School.


    Book a consult png image