Documentation is needed. Others need to understand what our application is, what it does how it does it, how it behaves. The application code, as well, needs to be understood, not only by the machine but also by the next developer reading it. We need to document all the way from a faraway view of the system to a detailed view of the system. Then the question is: What and how to document?