---
title: "💭 No docs, no bugs"
description: "!https://simonwillison.net/2025/May/22/no-docs-no-bugs/#atom-everything"
date: 2025-05-22
published: true
tags:
  - dev
  - thought
template: link
---


<div class="embed-card embed-card-external">
  <a href="https://simonwillison.net/2025/May/22/no-docs-no-bugs/#atom-everything" class="embed-card-link" target="_blank" rel="noopener noreferrer">
    <div class="embed-card-content">
      <div class="embed-card-title">No docs, no bugs</div>
      <div class="embed-card-description">If your library doesn&#39;t have any documentation, it can&#39;t have any bugs. Documentation specifies what your code is supposed to do. Your tests specify what it actually does. Bugs exist …</div>
      <div class="embed-card-meta">Simon Willison’s Weblog &middot; simonwillison.net</div>
    </div>
  </a>
</div>


> Bugs exist when your test-enforced implementation fails to match the behavior described in your documentation. Without documentation a bug is just undefined behavior.

This is quite an interesting thought, so does this mean that, none of my undocumented side projects have bugs?  no I think there is still some implied behavior that naming things covers.  a function `get_bucket_contents` implies doing something wtih s3, getting stuff from your local filesystem or crashing would be considered a bug.  I think the argument here is that if I start mining bitcoin when you call `get_bucket_contents` and I have not documented it that this is a feature not a bug.  If I were to take this a step further, now do I need to document that this does not also start a bitcoin miner?  maybe this is more of an unwanted feature than a bug, I'm convincing myself more and more.

!!! note

    This post is a <a href="/thoughts/" class="wikilink" data-title="Thoughts" data-description="These are generally my thoughts on a web page or some sort of url, except a rare few don&#39;t have a link. These are dual published off of my..." data-date="2024-04-01">thought</a>. It's a short note that I make
    about someone else's content online <a href="/tags/thoughts/" class="hashtag-tag" data-tag="thoughts" data-count=2 data-reading-time=3 data-reading-time-text="3 minutes">#thoughts</a>
