Designing for failure: Why AI-speed development needs FeatureOps
AI coding assistants are rewriting how software gets built. According to the DORA 2025 report, three out of four developers now use AI daily. But as AI usage increases, system stability decreases. At scale, even the things that happen 0.00001% of the time will happen every day.
This isn’t hypothetical. LLMs generate thousands of lines of code in minutes. Most of the time that code looks great, passes tests, and the model sounds confident. But these are probabilistic systems. Their output is not deterministic. Even with spec-driven development and thorough reviews, ambiguities leave space for hallucinations and blind spots.
The result: failure in production is no longer the exception, it’s becoming the norm. The goal is shifting from pure correctness to reversibility. How do you ensure system resilience when code is written at AI speed?
Instead of trying to prevent every bug before deployment, the new imperative is containment: expose code to users safely, catch problems fast, and roll back in seconds. This article introduces a practical framework for reducing blast radius across the development lifecycle, and introduces FeatureOps as the discipline of controlling software behavior at runtime and that makes this possible without slowing down.
A framework for blast radius reduction
There are many things you can do to reduce blast radius at different stages and layers of the stack. Here’s a mental framework that maps techniques from local development all the way to production:
Layer 1: Model safety. Execution isolation and prompt guardrails in your local environment. This is the first line of defense against prompt injection and malicious model output.
Layer 2: Sandboxing. Containing agent actions on your machine so that even if an AI agent goes rogue, the damage stays within a controlled boundary. We’ll go deep on this one below.
Layer 3: CI/CD protection. Guarding your repository, branches, pull requests, and build pipelines. Automated checks and approval workflows catch issues before code reaches production.
Layer 4: Runtime control. Protecting end users in production with feature flags, kill switches, and rollbacks. This is the last and often most critical layer. We’ll cover it in detail.
The key distinction: layers one and two protect your machine (localhost), while layers three and four protect your users (production). The more you can shift left, the better. But protecting what happens after deployment is equally critical, because that’s where your users are.
Layers two and four offer the most impact for blast radius reduction, especially against prompt injection attacks, hallucinations, and production incidents.
Layer two: sandboxing your AI agents
Sandboxing prevents AI agents from causing damage on your local machine. There are three main techniques, each with different trade-offs:
Kernel-level sandboxing is provided by the operating system (Landlock v3 on Linux, the legacy sandbox primitive on macOS). It’s the most lightweight option, no additional tooling required. Cursor supports this via an opt-in auto-run-in-sandbox setting. The trade-off: not many AI agents support it yet, and macOS support lags behind Linux.
Container-based isolation uses Docker or dev containers to run AI agents in an isolated environment. It’s heavier but more familiar, you’ve probably been using containers for years. Docker Sandboxes now ships pre-built images for running Claude, Gemini, Codex, Copilot, Kiro, and more inside sandboxed containers, plus a catalog of 300+ containerized MCP servers. The caveat: misconfigured volume mounts can undermine isolation.
Remote execution moves the model to a managed environment, like Claude on the web, GitHub Codex, or similar platforms. Whatever prompt injection occurs cannot sniff local credentials or damage your laptop. These environments are ephemeral, have proper credential management, and can restrict network access to allowlisted domains. The trade-off: if you grant GitHub permissions, agents can still commit, push, and open PRs.
These three approaches are complementary. Pick one or combine them based on your threat model and workflow.
Layer four: runtime control in production
Once code is written, tested, reviewed, and deployed, whether by a human or an AI agent, how do you protect your users? Runtime control answers four questions:
Who can see the changes?
Targeted exposure lets you define segments of users who receive new functionality: internal users first, then beta testers, then 10%, 25%, 50%, and finally 100%. Targeting can be based on role, geography, device, platform, app version, or custom attributes. Think of it as canary deployments for individual features.
How fast are changes exposed?
Release strategies control the pace: time-based progression, automatic milestone advancement (e.g., move to the next group after 24 hours with no incidents), and reusable rollout templates that standardize your process. You don’t want to reinvent the wheel for every release.
What exactly is running?
Feature flags, A/B testing variants, and conditional logic control runtime behavior. Even shadow mode, running new code in the backend without exposing it to users, lets you verify correctness before release. The key principle: decouple deployment from release. Deploy as often as you want; release when you’re ready.
What if something breaks?
Kill switches, instant rollbacks, and circuit breakers provide break-the-glass mechanisms. The gold standard is automated safeguards that pause or disable features based on real production metrics: error rates, latency, or business KPIs. The goal is fast recovery measured in seconds, not hours.
What is FeatureOps?
Feature flags are a key technical enabler for runtime control, but they’re not enough on their own. You also need culture, processes, and best practices around how flags are created, managed, and retired.
This is what FeatureOps addresses. FeatureOps is the discipline of controlling software behavior at runtime. Think of it as DevOps extended into the production runtime layer. It’s built on four pillars: Controlled Feature Release, Full-Stack Experimentation, Surgical Rollback, and Zero-Trust Feature Governance.
AI didn’t create the need for FeatureOps. But it made FeatureOps urgent.
FeatureOps unlocks three superpowers:
- Decouple deployment from release. Deploying code is a technical act; releasing a feature is a business decision. They shouldn’t be the same event.
- Enable trunk-based development. Stop getting stuck in merge hell with long-lived feature branches. Ship to main behind flags.
- Build at AI speed. Deploy tens of times per day while keeping control of what’s actually released.
The evidence is clear. Both Google and Cloudflare cited feature flags and reversibility as key remediation steps in their postmortems, after incidents that took down significant portions of the internet. Meanwhile, the Cloud Security Alliance’s 2025 report found that only 27% of organizations are confident in securing AI-generated code, yet organizations with proper governance are 2x more likely to adopt agentic AI and 2x more confident in doing so.
Governance isn’t a bottleneck. It’s an accelerator.
Automating FeatureOps with MCP
Implementing these practices doesn’t require weeks of manual setup. The Unleash MCP server lets AI coding assistants apply FeatureOps best practices directly in your workflow.
What makes this MCP server different from a typical API wrapper: roughly half of its tools expose the Unleash API, but the other half, arguably the more valuable part, provides language- and framework-specific guidance, battle-tested patterns, and contextual best practices. Instead of fully delegating the thinking to the AI agent, the MCP server helps it reason about FeatureOps across five key workflows:
- Evaluate: assess whether a code change is worth protecting with a feature flag
- Detect: find existing flags in the codebase to prevent duplicates
- Create: set up new flags with proper naming, descriptions, and targeting
- Wrap: implement the flag in your code using framework-specific patterns
- Clean up: remove flag code after a feature is fully released
The server works with any MCP-compatible assistant: Claude Code, GitHub Copilot, Cursor, JetBrains AI, Kiro, and others. You can learn more in our posts on using the MCP server with Claude Code and GitHub Copilot, or dive into how Impact Metrics enables automated FeatureOps.
FeatureOps in practice
These aren’t theoretical benefits. Teams shipping at scale are already using FeatureOps to move faster without sacrificing stability:
- Mercadona Tech, Spain’s largest supermarket chain, pushes 100+ production releases per day, what they call “fearless delivery.” Feature flags give every team independent control over their release cadence.
- Lloyds Banking Group serves 23 million customers and achieved 35% faster release cycles by treating governance as an accelerator, not a gate.
- Prudential automated compliance checks invisibly, achieving zero-barrier onboarding for new teams while meeting regulatory requirements.
The pattern is consistent: the right runtime controls don’t slow teams down. They remove the fear that slows teams down.
Getting started
Start small. Pick a single new feature like a UI element, a backend endpoint, something self-contained. Add a feature flag. Enable it only for yourself, then for your team, then for 10% of users. Observe what happens. That’s your first FeatureOps workflow.
The Unleash MCP server can automate this from day one: evaluate a code change, create a flag, wrap the code, and clean up when you’re done, all through your existing AI coding assistant.
Ready to try it? Start a free Unleash trial or talk to our technical team for a walkthrough.
FAQs
How can I start with FeatureOps without over-engineering?
Start from something you’re adding to your project, a new UI element, a backend change, anything that doesn’t require changing everything at once. Add a feature flag (via the MCP server, the API, or the Unleash dashboard). It’s off by default. Enable it for yourself. Then for your team based on email targeting. Then for 10% of users. Scale gradually. The enterprise features such as audit trails, change management, and sophisticated targeting are there when you need them.
Don’t feature flags shift bugs right instead of left?
Feature flags don’t move bugs to production, the code is already deployed there. What flags give you is runtime control: the ability to disable problematic code in seconds instead of waiting for a redeploy that takes minutes or hours. Combined with automated progression you get both speed and safety, for example by releasing to internal users, waiting 24 hours, then advancing to 10%. Data from enterprise deployments shows that proper governance and release practices actually accelerate delivery rather than slowing it down.
When should I clean up feature flags?
Clean up early and often. About 90% of feature flags are temporary and should exist for the lifespan of the release cycle, typically one to three weeks. The remaining 10% are operational flags (kill switches, permission-based flags) that stay as long as the feature exists. The Unleash MCP server can automate cleanup: tell it to remove a flag and it identifies every usage, detects the patterns in play, and removes the corresponding code paths. The Unleash dashboard also includes a health view showing where each flag is in its lifecycle (development, in production, or ready for cleanup).