<?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: Abhishek</title>
    <description>The latest articles on DEV Community by Abhishek (@abhishek_mishra_01).</description>
    <link>https://dev.to/abhishek_mishra_01</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3823436%2Fb4461944-468c-45de-8e3b-25c45caf3b35.jpeg</url>
      <title>DEV Community: Abhishek</title>
      <link>https://dev.to/abhishek_mishra_01</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abhishek_mishra_01"/>
    <language>en</language>
    <item>
      <title>Most Problems Don't Need AI (And That's Fine)</title>
      <dc:creator>Abhishek</dc:creator>
      <pubDate>Mon, 20 Apr 2026 13:18:44 +0000</pubDate>
      <link>https://dev.to/abhishek_mishra_01/most-problems-dont-need-ai-and-thats-fine-26if</link>
      <guid>https://dev.to/abhishek_mishra_01/most-problems-dont-need-ai-and-thats-fine-26if</guid>
      <description>&lt;p&gt;I've shipped three AI-powered developer tools to production this year.&lt;/p&gt;

&lt;p&gt;Two of them shouldn't have used AI at all.&lt;/p&gt;

&lt;p&gt;Let me explain why that matters and how to avoid making the same mistake.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Question Nobody Asks
&lt;/h2&gt;

&lt;p&gt;Everyone's asking: How can I use AI for this?&lt;/p&gt;

&lt;p&gt;The better question is: Should I?&lt;/p&gt;

&lt;p&gt;Because here's what I learned the hard way:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI solves a very specific class of problems.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And most of your problems aren't in that class.&lt;/p&gt;




&lt;p&gt;What Happened When I Built for SRE&lt;/p&gt;

&lt;p&gt;Last month, I started building an AI system for SRE.&lt;/p&gt;

&lt;p&gt;The idea wasn’t to generate text.&lt;br&gt;
It was to simulate real incident response.&lt;/p&gt;

&lt;p&gt;So I built an environment where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;systems break&lt;/li&gt;
&lt;li&gt;signals appear (logs, metrics)&lt;/li&gt;
&lt;li&gt;actions change the state&lt;/li&gt;
&lt;li&gt;wrong decisions are penalized&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not what would you do?&lt;br&gt;
But:&lt;/p&gt;

&lt;p&gt;What happens when you actually act?&lt;/p&gt;



&lt;p&gt;What I Realized Quickly&lt;/p&gt;

&lt;p&gt;AI looks good when it explains problems.&lt;/p&gt;

&lt;p&gt;It struggles when it has to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;decide under uncertainty&lt;/li&gt;
&lt;li&gt;take the correct sequence of actions&lt;/li&gt;
&lt;li&gt;handle multi-step failures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In SRE, being almost right is still wrong.&lt;/p&gt;



&lt;p&gt;Where Systems Break&lt;/p&gt;

&lt;p&gt;The hardest part wasn’t generation.&lt;/p&gt;

&lt;p&gt;It was:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;choosing the right action&lt;/li&gt;
&lt;li&gt;in the right order&lt;/li&gt;
&lt;li&gt;based on incomplete signals&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s where most AI systems fail.&lt;br&gt;
Not in demos.&lt;br&gt;
In decisions.&lt;/p&gt;



&lt;p&gt;The Lesson&lt;/p&gt;

&lt;p&gt;SRE made one thing clear:&lt;/p&gt;

&lt;p&gt;AI is useful when it supports decisions.&lt;br&gt;
Not when it replaces them.&lt;/p&gt;



&lt;p&gt;New Rule&lt;/p&gt;

&lt;p&gt;If your system requires:&lt;/p&gt;

&lt;p&gt;consistent, correct decisions under pressure&lt;/p&gt;

&lt;p&gt;Then AI alone is not enough.&lt;/p&gt;

&lt;p&gt;You need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;structure&lt;/li&gt;
&lt;li&gt;constraints&lt;/li&gt;
&lt;li&gt;validation&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  The Pattern I Started Seeing
&lt;/h2&gt;

