<?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: Itai Gendler</title>
    <description>The latest articles on DEV Community by Itai Gendler (@itaigendler).</description>
    <link>https://dev.to/itaigendler</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%2F1152532%2Fe1262351-6e10-42c0-b48a-fd9d9b7ab2cf.jpeg</url>
      <title>DEV Community: Itai Gendler</title>
      <link>https://dev.to/itaigendler</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/itaigendler"/>
    <language>en</language>
    <item>
      <title>AI Is Writing Code for Products It Doesn’t Understand</title>
      <dc:creator>Itai Gendler</dc:creator>
      <pubDate>Thu, 06 Aug 2026 12:19:12 +0000</pubDate>
      <link>https://dev.to/itaigendler/ai-is-writing-code-for-products-it-doesnt-understand-5785</link>
      <guid>https://dev.to/itaigendler/ai-is-writing-code-for-products-it-doesnt-understand-5785</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Coding agents can read code, tests, and tickets, but without a reliable product definition, they still have to reconstruct what the product is supposed to be.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We are giving AI control of the codebase without giving it a reliable definition of the product.&lt;/p&gt;

&lt;p&gt;Ask a coding agent to change what happens when a free trial ends. Should the workspace become read-only? Is there a grace period? Can users export their data? Do scheduled actions keep running? What happens to invited teammates?&lt;/p&gt;

&lt;p&gt;The agent can find the relevant code and tests. What it cannot find is which of those answers represent the product's current intent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Evidence is not a product definition
&lt;/h2&gt;

&lt;p&gt;The answers are usually scattered across the pricing page, an old launch ticket, billing logic and permissions logic, tests, a support playbook, and somebody's memory.&lt;br&gt;
Every source is useful. None defines the current product as a whole.&lt;/p&gt;

&lt;p&gt;Trial expiration crosses billing, permissions, collaboration, data retention, exports, and automations. Each system can behave consistently while producing a customer experience nobody deliberately defined.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The agent does not discover the product. It reconstructs it, filling every gap with a product decision nobody explicitly made—then writes code as if that reconstruction had been approved.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Code is the closest evidence of what shipped, but it cannot explain what the behavior means. A temporary workaround looks much like a deliberate business rule. Tests confirm what happens, not why it must happen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Better documentation is not enough
&lt;/h2&gt;

&lt;p&gt;Wikis, design documents, and decision logs are good at authoring. Their shared weakness is that they cannot tell us when they have become false. When behavior changes underneath a document, nothing fails; it quietly stops being true.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The problem is not that a product definition is hard to write. The problem is&lt;br&gt;
that a written product definition has no way of knowing it is now wrong.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Agents turn ambiguity into action
&lt;/h2&gt;

&lt;p&gt;People reconstruct the product from the same fragments. Coding agents simply do it faster—and then act on the reconstruction.&lt;/p&gt;

&lt;p&gt;More context gives the agent more evidence. It does not create the missing decision that only lived in a conversation or distinguish an intentional constraint from a historical accident.&lt;/p&gt;

&lt;p&gt;The result can be reasonable code for a subtly incorrect product. Reviewers catch some of it. The rest ships.&lt;/p&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1qqnpqz49q26zy99vdrp.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1qqnpqz49q26zy99vdrp.png" alt=" " width="799" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What a durable product definition requires
&lt;/h2&gt;

&lt;p&gt;Simply documenting the product more clearly is not enough. A durable product definition must be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Current and centralized:&lt;/strong&gt; one shared definition of how the product should work, updated as the product changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Versioned with the code:&lt;/strong&gt; changing in the same history as implementation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Readable by people and agents:&lt;/strong&gt; structured without becoming opaque.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Organized around product behavior:&lt;/strong&gt; actors, journeys, scenarios, and rules.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tied to evidence:&lt;/strong&gt; making drift visible when implementation and intent
diverge.&lt;/li&gt;
&lt;/ul&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fydlgj6lzeb8xl4hqdis6.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fydlgj6lzeb8xl4hqdis6.png" alt=" " width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Call it a product model or a product definition. The name matters less than the property: it cannot quietly become fiction.&lt;/p&gt;

&lt;p&gt;With that definition, people can understand the current product without archaeology, and agents can build from explicit decisions instead of inventing the missing ones.&lt;/p&gt;

&lt;p&gt;Over the past few weeks, I've been working on an open standard and an open-source project to address this problem. I'm planning to release it soon.&lt;/p&gt;

&lt;p&gt;If an AI agent has to understand your product today, where would it learn what the product is actually supposed to do?&lt;/p&gt;

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