<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Very Good Software</title>
  <subtitle>Helping your team level up with proven practices, intentional architecture and honest guidance.</subtitle>
  <link href="https://verygoodsoftware.net/feed.xml" rel="self" />
  <link href="https://verygoodsoftware.net/" />
  <id>https://verygoodsoftware.net/</id>
  <updated>2026-08-21T00:00:00.000Z</updated>
  <author>
    <name>Christoph Gockel</name>
  </author>
  <entry>
    <title>A Rule Is Not the Last Step</title>
    <link href="https://verygoodsoftware.net/posts/a-rule-is-not-the-last-step/" />
    <id>https://verygoodsoftware.net/posts/a-rule-is-not-the-last-step/</id>
    <updated>2026-08-21T00:00:00.000Z</updated>
    <published>2026-08-21T00:00:00.000Z</published>
    <summary>Moving a convention out of a document and into the linter turns a request into a rule. There is one more step after that. I wrote one writing rule down for ten years and it changed nothing. Now I decide it once and never think about it again.</summary>
  </entry>
  <entry>
    <title>A Request Is Not a Rule</title>
    <link href="https://verygoodsoftware.net/posts/a-request-is-not-a-rule/" />
    <id>https://verygoodsoftware.net/posts/a-request-is-not-a-rule/</id>
    <updated>2026-08-01T00:00:00.000Z</updated>
    <published>2026-08-01T00:00:00.000Z</published>
    <summary>The talk around agents is all about new machinery. Often the better move is to point the old machinery at the agent&#39;s output. A convention in a document is a request. In the linter it becomes a rule.</summary>
  </entry>
  <entry>
    <title>The Tests Pass, Now Read the Code</title>
    <link href="https://verygoodsoftware.net/posts/the-tests-pass-now-read-the-code/" />
    <id>https://verygoodsoftware.net/posts/the-tests-pass-now-read-the-code/</id>
    <updated>2026-07-26T00:00:00.000Z</updated>
    <published>2026-07-26T00:00:00.000Z</published>
    <summary>Passing tests tell you the code ran. They do not tell you the design is sound. A story about test-induced design damage in AI-written code.</summary>
  </entry>
  <entry>
    <title>You Can&#39;t Prompt Your Way to Quality</title>
    <link href="https://verygoodsoftware.net/posts/you-cant-prompt-your-way-to-quality/" />
    <id>https://verygoodsoftware.net/posts/you-cant-prompt-your-way-to-quality/</id>
    <updated>2026-07-01T00:00:00.000Z</updated>
    <published>2026-07-01T00:00:00.000Z</published>
    <summary>LLM-assisted coding is useful. But the idea that it replaces engineering is wrong. Quality is not something you achieve once and then keep by default. It takes constant attention.</summary>
  </entry>
</feed>
