<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Trendwise Analytics</title>
    <description>The latest articles on DEV Community by Trendwise Analytics (@trendwise).</description>
    <link>https://dev.to/trendwise</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4100271%2Fff227c5b-b407-45c2-b2d3-4743ffc76f8d.png</url>
      <title>DEV Community: Trendwise Analytics</title>
      <link>https://dev.to/trendwise</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/trendwise"/>
    <language>en</language>
    <item>
      <title>Claude Code for Enterprise Teams: Patterns That Actually Work in Production</title>
      <dc:creator>Trendwise Analytics</dc:creator>
      <pubDate>Mon, 14 Sep 2026 05:26:52 +0000</pubDate>
      <link>https://dev.to/trendwise/claude-code-for-enterprise-teams-patterns-that-actually-work-in-production-41c</link>
      <guid>https://dev.to/trendwise/claude-code-for-enterprise-teams-patterns-that-actually-work-in-production-41c</guid>
      <description>&lt;p&gt;Most Claude Code tutorials show you how to build a todo app or summarise a PDF.&lt;/p&gt;

&lt;p&gt;That's not what enterprise teams need to know.&lt;/p&gt;

&lt;p&gt;After using Claude Code to build and deploy AI systems across  20+  enterprises — here are the patterns that actually work in production. And the ones that don't.&lt;/p&gt;




&lt;h2&gt;
  
  
  Pattern 1: Start with context, not commands
&lt;/h2&gt;

&lt;p&gt;The single biggest mistake enterprise developers make with Claude Code is treating it like a search engine — asking narrow, specific questions and expecting narrow, specific answers.&lt;/p&gt;

&lt;p&gt;Claude Code performs dramatically better when it understands the full context before you ask it to do anything.&lt;/p&gt;

&lt;p&gt;What this looks like in practice:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Wrong&lt;/span&gt;
Write a function that chunks a PDF into 500-token segments

&lt;span class="gh"&gt;# Right  &lt;/span&gt;
We're building a RAG pipeline for a financial services client.
Their documents are regulatory filings — dense, structured, with 
lots of tables and cross-references. We need a chunking strategy 
that preserves table integrity and maintains regulatory citation 
context. Start by reading the sample documents in /data/samples 
and recommend an approach before writing any code.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The second prompt produces a chunking strategy tailored to the actual documents. The first produces a generic function that fails on tables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enterprise application:&lt;/strong&gt; Always load Claude Code with your project's CLAUDE.md file — a context document that explains the system, the client, the constraints, and the non-negotiable requirements. Every session starts with full context.&lt;/p&gt;




&lt;h2&gt;
  
  
  Pattern 2: MCP servers before custom APIs
&lt;/h2&gt;

&lt;p&gt;The instinct when connecting Claude Code to enterprise systems is to write a custom API wrapper. This is almost always the wrong call.&lt;/p&gt;

&lt;p&gt;MCP (Model Context Protocol) servers are purpose-built for exactly this use case — connecting AI systems to enterprise data sources and services with proper authentication, access controls, and audit trails.&lt;/p&gt;

&lt;p&gt;Here's what a custom MCP server for an enterprise knowledge base looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;mcp.server&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Server&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;mcp.types&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Tool&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;TextContent&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;mcp.server.stdio&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Server&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;enterprise-kb&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nd"&gt;@app.list_tools&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;list_tools&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="nc"&gt;Tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;search_knowledge_base&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Search the enterprise knowledge base for relevant documents&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;inputSchema&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;object&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;properties&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;query&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;department&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;enum&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;legal&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;finance&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ops&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;hr&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]},&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;max_results&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;integer&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;default&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
                &lt;span class="p"&gt;},&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;required&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;query&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="nd"&gt;@app.call_tool&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;call_tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;search_knowledge_base&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;search_internal_kb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;query&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="n"&gt;department&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;department&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
            &lt;span class="n"&gt;limit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;max_results&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nc"&gt;TextContent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;results&lt;/span&gt;&lt;span class="p"&gt;))]&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;mcp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdio&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stdio_server&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="nf"&gt;as &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;read_stream&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;write_stream&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;read_stream&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;write_stream&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create_initialization_options&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why this matters for enterprise:&lt;/strong&gt; MCP servers respect your existing IAM policies. Claude Code doesn't get access to anything your MCP server doesn't explicitly expose. Every action is logged. Security teams can audit exactly what Claude Code did.&lt;/p&gt;

