Programming as Theory Building (1985)
Peter Naur's seminal 1985 paper, "Programming as Theory Building," argues against the prevailing view of programming as solely a process of producing artifacts like code and documentation. Instead, Naur proposed that the core of programming lies in the development of a "theory" within the minds of the programmers. This theory is a comprehensive understanding of the program's purpose, its internal structure, its relationship to the real-world problem it solves, and its operational environment. It's an evolving, shared mental model that allows developers to reason about, modify, and extend the software effectively. The paper emphasizes that this internal theory is distinct from the external artifacts. While code and documentation are manifestations of the theory, they do not fully capture it. The absence of this shared theory among a development team, or its loss due to personnel changes, significantly hinders a project's long-term viability and maintainability. Naur's work suggests that the true "product" of programming is not the code itself, but the theory held by the developers, which enables them to adapt the system to new requirements and fix issues. This perspective, published via Lobsters (as per the source), has profound implications for how software projects are managed, how knowledge is transferred, and how the value of a development team is perceived, shifting focus from mere output to deep understanding.
This foundational paper highlights that successful software development hinges on developers building a shared mental model, or "theory," of the system, crucial for long-term maintainability and evolution.