<?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: Akhil Kalra</title>
    <description>The latest articles on DEV Community by Akhil Kalra (@akhil_kalra_7ccbf0418504c).</description>
    <link>https://dev.to/akhil_kalra_7ccbf0418504c</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%2F3887321%2Fe2262257-6fe4-4f65-b1bf-fa01d24091ce.png</url>
      <title>DEV Community: Akhil Kalra</title>
      <link>https://dev.to/akhil_kalra_7ccbf0418504c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/akhil_kalra_7ccbf0418504c"/>
    <language>en</language>
    <item>
      <title>What Comes After Agile?</title>
      <dc:creator>Akhil Kalra</dc:creator>
      <pubDate>Mon, 27 Apr 2026 13:59:28 +0000</pubDate>
      <link>https://dev.to/akhil_kalra_7ccbf0418504c/what-comes-after-agile-36lo</link>
      <guid>https://dev.to/akhil_kalra_7ccbf0418504c/what-comes-after-agile-36lo</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR —&lt;/strong&gt; AI-augmented Agile is where most teams are today: same sprints, same standups, just faster. But when agents start executing entire implementations from specs, the Agile framework — not its values — stops making sense. What emerges is a new paradigm: Intent-Driven Development. Small teams of 3–4 experts focused on &lt;em&gt;what&lt;/em&gt; to build, while agents handle the &lt;em&gt;how&lt;/em&gt;. Iteration shifts from code to specs. Cycles compress from weeks to hours. The spec becomes the primary artifact — not documentation, but the input to the machine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Humans own intent. Agents own execution. Specs are the contract between them.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;For 25 years, Agile has been the dominant way we build software. It replaced Waterfall's rigid plans with iteration, feedback, and small empowered teams. It worked — because the bottleneck was clear: skilled humans translating requirements into code is slow, expensive, and error-prone. Every Agile practice exists to manage that constraint.&lt;/p&gt;

&lt;p&gt;Now AI is changing the constraint itself. And the industry is responding in two distinct phases. But first, a key nuance: Agile was born as a reaction to Big Design Up Front. Spec-driven development with agents seems to swing back toward specs — but agent-era specs aren't the heavyweight, static documents of the Waterfall era. They're lightweight, living, executable artifacts. You're taking the user stories and acceptance criteria that Agile teams already write and making them precise enough for an agent to execute. The spec isn't documentation anymore — it's the &lt;em&gt;input to the machine&lt;/em&gt;. That changes everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Phase 1: Where We Are Today — AI Inside the Agile Box
&lt;/h2&gt;

&lt;p&gt;Most teams right now are doing the sensible thing: plugging AI into their existing Agile workflows. And it's genuinely useful.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backlog cleanup.&lt;/strong&gt; AI summarizes stale tickets, groups duplicates, flags high-risk stories based on past delivery patterns. Teams report saving 5–6 hours per sprint just on backlog hygiene.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;First-draft artifacts.&lt;/strong&gt; AI generates acceptance criteria from vague feature requests, rewrites tickets for clarity, suggests test cases. Developers review and refine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flow visibility.&lt;/strong&gt; Early adopters are starting to move beyond velocity, using AI-generated bottleneck summaries to track cycle time and flow efficiency. This isn't mainstream yet, but the teams experimenting with it report sharper retro conversations almost immediately.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Emerging hybrid roles.&lt;/strong&gt; We're beginning to see developers pick up prompt engineering as a side skill. Scrum Masters experimenting with training AI agents. Product Owners exploring AI-generated insights for backlog prioritization. The roles haven't formally changed yet — but the boundaries are starting to blur.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is real. Productivity gains of 20–50% on routine tasks are well-documented. The Agile container — sprints, standups, retros, story points — stays intact. AI just makes everything inside it faster.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;But making Agile faster doesn't change what Agile &lt;em&gt;is&lt;/em&gt;. The team is still 5–7 people. The iteration is still 2 weeks. The bottleneck is still human coding throughput. It's a better engine in the same car.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The question is: what happens when the engine changes so fundamentally that the car doesn't make sense anymore?&lt;/p&gt;

&lt;h2&gt;
  
  
  Phase 2: Where We're Headed — Intent-Driven Development