&lt;p&gt;Custom API wrappers bypass all of this.&lt;/p&gt;




&lt;h2&gt;
  
  
  Pattern 3: Build the eval pipeline before the RAG pipeline
&lt;/h2&gt;

&lt;p&gt;Every enterprise RAG system I've built with Claude Code starts with the evaluator — before a single document is chunked or a single embedding is created.&lt;/p&gt;

&lt;p&gt;This is counterintuitive but critical. Without a baseline eval, you can't tell whether your changes improve or degrade the system.&lt;/p&gt;

&lt;p&gt;The RAGAS eval setup with Claude Code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;ragas&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;evaluate&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;ragas.metrics&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;faithfulness&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;answer_relevancy&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;context_precision&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;datasets&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Dataset&lt;/span&gt;

&lt;span class="n"&gt;eval_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;question&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;What is the maximum exposure limit for this product?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Which regulatory framework applies to cross-border transactions?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;answer&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;contexts&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ground_truth&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;dataset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Dataset&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_dict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;eval_data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;evaluate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;dataset&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;metrics&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;faithfulness&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;answer_relevancy&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;context_precision&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;results&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# faithfulness: 0.91
# answer_relevancy: 0.87  
# context_precision: 0.79
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claude Code's role: it writes the eval harness, runs the baseline, identifies which question categories score lowest, and recommends which parameters to adjust.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enterprise application:&lt;/strong&gt; Set a quality gate — no production deployment unless faithfulness &amp;gt; 0.85. Claude Code can run the eval automatically before every deployment.&lt;/p&gt;




&lt;h2&gt;
  
  
  Pattern 4: Agentic orchestration with explicit checkpoints
&lt;/h2&gt;

&lt;p&gt;Enterprise agentic systems need human-in-the-loop checkpoints. Not because the AI can't be trusted — but because audit requirements, regulatory constraints, and organisational governance require it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;EnterpriseAgent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;checkpoint_required&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;]):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;checkpoint_required&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;checkpoint_required&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;action_log&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

    &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;action_log&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;action&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;params&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;timestamp&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;isoformat&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;status&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pending&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;})&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;checkpoint_required&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;approval&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;request_human_approval&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;approval&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;action_log&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;status&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rejected&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;status&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rejected&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;reason&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Human approval denied&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

        &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;perform_action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;action_log&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;status&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;completed&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The checkpoint_required list&lt;/strong&gt; is where enterprise governance lives. Actions like &lt;code&gt;send_external_email&lt;/code&gt;, &lt;code&gt;update_financial_record&lt;/code&gt;, &lt;code&gt;trigger_payment&lt;/code&gt; go on this list. Actions like &lt;code&gt;search_knowledge_base&lt;/code&gt;, &lt;code&gt;generate_draft&lt;/code&gt; don't need approval.&lt;/p&gt;

&lt;p&gt;Claude Code helps you identify which actions should require checkpoints based on the system design.&lt;/p&gt;




&lt;h2&gt;
  
  
  Pattern 5: Production monitoring that engineers actually use
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;opentelemetry&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;trace&lt;/span&gt;

