There are two key benefits to well-documented and clean code, especially if you will have future employees take over development.
- Your earliest developers will think more of your programming. If they only think you’re a genius because this great mass of inexplicable code somehow results in a functional product, then they are not programmers and are not qualified to build upon your shaky foundation.
- You will be setting the organisational standard for quality programming in the future, and potentially avoid huge future reengineering costs or costly production errors.
If your code is messy and undocumented then be sure that any competent programmer joining your organisation will be cursing this predecessor noob who thinks that by obscuring his code he will slow down people from realising that he doesn’t know what he is doing. Maybe that tricky algorithm you designed, if explained, someone will appreciate the genius, and will not waste company time reinventing the wheel. At least any adjustments can have their reasons written into the master code.
The above is just my opinion, having never worked for anyone who considered it worth their time to document their work, or to use any diagrammatic means of planning a project!