&lt;/h2&gt;

&lt;p&gt;Here's what I'm starting to see in practice: AI agents that don't just &lt;em&gt;assist&lt;/em&gt; with coding but &lt;em&gt;execute entire implementations from specifications&lt;/em&gt;. You give them a well-written spec — with constraints, edge cases, acceptance criteria — and they produce working code, tests, and infrastructure.&lt;/p&gt;

&lt;p&gt;When that works reliably, the assumptions Agile was built on stop holding:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If agents write the code, I don't need three backend developers on my team.&lt;/li&gt;
&lt;li&gt;If agents generate tests, I don't need a dedicated QA engineer.&lt;/li&gt;
&lt;li&gt;If execution takes hours instead of weeks, two-week sprints are an artificial constraint.&lt;/li&gt;
&lt;li&gt;If the spec &lt;em&gt;is&lt;/em&gt; the input to the machine, story points measuring human effort are meaningless.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn't a tweak to Agile. It's a different paradigm. I've been calling it &lt;strong&gt;Intent-Driven Development&lt;/strong&gt; — because the core activity shifts from writing code to expressing intent.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Core Loop
&lt;/h3&gt;

&lt;p&gt;The traditional Agile cycle — Plan → Design → Develop → Test → Review → Deploy — compresses into five steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Discover&lt;/strong&gt; — Understand the problem deeply. Talk to users, map the domain, identify constraints. This is pure human work, and it's where the real value starts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Specify&lt;/strong&gt; — Translate that understanding into precise, executable specs. This is the hardest step — and the one most teams underestimate. A vague spec produces vague code, no matter how good the agent is.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate&lt;/strong&gt; — Agents produce code, tests, and infrastructure from the spec. This is where the machine takes over.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evaluate&lt;/strong&gt; — Review the output against intent. This isn't a code review — it's an &lt;em&gt;intent&lt;/em&gt; review. Did the spec produce the right thing? If not, you don't debug. You refine the spec.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integrate&lt;/strong&gt; — Ship, observe in production, learn. Part human judgment on what goes live, part agent-driven CI/CD.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That inner loop between Evaluate and Specify — refine the spec, regenerate, evaluate again — is where the real iteration happens. And it takes hours, not weeks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The loop: Discover → Specify → Generate → Evaluate → Integrate → repeat.&lt;/strong&gt; Three human steps, one agent step, one hybrid. When the output doesn't match intent, you don't debug code — you refine the spec and regenerate.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Team I'd Build Today
&lt;/h3&gt;

&lt;p&gt;If I were staffing a product team from scratch right now — knowing where this is headed — I wouldn't build a classic Agile team of 5–7. I'd build a team of 3–4 experts:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;th&gt;Focus&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Domain Expert&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The Why — understands users, the business, and asks the hard "what if?" questions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;System Architect&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The Boundaries — defines integrations, constraints, non-functional requirements, and the guardrails agents work within&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Spec Engineer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The What — translates intent into precise, executable specifications that agents can act on&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Quality Thinker&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The What-If — edge cases, failure modes, security implications, observability&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Notice what's missing: nobody on this team writes code as their primary job. Everyone works on &lt;em&gt;what to build&lt;/em&gt; and &lt;em&gt;why&lt;/em&gt;. The &lt;em&gt;how&lt;/em&gt; is delegated to agents. This isn't downsizing — it's a fundamentally different kind of team, and every person on it needs to be senior enough to think in systems.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Survives, What Doesn't
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;✓ Survives&lt;/th&gt;
&lt;th&gt;✕ Doesn't Survive&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Iteration and feedback loops&lt;/td&gt;
&lt;td&gt;2-week sprints&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Retrospectives (as "spec quality reviews")&lt;/td&gt;
&lt;td&gt;Story points and velocity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Continuous delivery&lt;/td&gt;
&lt;td&gt;Daily standups about code&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cross-functional ownership&lt;/td&gt;
&lt;td&gt;Dedicated QA roles&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;The 5–7 person team&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The Questions That Keep Me Up
&lt;/h2&gt;

&lt;p&gt;I'd be dishonest if I presented this as pure upside. There are real risks here, and as an architect, they're the ones I think about most:&lt;/p&gt;

