Sim, definitivamente, MAS:
- A podridão do link será um problema. Idealmente, gere o link dinamicamente a partir de um documento de destino conhecido, mas obtenha o prefixo de alguma forma de configuração. Se o servidor mudar, você poderá manter o código antigo válido, atualizando este elemento de configuração. Você também pode disponibilizar o documento localmente apenas alterando esta configuração de prefixo.
- Controle de versão : no mesmo espírito, se você puder incluir controle de versão no link de alguma forma, para que o link sempre aponte para a versão correta da documentação.
- Torne o documento editável Algo como um site do tipo wiki para a sua documentação, onde você pode corrigir erros dinamicamente, idealmente, também permita que os usuários comentem diretamente na página. isso tornará muito mais fácil a participação dos usuários e o que eles precisam, e você obterá informações de ouro para manter seu documento em boas condições de trabalho, mas certifique-se de monitorá-lo regularmente e, acima de tudo, participe ativamente.
- Modelos gerados fazem com que seu sistema de construção gere o modelo básico para a documentação a partir de anotações no código diretamente. Porém, mantenha as coisas simples, mas isso garantirá que todos os links sempre aponte para uma documentação válida. Se você usa um wiki, certifique-se de poder empurrar esses modelos facilmente e promover o site de documentação da mesma maneira que para o seu código (tenha um site de desenvolvimento diferente do site de prod e promova o código para prod. execute as inserções no site do produto automaticamente).
Se você desenvolver com Java ou .NET, o documento poderá ser incluído em um arquivo jar ou DLL e, alterando o prefixo, seu código poderá buscá-lo localmente.
Se você escolher a abordagem wiki, recomendo o DokuWiki por sua simplicidade e pelo fato de ser baseado em arquivos de texto simples, o que tornaria muito fácil a injeção automatizada do sistema de compilação. Dito isto, eu não sei o suficiente sobre seu ambiente ou clientes para realmente saber se isso seria um bom ajuste para o YMMV.
Algumas das ferramentas mais bem-sucedidas que eu criei adotaram uma abordagem semelhante, na qual a mensagem de erro foi direcionada ao usuário real que provavelmente executaria a tarefa. Isso significava que eu tinha que fazer muitas exceções de captura e empacotamento para garantir que o erro estivesse no nível apropriado de abstração. Também assegurei-me de que cada mensagem de erro incluísse as fontes mais prováveis de erros e aponte para possíveis soluções "Você esqueceu de definir o valor da configuração xxxx?", "Verifique se xxx e yyy não conflitam, fornecendo nomes diferentes" etc. Onde XXX e outros enfeites seriam gerados a partir do contexto em que o erro ocorreu.
Essa abordagem foi um pouco mais simples, mas também mais limitada. No entanto, havia a vantagem de que a documentação sempre estaria presente quando necessário, sem a possibilidade de roteamento de link.
Sua abordagem é a próxima evolução. Muito mais complexo, mas também com retornos muito mais potenciais. Porém, será caro, mas, se bem feito, será recompensado com facilidade.