<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/in-defense-of-not-understanding-your-codebase-kkk0ijcml" -->

---
title: In defense of not understanding your codebase | daily.dev
description: A defense of working with partial codebase understanding in large software systems, arguing against Peter Naur&#x27;s &#x27;Programming as Theory Building&#x27; thesis. The...
canonical: https://daily.dev/posts/in-defense-of-not-understanding-your-codebase-kkk0ijcml
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: In defense of not understanding your codebase | daily.dev
og:description: A defense of working with partial codebase understanding in large software systems, arguing against Peter Naur&#x27;s &#x27;Programming as Theory Building&#x27; thesis. The...
og:url: https://daily.dev/posts/in-defense-of-not-understanding-your-codebase-kkk0ijcml
og:image: https://api.daily.dev/og/posts/kKk0IjCmL.png
og:image:alt: In defense of not understanding your codebase
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# In defense of not understanding your codebase

**[sean goedecke](https://daily.dev/sources/seangoedecke)** · 9 min read · 34 upvotes · 4 comments

## Summary

A defense of working with partial codebase understanding in large software systems, arguing against Peter Naur's 'Programming as Theory Building' thesis. The author contends that Naur's recommendation to scrap and rewrite programs when team knowledge is lost is impractical at scale — large systems can't be rebuilt from scratch, and abandoned codebases are regularly revived. In modern large codebases, everyone operates with an incomplete mental model, and effective engineers must make confident decisions despite that uncertainty. The post also frames 'maintaining a theory of the codebase' as just one engineering value among many, to be traded off against speed, legal requirements, and organizational realities — not treated as an absolute prerequisite.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://seangoedecke.com/in-defense-of-not-understanding-your-codebase>

## Community discussion

Top comments from developers on daily.dev.

**@idoshamun** · 10 upvotes

> These days no one's familiar with their codebase. Only Fable does

**@nark3d** · 6 upvotes

> I only ever understood my own corner of any big codebase properly, and took the rest on trust from the tests and the docs. That worked because someone had written those things down, and with agents writing a fair chunk of the code now I'd say that habit matters more than it did. I've written up the tests half of that argument here: https://prickles.org/tenet/living-documentation/TS1

**@husseinkizz** · 3 upvotes

> Tests and documentation is cheap these days, one not doing them now is just being stupidly lazy, cause over time this is all you gonna have to prove codebase is aging well.

**@nimbussage** · 1 upvotes

> Its awesome to see devs thinking deeply about this stuff TBH. I am trying to help with the skill gaps we are seeing in the industry. Its the reason I built [CodeTrain](https://codetrain.ai), a framework to actually put your AI into Socratic teaching mode.
>
>
> No `here's the code, just copy paste to your heart's content` when running through a lesson, and catching up on any knowledge gaps in your own code with real learning techniques is simply a prompt and a few short lesson steps away.
>
> After experiencing it, I honestly feel like the currently available AI coding tools should have saner...

## Similar posts on daily.dev

- [blog dot information dash superhighway dot net](https://daily.dev/posts/blog-dot-information-dash-superhighway-dot-net-j9fn8gg7v) · Lobsters · 15 upvotes · 0 comments
- [Most Developers Don’t Build New Things](https://daily.dev/posts/most-developers-don-t-build-new-things-nmi2dgmqj) · RUBYLAND · 0 upvotes · 0 comments
- [Programming \(with AI agents\) as theory building](https://daily.dev/posts/programming-with-ai-agents-as-theory-building-finoer9hx) · sean goedecke · 2 upvotes · 0 comments

---

Tags: [#llm](https://daily.dev/tags/llm), [#company-culture](https://daily.dev/tags/company-culture)

[View this post on daily.dev](https://daily.dev/posts/in-defense-of-not-understanding-your-codebase-kkk0ijcml)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"In defense of not understanding your codebase","url":"https://daily.dev/posts/in-defense-of-not-understanding-your-codebase-kkk0ijcml","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/in-defense-of-not-understanding-your-codebase-kkk0ijcml"},"datePublished":"2026-07-11T07:32:37.373Z","dateModified":"2026-09-14T08:18:43.628Z","description":"A defense of working with partial codebase understanding in large software systems, arguing against Peter Naur's 'Programming as Theory Building' thesis. The...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/479e95ee2af112c350fa09a341f0c630?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/479e95ee2af112c350fa09a341f0c630?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"sean goedecke","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"sean goedecke","logo":"https://media.daily.dev/image/upload/s--WNgiZyDx--/f_auto,q_auto/v1765713419/logos/seangoedecke","url":"https://daily.dev/sources/seangoedecke"},"commentCount":4,"discussionUrl":"https://daily.dev/posts/in-defense-of-not-understanding-your-codebase-kkk0ijcml","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":34},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":4}],"keywords":"llm,company-culture","timeRequired":"PT9M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"sean goedecke","item":"https://daily.dev/sources/seangoedecke"},{"@type":"ListItem","position":3,"name":"In defense of not understanding your codebase"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/in-defense-of-not-understanding-your-codebase-kkk0ijcml","comment":[{"@type":"Comment","text":"These days no one’s familiar with their codebase. Only Fable does","datePublished":"2026-07-11T18:50:54.914Z","url":"https://daily.dev/posts/kKk0IjCmL#c-C7KoAbP4B","author":{"@type":"Person","name":"Ido Shamun","url":"https://daily.dev/idoshamun","image":"https://media.daily.dev/image/upload/s---xy_OAwk--/f_auto,q_auto/v1703781380/avatars/avatar_28849d86070e4c099c877ab6837c61f0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":10}},{"@type":"Comment","text":"I only ever understood my own corner of any big codebase properly, and took the rest on trust from the tests and the docs. That worked because someone had written those things down, and with agents writing a fair chunk of the code now I’d say that habit matters more than it did. I’ve written up the tests half of that argument here: https://prickles.org/tenet/living-documentation/TS1","datePublished":"2026-07-12T11:21:59.876Z","url":"https://daily.dev/posts/kKk0IjCmL#c-QCq3eBZzz","author":{"@type":"Person","name":"Adam","url":"https://daily.dev/nark3d","image":"https://avatars.githubusercontent.com/u/2162621?v=4"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":6}},{"@type":"Comment","text":"Tests and documentation is cheap these days, one not doing them now is just being stupidly lazy, cause over time this is all you gonna have to prove codebase is aging well.","datePublished":"2026-07-12T13:13:51.370Z","url":"https://daily.dev/posts/kKk0IjCmL#c-A9GUjPHya","author":{"@type":"Person","name":"Hussein Kizz","url":"https://daily.dev/husseinkizz","image":"https://media.daily.dev/image/upload/s--bqCp79lk--/f_auto/v1704865561/avatars/avatar_WgJOIEdxX"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":3}},{"@type":"Comment","text":"Its awesome to see devs thinking deeply about this stuff TBH. I am trying to help with the skill gaps we are seeing in the industry. Its the reason I built CodeTrain, a framework to actually put your AI into Socratic teaching mode.\nNo here's the code, just copy paste to your heart's content when running through a lesson, and catching up on any knowledge gaps in your own code with real learning techniques is simply a prompt and a few short lesson steps away.\nAfter experiencing it, I honestly feel like the currently available AI coding tools should have saner defaults on how easy they make it to have ZERO knowledge of an entire codebase. A simple toggle, if you don’t want to know anything turn it off.","datePublished":"2026-07-14T18:10:15.063Z","dateModified":"2026-07-14T18:10:46.810Z","url":"https://daily.dev/posts/kKk0IjCmL#c-lui0BCPd1","author":{"@type":"Person","name":"NimbusSage","url":"https://daily.dev/nimbussage","image":"https://media.daily.dev/image/upload/s--t9w6qUXK--/f_auto/v1784048377/avatars/avatar_DXLLj12vIreCr5xsRyP0e?_a=BAMAMicg0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1}}]}
```