&lt;h3&gt;
  
  
  How do we grow the next generation?
&lt;/h3&gt;

&lt;p&gt;We've seen this before. When cloud replaced on-premise infrastructure, an entire generation of engineers never learned to rack servers or configure physical switches. That skill became irrelevant — and that was fine. New entry points emerged around cloud-native thinking, IaC, and DevOps. The industry adapted.&lt;/p&gt;

&lt;p&gt;Writing code by hand may follow the same path. The real concern isn't that juniors won't learn to code — it's that they won't learn to &lt;em&gt;think in systems&lt;/em&gt;. Understanding how components interact, where failure modes hide, what trade-offs matter — that's the skill that matters, and it's harder to teach without getting your hands dirty. We'll need to deliberately design new apprenticeship paths around spec writing, system reasoning, and evaluating agent output. That won't emerge on its own.&lt;/p&gt;

&lt;h3&gt;
  
  
  Spec debt will be worse than tech debt.
&lt;/h3&gt;

&lt;p&gt;I've seen what happens when teams accumulate bad code. Now imagine accumulating bad specs — except each one generates bad code at machine speed. The discipline of precise specification becomes the single most important skill in software engineering.&lt;/p&gt;

&lt;h3&gt;
  
  
  Speed is not the same as correctness.
&lt;/h3&gt;

&lt;p&gt;I've watched teams celebrate shipping fast while building the wrong thing. Agents amplify this risk. Garbage specs produce garbage at scale. The teams that were already bad at writing clear requirements will be bad at this too — just faster.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who debugs production at 3 AM?
&lt;/h3&gt;

&lt;p&gt;This is the one that worries me most. If nobody on the team wrote the code, does anyone truly understand the system well enough to diagnose a cascading failure under pressure? There's a real risk of building systems that nobody fully comprehends. Isn't that terrifying for a DevOps team?&lt;/p&gt;




&lt;h2&gt;
  
  
  Where This Leaves Us
&lt;/h2&gt;

&lt;p&gt;Agile's &lt;em&gt;values&lt;/em&gt; — iteration, feedback, collaboration, responding to change — are more relevant than ever. Agile's &lt;em&gt;framework&lt;/em&gt; — sprints, points, standups, the 7-person team — was built for a world where humans write code. That world is ending.&lt;/p&gt;

&lt;p&gt;What comes next might be closer to what architecture was always supposed to be: small teams of experts, thinking deeply about the right thing to build, and letting the machines handle the rest.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Humans own intent. Agents own execution. Specs are the contract between them.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>agile</category>
      <category>ai</category>
      <category>softwareengineering</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Stop Vibing. Start Specifying.</title>
      <dc:creator>Akhil Kalra</dc:creator>
      <pubDate>Sun, 19 Apr 2026 13:18:00 +0000</pubDate>
      <link>https://dev.to/akhil_kalra_7ccbf0418504c/stop-vibing-start-specifying-29hd</link>
      <guid>https://dev.to/akhil_kalra_7ccbf0418504c/stop-vibing-start-specifying-29hd</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Vibe coding got you here fast. Spec-Driven Development keeps you from rebuilding everything in 18 months.&lt;/strong&gt; Here's the honest case for making the switch — and how tools like Kiro and Claude make it practical.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;~3 min read · Senior Architect's Perspective&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vibe coding (prompt → code) is great for prototypes and solo work — but doesn't scale to production teams or long-lived systems.&lt;/li&gt;
&lt;li&gt;Its core flaw: the AI has no memory of your architectural decisions, so every session risks contradicting the last.&lt;/li&gt;
&lt;li&gt;Spec-Driven Development (SDD) fixes this by making a machine-readable spec the persistent context for every AI code generation call.&lt;/li&gt;
&lt;li&gt;The spec encodes your domain boundaries, layer rules, and security requirements — so the AI executes a plan, not a guess.&lt;/li&gt;
&lt;li&gt;Kiro manages specs as repo artefacts; Claude authors and reasons over them. Together they cover the full workflow.&lt;/li&gt;
&lt;li&gt;Start with three files: a domain model spec, an ADR set, and a security NFR catalogue. One sprint is enough to begin.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Velocity without direction is just fast drift
&lt;/h2&gt;

