Skip to main content

Command Palette

Search for a command to run...

Deployment, Monitoring, and the Work Nobody Talks About After Launch

Updated
13 min read
Deployment, Monitoring, and the Work Nobody Talks About After Launch
R
Senior Product Manager writing about two sides of AI: building AI products that work at scale, and using AI to work more effectively as a PM. I share frameworks for Applied AI product management—economics, evaluation, agent design, responsible deployment—alongside practical guides for AI-powered productivity, workflows, and decision-making. If you're building AI products or figuring out how to leverage AI in your PM workflow (or both), this is for you. Currently based in Seattle.

Part 11 of the Applied AI Product Management series. Post 10 covered how to scope and ship an AI feature. This post covers what happens after you ship it. For most products, that's where the real work begins.


A team shipped a content recommendation model and celebrated. Offline accuracy had been strong. The A/B test showed a 12% lift in engagement. Leadership was happy. Three months later, a data engineer noticed that one of the upstream data feeds had quietly changed its schema six weeks after launch. The model had been running on partially corrupted input for six weeks. Engagement numbers had drifted downward, but slowly enough that nobody flagged it as a model problem. It looked like normal seasonal variation.

The model hadn't degraded. The inputs had. And there was no instrumentation to catch the difference.

This is the story of most AI product post-mortems. Not a dramatic failure at launch. A slow, invisible degradation that compounds for weeks or months before anyone connects the symptoms to the cause. By then, users have already formed an opinion about the feature, and reversing that impression is harder than the technical fix.

The model is maybe five to ten percent of an ML system. The other ninety percent is data validation, infrastructure, monitoring, and the continuous improvement loops that keep predictions useful after day one. Launch is not the finish line. It's the starting gun for all of that.


Getting it live safely

How you deploy matters as much as what you deploy. The strategies that reduce risk are standard in mature engineering orgs and underused in teams new to ML products.

Shadow mode runs your new model in production alongside the existing system without showing its outputs to users. Both models process every request. You log and compare their outputs. Users experience no change. You get real production data on the new model's behavior before anyone depends on it. This is how Google tests search ranking changes and how Tesla validates Autopilot improvements before they reach drivers. The investment is instrumentation time. The return is knowing exactly how the new model behaves on real inputs before the blast radius of a bad deployment is anything more than a log file.

Canary releases expose the new model to a small percentage of users, typically one to five percent, while the rest continue on the current version. You monitor both groups closely. If the new model underperforms, the rollback affects a fraction of users and takes minutes rather than hours. The discipline that matters here is defining your rollback triggers before the release, not during it. A model that drops task completion rate by more than three percentage points, or increases error rate above two percent, automatically rolls back. Written down. Agreed in advance. The teams that define rollback criteria after something goes wrong spend those critical minutes in disagreement rather than action.

Gradual rollout extends the canary approach over days or weeks rather than hours. One percent on day one. Five percent on day three. Twenty-five percent on day seven. Fifty percent on day ten. Full release on day fourteen if no triggers fire. This is the right deployment strategy for any model change with meaningful user impact. It's not slower than a full release. It's faster than a full release that has to be rolled back.

Feature flags decouple deployment from release. The new model ships to production in a disabled state. A configuration toggle, controlled externally, switches it on for specific user segments without a new deployment. This means you can disable a misbehaving model in seconds rather than waiting for a deployment cycle. Every AI feature should ship behind a feature flag. Not because something will go wrong. Because when something does go wrong, the response time is seconds instead of hours.


The problem with end-to-end accuracy

Most AI products report a single accuracy number. The pipeline produced a good output or it didn't. The model is at 87% or it isn't.

That number is almost useless for improvement.

Consider a four-stage ML pipeline: a retrieval stage that finds relevant documents, a ranking stage that orders them by relevance, a generation stage that produces a response, and a validation stage that checks the response for quality. Each stage receives the output of the previous one. Each stage can introduce errors that compound downstream.

If the end-to-end accuracy is 74%, you know something is wrong. You don't know where. Is retrieval pulling the wrong documents? Is ranking ordering them incorrectly? Is generation hallucinating details the retrieved documents didn't support? Is validation failing to catch it? Each of those diagnoses requires a completely different fix. Without stage-level measurement, you're debugging blind.

