Lack of proper documentation is one of the main reasons why developers rewrite a project/tool. Instead of putting in the effort to understand the code is old now, they just prefer to write new code from scratch.
Documentation helps future you and other developers contributing/building upon your project.
You want people to use your project. For that to happen, people need to first understand:
- Why your project is useful
- What problems does it solve
Documentation for your project helps you address these questions.
Within an organization or in the open source community, good documentation can make your work look very professional and outstanding. Users start to associate your name with good documentation if you keep up the practice.
One of the cornerstones of improving code base in open source community or even "inner source" (for proprietary software) is collaboration. Easiest way to invite others to collaborate is by allowing them to make "less intimidating" doc changes.
Contributions from community are aligned with original intentions of the author if the code is well documented.
Thinking about documentation along with writing code enables you to make good design decisions. If you are unable to define what a module or function does in simple language, you probably need to rethink about the logic.