&lt;p&gt;Vibe coding works. Until it doesn't. The inflection point is usually around the time you need your second engineer, your first compliance audit, or your third refactor of the same module.&lt;/p&gt;

&lt;p&gt;Describing what you want in plain language and watching an AI build it is genuinely powerful. Prototypes that took days now take hours. That is real. But an LLM generating code has no memory of the architectural decisions you made last week, no awareness of the security boundary your team agreed to, and no stake in the codebase's health six months from now. It optimises for the prompt. Every time.&lt;/p&gt;

&lt;p&gt;The result is not bad code, exactly. It's code that makes local sense but accumulates global incoherence — business logic bleeding into HTTP handlers, no consistent layering, security rules applied in some places but not others. &lt;strong&gt;Technical debt at machine speed.&lt;/strong&gt;&lt;/p&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;🟠 Vibe Coding&lt;/th&gt;
&lt;th&gt;🟢 Spec-Driven Development&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Approach&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Prompt → code, right now&lt;/td&gt;
&lt;td&gt;Spec → constrained code&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Strengths&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Extremely fast first draft&lt;/td&gt;
&lt;td&gt;Slower start, faster long term&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Great for PoCs and solo work&lt;/td&gt;
&lt;td&gt;Built for team + production&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Low barrier to entry&lt;/td&gt;
&lt;td&gt;Architectural rules enforced&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;AI fills architectural gaps&lt;/td&gt;
&lt;td&gt;AI executes a human-authored plan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Risks&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;⚠️ No persistent design intent&lt;/td&gt;
&lt;td&gt;✅ Security as a first-class input&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;⚠️ Compounds into mixed concerns&lt;/td&gt;
&lt;td&gt;✅ Spec is the persistent memory&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  What Spec-Driven Development actually means
&lt;/h2&gt;

&lt;p&gt;SDD is not a framework, a tool, or a process overhaul. It is one discipline: &lt;strong&gt;write a machine-readable specification before you prompt the AI to generate code — and feed that spec as context on every generation call.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The insight is simple: an AI model is only as good as the context it receives. Give it a well-formed specification encoding your domain boundaries, your layering rules, your security requirements, and your acceptance criteria, and it generates code that actually belongs in your system. Give it a vague prompt and you get plausible-looking code that may or may not fit.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;⚠️ The Specification Vacuum&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every AI code generation call is stateless. The model does not remember that you chose event sourcing for your order service, or that your team banned direct DB access from the HTTP layer. Without a persistent spec the AI can read, every session risks contradicting a previous one.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  The spec-first workflow
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9niu0dxkguaj040n9411.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9niu0dxkguaj040n9411.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The difference between a vibe prompt and a spec-grounded prompt is the difference between &lt;em&gt;"build me a login endpoint"&lt;/em&gt; and this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Context: @requirements.spec.md  @domain-model.spec.md  @architecture.spec.md

Task: Implement LoginUseCase in the Application layer.
- Must satisfy NFR-SEC-01 (bcrypt ≥12), NFR-SEC-02 (rate limit 5/min)
- Must emit AuthenticationAttempted domain event
- Must NOT import infrastructure — use IUserRepository port only
- Write unit tests alongside implementation

Do NOT generate controllers, routes, or HTTP types.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The AI is no longer free-forming. It is executing a plan written by engineers who understand the system. Security rules are constraints, not afterthoughts. Layer boundaries are instructions, not suggestions.&lt;/p&gt;




&lt;h2&gt;
  
  
  Kiro and Claude as spec-first partners
&lt;/h2&gt;