&lt;p&gt;After that failure, I looked at every AI tool I'd built or evaluated.&lt;/p&gt;

&lt;p&gt;I found a pattern in what actually worked:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI works when the problem has high variance inputs and acceptable variance in outputs.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let me break that down.&lt;/p&gt;


&lt;h2&gt;
  
  
  High Variance Inputs
&lt;/h2&gt;

&lt;p&gt;This means: the problem receives unpredictable, unstructured, or creative inputs.&lt;/p&gt;

&lt;p&gt;Examples that fit:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User queries in natural language&lt;/li&gt;
&lt;li&gt;Bug reports written by non-technical users&lt;/li&gt;
&lt;li&gt;Code snippets in any language/framework&lt;/li&gt;
&lt;li&gt;API documentation across different vendors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Examples that don't:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Structured database queries&lt;/li&gt;
&lt;li&gt;Configuration files with known schemas&lt;/li&gt;
&lt;li&gt;Metrics from monitoring tools&lt;/li&gt;
&lt;li&gt;Git commit hashes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your input is already structured and predictable, you don't need AI. You need a parser.&lt;/p&gt;


&lt;h2&gt;
  
  
  Acceptable Variance in Outputs
&lt;/h2&gt;

&lt;p&gt;This means: the user can tolerate (and even expects) some variation in the response.&lt;/p&gt;

&lt;p&gt;Examples that fit:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code suggestions (developer reviews before accepting)&lt;/li&gt;
&lt;li&gt;Draft responses to support tickets (human edits before sending)&lt;/li&gt;
&lt;li&gt;Initial test case generation (QA refines coverage)&lt;/li&gt;
&lt;li&gt;Summarizing long error logs (engineer investigates further)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Examples that don't:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deploying to production&lt;/li&gt;
&lt;li&gt;Merging pull requests&lt;/li&gt;
&lt;li&gt;Granting permissions&lt;/li&gt;
&lt;li&gt;Processing payments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;If the output must be deterministic and correct 100% of the time, AI is the wrong tool.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You need rules, not models.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Real Litmus Test
&lt;/h2&gt;

&lt;p&gt;Here's the framework I use now before writing any AI code:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I solve this with:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A regex?&lt;/li&gt;
&lt;li&gt;A state machine?&lt;/li&gt;
&lt;li&gt;A database query?&lt;/li&gt;
&lt;li&gt;A rules engine?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If yes → don't use AI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Only use AI when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The problem is genuinely ambiguous&lt;/li&gt;
&lt;li&gt;Deterministic code would require thousands of edge cases&lt;/li&gt;
&lt;li&gt;Human judgment is currently the only solution&lt;/li&gt;
&lt;li&gt;Imperfect answers are acceptable&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Where AI Actually Belongs in Developer Tooling
&lt;/h2&gt;

&lt;p&gt;After building systems that worked and failed, here's what I've seen succeed:&lt;/p&gt;
&lt;h3&gt;
  
  
  Code Search &amp;amp; Navigation
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why it works:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers search using imprecise natural language&lt;/li&gt;
&lt;li&gt;Codebase context is massive and varied&lt;/li&gt;
&lt;li&gt;"Close enough" results are useful&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
"Find where we handle rate limiting for the API"&lt;/p&gt;

&lt;p&gt;Traditional search fails because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We might call it "throttling" in some files&lt;/li&gt;
&lt;li&gt;Implementation is split across middleware and handlers&lt;/li&gt;
&lt;li&gt;No single keyword matches everything&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI search understands intent.&lt;/p&gt;
&lt;h3&gt;
  
  
  Error Explanation &amp;amp; Debugging Hints
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why it works:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Error messages are inconsistent across languages/frameworks&lt;/li&gt;
&lt;li&gt;Developers need context, not just stack traces&lt;/li&gt;
&lt;li&gt;Suggested fixes don't auto-execute&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;NullPointerException at line 47
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AI can correlate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recent code changes&lt;/li&gt;
&lt;li&gt;Similar past issues&lt;/li&gt;
&lt;li&gt;Common patterns in that file&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It doesn't fix it. It points you in the right direction.&lt;/p&gt;

