Cara eu diria que depende do que você está documentando, por exemplo:

Documentação de web API: Nesse caso basta fazer um Swagger bem parametrizado, só de colocar boas nomeclaturas nos objetos DTO, meteodos e endpoints já te deu meio caminho andando. Depois disso basta colocar alguns doc comments nas coisas que requerem uma explicação mais complexa.

Documentação/Manual de aplicações: Esse daqui eu considero o mais chato, difícil e inútil, principalmente se ta em formato de .pdf ou PowerPoint porque qualquer mudança a doc ja fica obsoleta. Neste caso um bom UX facilita bastante porque o utilizador vai se adaptar fácil.

Documentação de projetos/bibliotecas: Esses é o que eu mais gosto de fazer, principalmente se for numa linguagem estilo Rust que dá pra fazer doc comments realmente uteis pode dar uma olhada na documentação que fiz para o meteoritus acho que ficu bem completa.

Eu sempre tento deixar o GPT falar por mim, passo para ele o contexto da aplicação e depois peço um resumo daquilo e vou revisando, acredito que facilita muito o trabalho porque você não precisa pensar muito em como explicar o que está na sua cabeça. Também gosto de usar para ele corrigir e melhorar gramaticalmente.

A minha dica para você, que inclusive eu fiz enquanto escrevia o meteoritus é ir documentando as coisas a medida que faz, por exemplo sempre que já tiver alguma coisa estável você vai documentado aquilo, se somar isso a técnicas de clean code e nomeclatura, além de micro commits autoexplicativos você consegue facilmente passar isso para um modelo estilo chat GPT e ele vai te fazer quase 80% do trabalho pesado.