&lt;span class="n"&gt;tracer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;trace&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get_tracer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;enterprise-ai-system&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nd"&gt;@tracer.start_as_current_span&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rag_query&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;rag_query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user_query&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;span&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;trace&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get_current_span&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;span&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set_attribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user.query&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;user_query&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;span&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set_attribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user.id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;tracer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;start_as_current_span&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;retrieval&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;chunks&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;retrieve_chunks&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user_query&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;span&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set_attribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;retrieval.chunk_count&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;chunks&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;tracer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;start_as_current_span&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;generation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;generate_response&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user_query&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;chunks&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;span&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set_attribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;generation.token_count&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;usage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;total_tokens&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claude Code generates this instrumentation based on your system architecture. Every query is traced — retrieval latency, generation time, token usage, chunk count.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What most teams skip:&lt;/strong&gt; Setting up alerts. Claude Code will write the alerting rules too — latency thresholds, error rate spikes, unusual token consumption patterns that might indicate prompt injection attempts.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Claude Code tutorials don't teach you
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Slash commands are underused.&lt;/strong&gt; Custom slash commands let your team share Claude Code workflows without writing documentation. A &lt;code&gt;/review-pr&lt;/code&gt; command that runs your specific code review checklist is more valuable than 10 individual developers running ad-hoc prompts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. CLAUDE.md is the real productivity multiplier.&lt;/strong&gt; A well-written CLAUDE.md that explains your system, your conventions, and your non-negotiables is worth more than prompt engineering. Claude Code reads it at the start of every session.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Claude Code writes better tests than most engineers.&lt;/strong&gt; Not because it's smarter — because it has no ego about edge cases. Ask it to specifically include failure modes, race conditions, and malformed inputs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. The context window is not a limitation if you use it right.&lt;/strong&gt; Claude Code's approach to large codebases — read the structure first, then drill into relevant files — is more effective than trying to load everything. Let it navigate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Production != demo.&lt;/strong&gt; The gap between a working Claude Code demo and a production-ready enterprise system is eval pipelines, monitoring, access controls, audit trails, and a 90-day adoption plan. Claude Code can help build all of these — but you have to ask.&lt;/p&gt;




&lt;h2&gt;
  
  
  Getting started
&lt;/h2&gt;

&lt;p&gt;The fastest path to production-ready Claude Code use in an enterprise team:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Write your CLAUDE.md — system context, conventions, constraints&lt;/li&gt;
&lt;li&gt;Build one MCP server for your most-used enterprise data source&lt;/li&gt;
&lt;li&gt;Set up RAGAS eval before you build the first RAG system&lt;/li&gt;
&lt;li&gt;Instrument with OpenTelemetry from day one&lt;/li&gt;
&lt;li&gt;Define your checkpoint list for agentic actions&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All five of these are things Claude Code can help you build — once you know to ask for them.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Mohan Silaparasetty is the founder of Trendwise Analytics and one of the few enterprise AI trainers in India Claude Code Certified by Anthropic.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Claude Code enterprise training: &lt;a href="https://trendwiseanalytics.com/claude-code-training.html" rel="noopener noreferrer"&gt;https://trendwiseanalytics.com/claude-code-training.html&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Agentic AI training: &lt;a href="https://trendwiseanalytics.com/agentic-ai-training.html" rel="noopener noreferrer"&gt;https://trendwiseanalytics.com/agentic-ai-training.html&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>claude</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Why 95% of Enterprise AI Initiatives Stall — The 5-Dimension Framework</title>
      <dc:creator>Trendwise Analytics</dc:creator>
      <pubDate>Sat, 29 Aug 2026 12:59:53 +0000</pubDate>
      <link>https://dev.to/trendwise/why-95-of-enterprise-ai-initiatives-stall-the-5-dimension-framework-2oc7</link>
      <guid>https://dev.to/trendwise/why-95-of-enterprise-ai-initiatives-stall-the-5-dimension-framework-2oc7</guid>
      <description>&lt;p&gt;95% of enterprise AI initiatives stall before reaching production.&lt;/p&gt;

&lt;p&gt;After training 5,000+ professionals across Samsung Research, Deloitte, Synechron, WNS and 20+ enterprises — I can tell you exactly why. And it's almost never the technology.&lt;/p&gt;




&lt;h2&gt;
  
  
  It's Not the Model
&lt;/h2&gt;

