@kyle This is true even in languages that are considered at a higher level of abstraction. i.e., closer to human language or clearer in describing the problem solution. Leon Starr does a very good job of explaining why good documentation is important in his book, Executable UML: How to Build Class Models. He also stresses how important it is to preserve even the little pictures that you might draw to help yourself understand the problem. Documenting assumptions is very important.