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.
95K Impressions4 Comments