&lt;p&gt;When an enterprise AI initiative fails, the instinct is to blame the model. The data pipeline. The vendor.&lt;/p&gt;

&lt;p&gt;These are rarely the real problem.&lt;/p&gt;

&lt;p&gt;The real problem is almost always one of five things — what we call the &lt;strong&gt;5 Dimensions of Enterprise AI Maturity&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Dimension 1: AI Strategy &amp;amp; Leadership Alignment
&lt;/h2&gt;

&lt;p&gt;The question isn't whether your leadership "supports AI." Most do, in the abstract.&lt;/p&gt;

&lt;p&gt;The question is whether there is a &lt;strong&gt;named executive who owns AI adoption as a personal OKR&lt;/strong&gt; — with budget, authority, and accountability. Not someone who cheerleads in town halls. Someone whose performance review includes AI adoption metrics.&lt;/p&gt;

&lt;p&gt;In my experience, this person exists in fewer than 30% of the organisations I train.&lt;/p&gt;

&lt;p&gt;Without it, AI initiatives compete with business-as-usual priorities. And business-as-usual always wins.&lt;/p&gt;




&lt;h2&gt;
  
  
  Dimension 2: Data Readiness
&lt;/h2&gt;

&lt;p&gt;AI is only as good as the data it runs on.&lt;/p&gt;

&lt;p&gt;Most enterprises know this. Most enterprises also have data that is siloed across legacy systems, inconsistently formatted, and manually extracted by analysts who spend 70% of their time on data preparation rather than analysis.&lt;/p&gt;

&lt;p&gt;The gap isn't awareness. It's execution. Knowing your data is fragmented and having done something about it are very different things.&lt;/p&gt;

&lt;p&gt;High-maturity organisations have governed, accessible, pipeline-ready data. Most organisations I assess are still at "we know where the data is — we just can't easily get to it."&lt;/p&gt;




&lt;h2&gt;
  
  
  Dimension 3: AI Talent &amp;amp; Capability (The Biggest Gap)
&lt;/h2&gt;

&lt;p&gt;This is the dimension that almost every organisation gets wrong — and the one that matters most.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI talent is not a data science problem. It's an organisational problem.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I ask L&amp;amp;D heads "what percentage of your team can confidently use, evaluate, and govern AI outputs in their daily work?" — the honest answer is almost always under 15%.&lt;/p&gt;

&lt;p&gt;A data science team of 10 can build extraordinary AI systems. But if the 500 people who are supposed to use those systems don't understand them, don't trust them, and weren't involved in designing how they'd fit into their workflows — the systems sit unused.&lt;/p&gt;

&lt;p&gt;Gartner's research supports this: 57% of business units in high-maturity organisations trust and actively use AI solutions, compared to just 14% in low-maturity organisations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The difference isn't the technology. It's the training.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Dimension 4: Process Integration
&lt;/h2&gt;

&lt;p&gt;There is a fundamental difference between these two questions:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"How do we use AI in our existing process?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"If we were designing this process from scratch with AI available, what would it look like?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Most organisations are asking the first question. High-maturity organisations are asking the second.&lt;/p&gt;

&lt;p&gt;Adding AI to an old process produces marginal gains. Redesigning the process around AI produces transformational ones.&lt;/p&gt;




&lt;h2&gt;
  
  
  Dimension 5: AI Culture &amp;amp; Change Readiness
&lt;/h2&gt;

&lt;p&gt;The "frozen middle" is a real phenomenon.&lt;/p&gt;

&lt;p&gt;Senior leadership is excited about AI. Frontline teams are curious. Middle management — the people who actually determine how work gets done — is threatened, overloaded, and has no incentive to redesign their team's workflows.&lt;/p&gt;

&lt;p&gt;This layer blocks AI adoption more consistently than any technical barrier. And it rarely shows up in a pilot. Pilots are run by enthusiasts. The frozen middle becomes visible at scale.&lt;/p&gt;