&lt;h3&gt;
  
  
  Test Case Generation (First Draft)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why it works:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Writing tests is high-effort, low-creativity work&lt;/li&gt;
&lt;li&gt;Generated tests are always reviewed&lt;/li&gt;
&lt;li&gt;Edge cases emerge through iteration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
Given a function, generate initial unit tests covering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Happy path&lt;/li&gt;
&lt;li&gt;Null inputs&lt;/li&gt;
&lt;li&gt;Boundary conditions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Developer refines from there.&lt;/p&gt;

&lt;h2&gt;
  
  
  Automated Code Review
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Why it fails:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Context requires understanding team conventions&lt;/li&gt;
&lt;li&gt;False positives erode trust&lt;/li&gt;
&lt;li&gt;Deterministic linters already catch syntax issues&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Automatic Refactoring
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why it fails:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Breaking changes require 100% accuracy&lt;/li&gt;
&lt;li&gt;Semantic meaning must be preserved exactly&lt;/li&gt;
&lt;li&gt;One mistake ships to production&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Auto-Generated API Clients
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why it fails:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenAPI specs already exist (structured input)&lt;/li&gt;
&lt;li&gt;Code generation tools are deterministic&lt;/li&gt;
&lt;li&gt;No ambiguity to resolve&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Mistake I See Most Often
&lt;/h2&gt;

&lt;p&gt;Developers use AI because it's impressive.&lt;/p&gt;

&lt;p&gt;Not because it's the right tool.&lt;/p&gt;

&lt;p&gt;I've done this. We all have.&lt;/p&gt;

&lt;p&gt;You see a cool demo and think: &lt;em&gt;"I could use that for..."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But here's what actually happens:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You bolt AI onto a problem that doesn't need it&lt;/li&gt;
&lt;li&gt;It works 90% of the time&lt;/li&gt;
&lt;li&gt;The 10% failure rate is unpredictable&lt;/li&gt;
&lt;li&gt;You spend more time handling edge cases than you saved&lt;/li&gt;
&lt;li&gt;You rebuild it without AI&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Save yourself the cycle.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Start with the simplest solution that could work.&lt;/p&gt;




&lt;h2&gt;
  
  
  How I Decide Now
&lt;/h2&gt;

&lt;p&gt;When someone asks me to build an AI feature, I ask:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"What happens if this gives the wrong answer?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If the answer is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The user reviews and corrects it → Maybe AI&lt;/li&gt;
&lt;li&gt;We waste some time → Maybe AI&lt;/li&gt;
&lt;li&gt;We lose customer trust → Not AI&lt;/li&gt;
&lt;li&gt;We break production → Definitely not AI&lt;/li&gt;
&lt;li&gt;Nothing, it's just slower → Definitely not AI&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Problems Actually Worth Solving
&lt;/h2&gt;

&lt;p&gt;After shipping AI to production, here's what I've learned:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Good AI problems share these traits:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Ambiguity is inherent&lt;/strong&gt; – The problem can't be reduced to rules&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human-in-the-loop is natural&lt;/strong&gt; – Someone reviews the output anyway&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Value comes from speed, not perfection&lt;/strong&gt; – 80% solution in 5 seconds beats 100% solution in 5 hours&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The alternative is hiring more people&lt;/strong&gt; – You're augmenting human judgment, not replacing deterministic code&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;For developer tooling specifically:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The sweet spot is: &lt;strong&gt;Tasks developers already do manually that require understanding context but not making critical decisions.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Writing boilerplate tests&lt;/li&gt;
&lt;li&gt;Searching codebases semantically&lt;/li&gt;
&lt;li&gt;Explaining unfamiliar error messages&lt;/li&gt;
&lt;li&gt;Generating first-draft documentation&lt;/li&gt;
&lt;li&gt;Suggesting variable names&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deploying code&lt;/li&gt;
&lt;li&gt;Approving changes&lt;/li&gt;
&lt;li&gt;Granting access&lt;/li&gt;
&lt;li&gt;Modifying production configs&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What I'm Building Differently Now
&lt;/h2&gt;