The pattern that surfaces this problem: a pipeline that looks acceptable end-to-end is hiding a stage-level failure that's creating unnecessary work for downstream stages to partially compensate for. Retrieval at 94% hands off to ranking, which works hard to reorder a set of partly irrelevant documents. Generation does its best with the imperfect ranked set. Validation catches some of the downstream errors but not all. The end-to-end number is 74% and it looks like a generation problem. It's a retrieval problem.

The observability framework that fixes this is stage-specific accountability. Each stage in the pipeline gets its own quality metric, its own acceptable performance threshold, and its own alert when that threshold is breached. Stage 1 retrieval is measured by precision at K, how many of the retrieved documents were actually relevant. Stage 2 ranking is measured by normalized discounted cumulative gain, whether the most relevant documents came first. Stage 3 generation is measured by faithfulness to the retrieved context, whether the output stayed grounded in what was retrieved. Stage 4 validation is measured by false negative rate, how often it passed outputs that humans would have rejected.

With stage-level metrics, "the pipeline is at 74%" becomes "retrieval dropped to 81% this week, which is within tolerance, but ranking fell to 68%, which is below threshold, and that's where the end-to-end degradation is coming from." That's a conversation you can act on in an afternoon. The alternative is two weeks of model experiments that improve generation slightly while the ranking problem continues to compound.

The PM responsibility in this framework is setting the thresholds and owning the escalation criteria. Not implementing the metrics. Not running the analysis. Deciding what performance is acceptable at each stage, what triggers investigation, and what triggers rollback. Those are product judgment calls that belong to the PM, not the ML engineer.

The question to ask before any multi-stage AI system ships: if I see the end-to-end number drop tomorrow, which stage do I look at first, and what's the metric that tells me whether that stage is the problem? If nobody can answer that confidently, the observability isn't ready.


MLOps maturity is a product velocity question

Most PM conversations about MLOps treat it as an engineering concern. Model registries, CI/CD pipelines, feature stores, experiment tracking. Important infrastructure. Not obviously a PM problem.

Here's the PM framing that changes that: MLOps maturity determines how fast you can improve your product after launch. It's not an infrastructure question. It's a product velocity question.

MLOps maturity progresses through three stages. Level 0 involves manual processes with minimal automation and siloed workflows. Level 1 introduces partial automation, continuous training, and modular pipelines. Level 2 represents full automation with end-to-end CI/CD pipelines enabling rapid, scalable model deployment and retraining.

What that means in product terms:

A Level 0 team deploys models manually. Retraining is a project, not a process. Experiment tracking lives in spreadsheets or individual engineers' notebooks. Running a new model version through the evaluation and deployment cycle takes weeks. If you're building an AI product roadmap that depends on weekly model improvements, and your team operates at Level 0, you're setting commitments that the infrastructure physically cannot keep.

A Level 1 team has automated training pipelines and basic experiment tracking. Retraining happens on a schedule rather than by manual trigger. Model versions are registered and comparable. Deployment still requires human sign-off at several steps, but the elapsed time from "we have a better model" to "that model is in production" is days rather than weeks.

A Level 2 team has end-to-end automation. A performance drop detected in monitoring triggers an automated retraining run. The retrained model is evaluated against the champion model automatically. If it passes the threshold, it's deployed to canary automatically. Human review happens at the exception, not the rule. Teams running mature MLOps typically report 10x faster releases and 40 to 60% infrastructure cost reductions.

The PM diagnostic questions that reveal maturity level without needing a technical audit: How long does it take to retrain and redeploy a model after a performance drop is detected? If the answer is "a few days," you're at Level 1. If the answer is "it depends on engineer availability," you're at Level 0. If the answer is "it happens automatically," you're approaching Level 2. How do you know if a new model version is better than the current one? If the answer involves a person manually running comparisons, you're at Level 0. If there's an automated evaluation harness that runs on every candidate model, you're at Level 1 or better.

These questions matter for roadmap planning. If the team is at Level 0 and the product needs three model improvements in the next quarter, either the team needs to invest in MLOps infrastructure before those improvements are possible, or the roadmap needs to reflect what Level 0 iteration velocity actually looks like. Discovering the mismatch six weeks into the quarter is avoidable.

Basic MLOps workflows take six to twelve months to establish. Production maturity takes eighteen to twenty-four months. That's not a criticism of any team. It's a planning input. AI product roadmaps that don't account for the MLOps maturity of the team building them are built on assumptions that the infrastructure won't support.


The challenger-champion pattern