&lt;h2&gt;
  
  
  The 4 Maturity Levels — Where Most Enterprises Actually Are
&lt;/h2&gt;

&lt;p&gt;Based on assessments across 20+ enterprise clients:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Level&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;What it looks like&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Aware&lt;/td&gt;
&lt;td&gt;AI on the radar, not in the roadmap. One-off workshops, no budget, no owner&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;2&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Experimenting&lt;/td&gt;
&lt;td&gt;Pilots underway, results mixed. No shared learnings, no governance. &lt;strong&gt;Most enterprises are here in 2026&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;3&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Scaling&lt;/td&gt;
&lt;td&gt;AI in multiple business units with measurable ROI. Structured training. AI CoE forming&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;4&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Leading&lt;/td&gt;
&lt;td&gt;AI is a core competitive differentiator. AI-native processes, board-level governance. ~6% of enterprises globally&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  What Moves Organisations from Level 2 to Level 3
&lt;/h2&gt;

&lt;p&gt;Three things, consistently:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. An executive who owns it&lt;/strong&gt; — not supports it. Every Level 3 organisation I've worked with has one named executive for whom AI adoption is a personal accountability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Broad training, not deep training&lt;/strong&gt; — the instinct is to train one team of 10 developers deeply. The breakthrough comes from training 200 people to a baseline level — enough to use, evaluate, and govern AI outputs confidently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. One process that gets redesigned&lt;/strong&gt; — not assisted by AI. Redesigned around it. Pick one core workflow and rebuild it from scratch with AI at the centre. The learning from that one redesign propagates across the organisation.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to Know Where You Are
&lt;/h2&gt;

&lt;p&gt;The most common mistake is starting the wrong program for the team's actual capability level.&lt;/p&gt;

&lt;p&gt;A GenAI developer bootcamp delivered to a Level 1 organisation produces frustration, not results. An executive AI strategy session delivered to a team that's already building agents is a waste of budget.&lt;/p&gt;

&lt;p&gt;We built a free 3-minute AI Maturity Assessment that scores your organisation across all 5 dimensions — instant results, no sales call required:&lt;br&gt;
👉 &lt;a href="https://trendwiseanalytics.com/ai-quiz.html" rel="noopener noreferrer"&gt;https://trendwiseanalytics.com/ai-quiz.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And the full framework — including industry-specific patterns across BFSI, IT services, manufacturing, and telecom:&lt;br&gt;
👉 &lt;a href="https://trendwiseanalytics.com/ai-maturity.html" rel="noopener noreferrer"&gt;https://trendwiseanalytics.com/ai-maturity.html&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;The 95% stall rate is not a technology problem. It's a capability, culture, and process problem.&lt;/p&gt;

&lt;p&gt;The organisations that break through share one characteristic: they invested in building AI capability broadly across the organisation — not just deeply in one technical team — and they redesigned at least one core process around AI rather than bolting AI onto an existing one.&lt;/p&gt;

&lt;p&gt;The technology is ready. The question is whether your organisation is.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Mohan Silaparasetty is the founder of Trendwise Analytics, an enterprise AI training firm . Previously GM at IBM and VP at SAP Labs. Claude Code Certified by Anthropic.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Forward Deployed AI Engineer: The Role Enterprise AI Actually Needs</title>
      <dc:creator>Trendwise Analytics</dc:creator>
      <pubDate>Sat, 29 Aug 2026 12:55:51 +0000</pubDate>
      <link>https://dev.to/trendwise/forward-deployed-ai-engineer-the-role-enterprise-ai-actually-needs-2f9i</link>
      <guid>https://dev.to/trendwise/forward-deployed-ai-engineer-the-role-enterprise-ai-actually-needs-2f9i</guid>
      <description>&lt;p&gt;Every enterprise AI initiative I've seen fail had one thing in common.&lt;/p&gt;

&lt;p&gt;The engineers who built the system were not the engineers who deployed it. And the people who deployed it had no idea how it was built.&lt;/p&gt;

