What is your approach to writing clean, maintainable documentation for the software and tools you develop?