Público-alvo
Acho que, ao responder a essa pergunta, você realmente precisa perguntar quem deve ler esta documentação. Um desenvolvedor tem necessidades muito diferentes de um usuário ou mesmo de um analista de negócios.
- Como desenvolvedor: documentação associada ao código que está sendo estudado, detalhes como o contrato da interface e exemplos de uso. Talvez alguma documentação de alto nível e especificações de protocolo sejam uma boa medida.
- Como usuário: documentação disponível no menu de ajuda ou em um site acessível sobre como usar o software.
- Como analista de negócios: a documentação disponível como documentos ou como um site acessível é útil. Uma quantidade modesta de detalhes sobre protocolos, arquitetura de alto nível e casos de uso são os melhores.
Manutenção
O local onde a fonte desta documentação dependerá do público e de quem está escrevendo para o público.
- Só tem uma casa de desenvolvedores? Coloque tudo no código. Isso o incentivará a ser atualizado. Você precisará trabalhar em uma cultura que incentive as atualizações de documentação a serem tão importantes quanto as alterações de código.
- Tem uma casa de desenvolvedores e redatores de documentação? Divida as responsabilidades. Use as ferramentas orientadas ao desenvolvedor para desenvolvedores, use as ferramentas dos gravadores de documentação para os gravadores de documentação.
Sempre que possível, garanta que exemplos de código ou casos de uso possam ser executados. Automatize a execução e sinalize falhas internamente. Provavelmente, essas páginas são documentação ruim ou ruim.
Além disso, independentemente das ferramentas nas quais você escolhe escrever sua documentação, você precisa de um meio confiável para associar uma versão específica da documentação a uma versão específica do código. Isso ainda é benéfico, mesmo em terrenos felizes na nuvem, com uma única implantação perene.
Integrando a documentação
Pode ser necessária integração para produzir alguma documentação, mas observe que apenas o usuário espera que um único local acesse toda a documentação necessária.
O analista de negócios está bastante satisfeito com a especificação da API, as especificações de projetos e os cenários de uso, localizados em documentos separados ou em seções separadas de um site.
O desenvolvedor prefere tudo o que é visível a partir da fonte, mas está feliz por ter alguns documentos de design de alto nível e documentos detalhados de especificação de protocolo externos ao código, embora de preferência no mesmo check-out.
Seu caso
Para ser honesto, a documentação em seu wiki provavelmente não é o mesmo tipo de documentação em sua base de código. Pode não fazer sentido mesclar o também.
Por outro lado, integrar os dois pode ser oferecido de algumas maneiras simples.
- As ferramentas de documentação de origem (como doxygen) podem produzir html, e um wiki fica em um servidor da web. Seria um ponto de integração simples servir simplesmente uma versão compilada ao lado do wiki e interligar os dois.
- Alguns produtos wiki permitem que você execute o wiki diretamente de um arquivo que você pode fazer check-in em uma base de código. Isso fornece uma ferramenta wysiwyg simples, mantendo a documentação emparelhada ao código.
- Outros formatos, como o pdf, também podem ser acomodados, mas isso se resumirá às ferramentas específicas que você deseja usar. Pode fazer sentido transformar seu wiki em arquivos de remarcação e alimentá-lo através do doxygen (ou outras ferramentas). Pode fazer sentido pdf o wiki e a fonte separadamente e usar uma ferramenta de fusão de pdf.
No final do dia, descubra qual sistema de documentação tem baixos custos de manutenção e o ajude a fornecer um produto de alta qualidade, visto pelo seu público de desenvolvedores, analistas de negócios e usuários. Qualquer coisa que impeça qualquer um desses grupos reduzirá necessariamente a qualidade dos produtos.