Model versioning done well looks like this: the current production model is the champion. Every candidate improvement is a challenger. Challengers run in shadow mode or canary alongside the champion. They're evaluated on the same metrics, on the same user segments, over the same time window. Promotion from challenger to champion happens when the challenger demonstrably outperforms on the metrics that matter to users, not just offline benchmarks.

The failure mode this prevents: deploying a new model because offline metrics improved without validating that the improvement holds for real users in production. Post 5 covered the gap between offline and online metrics in depth. The challenger-champion pattern operationalizes that insight. The champion stays champion until a challenger proves better in production. Not in a test set.

The secondary benefit is rollback speed. When the champion is always explicitly defined and the previous champion is retained, rolling back to the previous version is a configuration change rather than a deployment event. That changes the rollback decision from "how long will this take?" to "should we roll back?" The first question introduces delay when you can least afford it. The second question is the one worth asking.


Retraining cadence

Post 2 introduced drift at a conceptual level. In the operational context, the practical question is when to retrain.

Four approaches, each right in different situations:

Scheduled retraining runs on a fixed calendar regardless of measured performance. Weekly for fast-moving domains, monthly for slower ones. The advantage is simplicity and predictability. The disadvantage is that you're retraining even when the model is fine, and potentially not retraining fast enough when something changes suddenly.

Performance-triggered retraining runs when a monitored metric drops below a threshold. More efficient than scheduled retraining because it responds to actual degradation rather than assumed degradation. Requires good monitoring to work, which brings its own investment. The risk is that a threshold set too conservatively triggers expensive retraining unnecessarily, and one set too aggressively misses degradation that matters.

Data-triggered retraining runs when a significant volume of new labeled examples has accumulated. This is the right cadence for products where the labeling feedback loop is the primary quality signal. Every 10,000 new labeled examples triggers a retraining run. The model stays current with user behavior patterns rather than on an arbitrary calendar.

Hybrid is what most mature systems use. Scheduled retraining as a baseline, performance triggers as an accelerant, and a manual emergency trigger that any engineer can invoke if something looks wrong before the scheduled run.

The PM decision: pick the cadence explicitly before launch. A default of "we'll retrain when we need to" is not a cadence. It's a gap in the operational plan that will be filled by a crisis rather than a process.


The monitoring stack that catches problems before users do

The goal of production monitoring is simple to state and hard to achieve: know about quality problems before users do. The gap between model degradation and user complaint is where trust erodes. Closing that gap requires instrumentation across four layers.

Input monitoring watches what's coming into the model. Feature distributions, data schema validation, null rates, unexpected values. When the upstream data feed changes its schema, as in the opening story, input monitoring catches it within hours rather than weeks. The alert is "input distribution for feature X has shifted 23% from training baseline" rather than "users are complaining that recommendations feel off."

Output monitoring watches what the model is producing. Prediction distribution, confidence score distribution, output length for generative models, refusal rate for models with safety filters. A model that suddenly produces very short outputs, or very long ones, or that starts refusing requests it previously handled, is signaling something. Output monitoring surfaces the signal before it becomes user feedback.

Performance monitoring watches the metrics that connect to user experience. Task completion rate, acceptance rate, escalation rate, error rate by user segment. This is the layer closest to what users actually experience. It's also the layer most dependent on good product instrumentation in the application layer, which means the PM needs to ensure that instrumentation is built before launch, not requested after something goes wrong.

Business monitoring watches the metrics that connect to product outcomes. Retention, revenue impact, NPS movement. This layer runs on a longer time horizon than the others but is the one that ultimately tells you whether the model's presence in the product is creating value or quietly costing it.

The question worth asking before any AI feature ships: if quality degrades by ten percent tomorrow, which of these layers catches it first, and how long before it reaches the business layer? The shorter that chain, the better your monitoring. The longer it is, the more opportunity for silent compounding before anyone acts.


What comes next

You now have the operational model for what happens after launch: how to deploy safely, how to observe a multi-stage pipeline with precision, how to match iteration speed to MLOps maturity, and how to monitor across the layers that matter.

The operational work is what keeps the product improving. The documentation work is what lets a team build more of them. In the next post, we'll cover writing PRDs for AI features: the template that translates product requirements into ML objectives, the quality bars that give engineers something to optimize toward, and the stakeholder conversations that set expectations before the project starts rather than after it's late.

More from this blog

A

Applied AI Lab

23 posts

Most AI products fail not because of the model — but product decisions around it.

Frameworks and lessons from shipping AI products at scale. For senior PMs who need to build things that actually work.