TL;DR
Understanding a codebase can vary significantly between small and large teams, with the latter often requiring only partial comprehension. Peter Naur's concept of 'programming as theory building' suggests that a programmer's intuitive grasp of a system is more valuable than the code itself.
✦ Why It Matters
Engineers should focus on building their intuitive understanding of systems rather than striving for complete code comprehension.
Key Takeaways
Full Summary
In software engineering, the depth of understanding required for a codebase can differ greatly based on team size and turnover. Smaller teams, like those working on Redis or indie games, typically need comprehensive knowledge of their code to function effectively.
In contrast, larger teams, such as those at Google or GitHub, often operate with a partial understanding due to the complexity and scale of their systems. Peter Naur's influential paper, 'Programming as Theory Building,' argues that the primary product of programming is the developer's theory of the program rather than the code itself.
Naur suggests that if a team loses its understanding, they might be better off starting anew rather than trying to decipher existing code. This perspective highlights that in large codebases, a complete understanding is impractical, and partial understanding can still lead to productive contributions.
Related