&lt;p&gt;Instead of starting with What AI can do, I start with:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are developers doing repeatedly that's:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mentally tedious&lt;/strong&gt; (not challenging, just annoying)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Context-heavy&lt;/strong&gt; (requires reading lots of code)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Non-critical&lt;/strong&gt; (mistakes are cheap)"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then I ask:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Could a junior developer do this after reading the context?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If yes → AI might help.&lt;/p&gt;

&lt;p&gt;If no → I'm trying to automate judgment, and that won't work.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Hard Truth
&lt;/h2&gt;

&lt;p&gt;Most problems don't need AI.&lt;/p&gt;

&lt;p&gt;They need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better documentation&lt;/li&gt;
&lt;li&gt;Clearer error messages&lt;/li&gt;
&lt;li&gt;Simpler abstractions&lt;/li&gt;
&lt;li&gt;Fewer edge cases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI feels like progress because it's new.&lt;/p&gt;

&lt;p&gt;But progress is solving the problem correctly, not impressively.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Practical Exercise
&lt;/h2&gt;

&lt;p&gt;If you're reading this and thinking about an AI feature, try this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Write down the problem&lt;/li&gt;
&lt;li&gt;Describe the input (is it structured or chaotic?)&lt;/li&gt;
&lt;li&gt;Describe the acceptable output (is variance okay?)&lt;/li&gt;
&lt;li&gt;Write the deterministic solution (if you can)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If step 4 takes less than 100 lines of code → you don't need AI.&lt;/p&gt;

&lt;p&gt;If step 4 is impossible → AI might be the right tool.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I'm Doing Tomorrow
&lt;/h2&gt;

&lt;p&gt;I'm going to break down something most engineers skip:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to actually structure an AI system once you've confirmed the problem is worth solving.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because the architecture decisions you make early will determine whether your system is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reliable or brittle&lt;/li&gt;
&lt;li&gt;Maintainable or a black box&lt;/li&gt;
&lt;li&gt;Scalable or a one-off hack&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We'll cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Input validation (most failures happen here)&lt;/li&gt;
&lt;li&gt;Prompt orchestration (not just a single call)&lt;/li&gt;
&lt;li&gt;Output schemas (structured responses are non-negotiable)&lt;/li&gt;
&lt;li&gt;Fallback strategies (when AI doesn't know)&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Final Thought&lt;/p&gt;

&lt;p&gt;We already have the recipes for AI systems.&lt;/p&gt;

&lt;p&gt;RAG. Agents. Workflows. Fine-tuning.&lt;/p&gt;

&lt;p&gt;But having a recipe doesn’t mean you should cook that dish.&lt;/p&gt;

&lt;p&gt;The real skill isn’t using AI.&lt;br&gt;
It’s knowing when not to.&lt;/p&gt;




&lt;p&gt;This is Day 1 of documenting how I think about building AI systems in production—&lt;br&gt;
what works, what breaks, and where most approaches fail under real-world pressure.&lt;/p&gt;

&lt;p&gt;If you’re working on similar systems, I’m interested in how you’re approaching it—&lt;br&gt;
especially where things didn’t go as expected.&lt;/p&gt;




&lt;p&gt;For context, I’ve been exploring related ideas around AI vs AGI and system design here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hashnode → &lt;a href="https://hashnode.com/@abhimishra-devops90" rel="noopener noreferrer"&gt;https://hashnode.com/@abhimishra-devops90&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;LinkedIn → &lt;a href="https://www.linkedin.com/in/abhishek-mishra-aws-devops/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/abhishek-mishra-aws-devops/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
