It also has a lot of overlap with the concept of &quot;<i>tacit knowledge</i>&quot;:  <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Tacit_knowledge" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Tacit_knowledge</a><p>The programmer is unable to completely and unambiguously articulate the &quot;design&quot; in source code and documentation.  Yes, the source code can be improved with with longer names of variables and functions in addition to liberal code comments.  And documentation can be expanded to include chapters on &quot;architectural overview&quot; and &quot;technical motivations&quot; to help fill the gaps but it will inevitably be incomplete.