&lt;p&gt;That gap — between building and deploying — is where enterprise AI goes to die.&lt;/p&gt;

&lt;p&gt;The Forward Deployed AI Engineer (FDE) closes that gap. It's the most important role in enterprise AI right now, and almost nobody is training for it.&lt;/p&gt;




&lt;h2&gt;
  
  
  What a Forward Deployed AI Engineer Actually Does
&lt;/h2&gt;

&lt;p&gt;The FDE is not a data scientist. Not a prompt engineer. Not a project manager.&lt;/p&gt;

&lt;p&gt;The FDE does all of it — in sequence, independently, on a single engagement:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Discovery&lt;/strong&gt; — Runs stakeholder sessions to identify the right AI use case. Not the most technically impressive one. The one with the highest business impact and lowest adoption risk.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Architecture&lt;/strong&gt; — Designs the system. RAG or fine-tuning? Claude Code or LangGraph? MCP server or direct API? The FDE makes these calls based on the enterprise context, not personal preference.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Build&lt;/strong&gt; — Writes the code. Builds the eval pipeline. Sets up monitoring with OpenTelemetry. Handles the edge cases the demo never had.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Deploy&lt;/strong&gt; — Gets it into production. Navigates the security review, the compliance requirements, the IT infrastructure constraints. Knows when to push and when to adapt.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Adoption&lt;/strong&gt; — This is the one most engineers skip. The FDE builds an adoption plan from day one. Runs training for the end users. Tracks usage at 30, 60, 90 days. Doesn't declare victory at go-live.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Why This Role Exists Now
&lt;/h2&gt;

&lt;p&gt;Three things converged in 2025-2026 to create the FDE:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. The agentic AI shift&lt;/strong&gt;&lt;br&gt;
GenAI was mostly about answering questions. Agentic AI is about completing tasks. Agents that book meetings, update CRM records, process documents, and trigger workflows. The complexity of deploying these systems in enterprise environments — with all the governance, security, and integration requirements — requires someone who can do the full stack.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The deployment gap&lt;/strong&gt;&lt;br&gt;
Gartner's research is consistent: most enterprise AI initiatives stall between pilot and production. The technical gap is rarely the model. It's the deployment. Most engineers are trained to build. Very few are trained to deploy, govern, and drive adoption in enterprise environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The market signal&lt;/strong&gt;&lt;br&gt;
FDE job postings have grown over 800% since 2025. Infosys, Cognizant, NTT Data, Accenture — all building FDE teams at scale. The market has identified the gap and is hiring for it faster than universities or training programs can fill it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Technical Stack an FDE Needs in 2026
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Foundation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Claude Code&lt;/strong&gt; — agentic development, MCP integration, production deployment patterns&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RAG architecture&lt;/strong&gt; — not just building it, but evaluating it (RAGAS), monitoring it (OpenTelemetry), and maintaining it&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LangGraph / AutoGen&lt;/strong&gt; — stateful multi-agent workflows, supervisor patterns, human-in-the-loop design&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Enterprise integration
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MCP (Model Context Protocol)&lt;/strong&gt; — connecting AI systems to enterprise data sources without exposing raw credentials or bypassing access controls&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;n8n&lt;/strong&gt; — workflow automation that business users can actually understand and maintain after the FDE leaves&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice agents&lt;/strong&gt; — ElevenLabs integration for voice-enabled enterprise workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Deployment and governance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Eval pipelines&lt;/strong&gt; — automated testing for AI outputs before and after deployment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitoring&lt;/strong&gt; — OpenTelemetry for agent observability, not just uptime&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security patterns&lt;/strong&gt; — prompt injection defence, data exfiltration prevention, access control design&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit trails&lt;/strong&gt; — every AI action logged, attributable, and reversible where possible&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The soft stack (underrated)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Discovery facilitation&lt;/strong&gt; — running structured sessions to identify the right use case&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stakeholder communication&lt;/strong&gt; — translating AI system behaviour into language a CFO or legal team can evaluate&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adoption planning&lt;/strong&gt; — the 90-day plan that starts before go-live, not after&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What Makes FDE Different from a Senior AI Engineer
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Senior AI Engineer&lt;/th&gt;
&lt;th&gt;Forward Deployed AI Engineer&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Primary output&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Working system&lt;/td&gt;
&lt;td&gt;Adopted system&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Scope&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Build phase&lt;/td&gt;
&lt;td&gt;Full lifecycle&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Stakeholder work&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Minimal&lt;/td&gt;
&lt;td&gt;Central&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Deployment&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Hands off to DevOps&lt;/td&gt;
&lt;td&gt;Owns it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Adoption&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Not responsible&lt;/td&gt;
&lt;td&gt;Accountable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Business context&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;Deep&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Governance&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Someone else's problem&lt;/td&gt;
&lt;td&gt;Built in from day one&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The difference is accountability. A senior AI engineer is accountable for the system working. An FDE is accountable for the system being used.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Three Hardest Parts of the FDE Role
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Saying no to impressive use cases&lt;/strong&gt;&lt;br&gt;
The use case that wows the demo audience is almost never the right starting point. The FDE has to be able to walk into a room full of excited executives and recommend a less impressive use case because it has better data, clearer ROI, and lower adoption risk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The 90-day adoption curve&lt;/strong&gt;&lt;br&gt;
Most AI systems hit a wall at day 30. Initial enthusiasm fades. The users who weren't involved in the build revert to their old workflows. The FDE anticipates this and designs against it — training end users before go-live, building feedback loops into the system, having a re-engagement plan for the day 30 dip.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Building for the team that maintains it&lt;/strong&gt;&lt;br&gt;
The FDE builds systems that the team left behind can actually understand and maintain. Choosing n8n over a custom Python orchestration layer when the team doesn't have Python skills. Documentation that a non-ML engineer can follow. Designing for the organisation's actual capability, not the ideal capability.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to Build FDE Capability in Your Organisation
&lt;/h2&gt;