&lt;p&gt;These two tools approach SDD from complementary angles. Used together, they cover the full workflow from spec authoring to code generation.&lt;/p&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;
&lt;strong&gt;Kiro&lt;/strong&gt; (IDE-Native)&lt;/th&gt;
&lt;th&gt;
&lt;strong&gt;Claude&lt;/strong&gt; (AI Reasoning)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;What&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Amazon's agentic IDE treats specs as first-class project artefacts that live in the repo alongside code — not in a chat history that disappears.&lt;/td&gt;
&lt;td&gt;Claude's large context window and instruction-following make it the ideal spec authoring and code generation partner when specs are supplied as context.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Key features&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Spec files committed to version control&lt;/td&gt;
&lt;td&gt;200k context — full spec sets fit in one session&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Agents reference specs on every task&lt;/td&gt;
&lt;td&gt;Strong domain modelling from natural language&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Steering docs enforce architectural rules&lt;/td&gt;
&lt;td&gt;Generates ADRs and spec docs from discussions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Hook system for spec-compliance checks&lt;/td&gt;
&lt;td&gt;Enforces layer rules when explicitly stated&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Built for multi-session continuity&lt;/td&gt;
&lt;td&gt;Claude Code integrates spec files as project context&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;✅ Recommended Pairing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Use Claude to author specs — domain model discussions, ADR drafting, security NFR catalogues. Commit those files to your repo. Use Kiro's agent to execute code generation tasks against that persistent spec. Each tool does what it does best.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  When to vibe, when to spec
&lt;/h2&gt;

&lt;p&gt;This is not a case against vibe coding everywhere. It is a case for knowing when structure earns its cost.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Context&lt;/th&gt;
&lt;th&gt;Approach&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Hackathon / throwaway PoC&lt;/td&gt;
&lt;td&gt;🟠 Vibe&lt;/td&gt;
&lt;td&gt;Code gets discarded. Speed wins.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Solo project, no compliance risk&lt;/td&gt;
&lt;td&gt;🟠 Vibe&lt;/td&gt;
&lt;td&gt;No team alignment needed.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Early MVP, shape still unknown&lt;/td&gt;
&lt;td&gt;🔵 Lightweight spec&lt;/td&gt;
&lt;td&gt;Domain model only, skip full arch spec until stable.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Production service, team of 3+&lt;/td&gt;
&lt;td&gt;🟢 Spec-Driven&lt;/td&gt;
&lt;td&gt;Multi-session continuity requires persistent context.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regulated domain (finance / health)&lt;/td&gt;
&lt;td&gt;🟢 Spec-Driven&lt;/td&gt;
&lt;td&gt;Compliance requirements must be first-class spec citizens.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Greenfield platform, 2+ year horizon&lt;/td&gt;
&lt;td&gt;🟢 Spec-Driven&lt;/td&gt;
&lt;td&gt;Best time for discipline is before debt accumulates.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Your first spec-driven sprint
&lt;/h2&gt;

&lt;p&gt;You do not need to rewrite your codebase. You need three artefacts and a habit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Artefact 1 — Domain model spec.&lt;/strong&gt; Open a Claude session and describe your system's problem domain in plain language. Ask it to produce a domain model — entities, boundaries, events, rules. Review it with your team. Commit it as &lt;code&gt;docs/specs/domain-model.md&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Artefact 2 — Architecture Decision Records.&lt;/strong&gt; For each significant architectural decision — your database, your auth mechanism, your service boundaries — write a one-page ADR using Claude. Store them in &lt;code&gt;docs/adr/&lt;/code&gt;. These become standing instructions for every future AI prompt in that area.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Artefact 3 — Security NFR catalogue.&lt;/strong&gt; Add your security non-functional requirements as numbered, referenceable statements. Tie them to specific modules. Reference them in every AI task prompt that touches authentication, data handling, or external integrations.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;✅ One Sprint Is Enough to Start&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Dedicate one sprint to these three artefacts before writing new feature code. Teams that do this report dramatically more predictable AI-assisted development — and code reviews shrink because the spec handles the architectural discussion before the PR exists.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The vibe was never the problem
&lt;/h2&gt;

&lt;p&gt;Vibe coding gave developers something real: the ability to translate intent into implementation at a speed that was previously impossible. Dismissing it would be a mistake.&lt;/p&gt;

&lt;p&gt;But velocity without direction is not progress — it's drift. The AI can only execute, at enormous speed, whatever you point it at. &lt;strong&gt;A spec is what you point it at. That is the entire argument.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;References: Andrej Karpathy — "Vibe Coding" (2023) · Amazon Kiro Documentation (2025) · Anthropic Claude Docs (2025) · McKinsey Technology — Developer Productivity &amp;amp; AI Report (2024) · Michael Nygard — Documenting Architecture Decisions (2011)&lt;/em&gt;&lt;/p&gt;

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