&lt;p&gt;Three things matter more than the technical stack:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Rotate engineers through the full deployment lifecycle&lt;/strong&gt;&lt;br&gt;
Most engineers only see the build phase. Give them exposure to stakeholder sessions before the build and adoption tracking after go-live. That experience is more valuable than any training program.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Make adoption metrics part of engineering success criteria&lt;/strong&gt;&lt;br&gt;
If your engineers are measured on shipped features and not on whether those features are used — you will never build FDE instincts. Change the metric.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Build the discovery muscle deliberately&lt;/strong&gt;&lt;br&gt;
Run structured use case identification sessions with your engineers — not just with product managers. Engineers who can run discovery sessions become FDEs. Engineers who only receive requirements never do.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;The Forward Deployed AI Engineer is not a new job title. It's a new combination of old skills, applied to the hardest problem in enterprise AI: getting AI systems from pilot to production to actually used.&lt;/p&gt;

&lt;p&gt;FDE job postings are up 800% because organisations have finally understood that building great AI systems is the easy part. Deploying them in complex enterprise environments, navigating governance and security requirements, and driving adoption in organisations that weren't asking for change — that's the hard part.&lt;/p&gt;

&lt;p&gt;That's what the FDE does.&lt;/p&gt;




&lt;p&gt;*Mohan Silaparasetty is the founder of Trendwise Analytics, an enterprise AI training firm . Previously GM at IBM and VP at SAP Labs *&lt;/p&gt;

&lt;p&gt;&lt;em&gt;FDE enterprise program: &lt;a href="https://trendwiseanalytics.com/fde-training.html" rel="noopener noreferrer"&gt;https://trendwiseanalytics.com/fde-training.html&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Agentic AI training: &lt;a href="https://trendwiseanalytics.com/agentic-ai-training.html" rel="noopener noreferrer"&gt;https://trendwiseanalytics.com/agentic-ai-training.html&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>career</category>
      <category>productivity</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
