Destinatari
Penso che quando rispondi a questa domanda devi davvero chiederti chi è destinato a leggere questa documentazione. Uno sviluppatore ha esigenze sostanzialmente diverse rispetto a un utente o persino a un analista aziendale.
- Come sviluppatore: documentazione associata al codice in fase di studio, dettagli come il contratto di interfaccia ed esempi di utilizzo. Forse una documentazione di alto livello e specifiche del protocollo per una buona misura.
- Come utente: documentazione disponibile tramite il menu di aiuto o un sito Web accessibile su come utilizzare il software.
- Come analista aziendale: la documentazione disponibile come documento o come sito Web accessibile è utile. Una modesta quantità di dettagli su protocolli, architettura di alto livello e casi d'uso sono i migliori.
Manutenzione
Per sapere dove posizionare la fonte per questa documentazione dipenderà dal tuo pubblico e da chi sta scrivendo per il tuo pubblico.
- Hai solo una casa di sviluppatori? Inserisci tutto nel codice. Lo incoraggerà ad essere aggiornato. Dovrai lavorare su una cultura che incoraggi gli aggiornamenti della documentazione a essere importanti quanto le modifiche al codice.
- Hai una casa di sviluppatori e scrittori di documentazione? Dividi le responsabilità. Utilizzare gli strumenti orientati agli sviluppatori per gli sviluppatori, utilizzare gli strumenti degli autori della documentazione per gli autori della documentazione.
Laddove possibile, assicurarsi che sia possibile eseguire esempi di codice o casi d'uso. Automatizza la loro esecuzione e segnala errori interni. È probabile che queste pagine siano una documentazione scadente o negativa.
Inoltre, qualunque strumento tu scelga di scrivere la tua documentazione, hai bisogno di un mezzo affidabile per associare una versione specifica della documentazione a una versione specifica del codice. Ciò è ancora vantaggioso anche in una felice terra delle nuvole con un'unica distribuzione sempreverde.
Documentazione di integrazione
L'integrazione potrebbe essere necessaria per produrre della documentazione, ma si noti che solo l'utente si aspetta che un unico posto acceda a tutta la documentazione di cui ha bisogno.
L'analista aziendale è abbastanza soddisfatto delle specifiche API, delle specifiche di progettazione e degli scenari di utilizzo da collocare in documenti separati o sezioni separate di un sito Web.
Lo sviluppatore preferisce tutto ciò che è visibile dalla fonte, ma è abbastanza felice di avere un paio di documenti di progettazione di alto livello e documenti di specifica del protocollo dettagliati esterni al codice, sebbene preferibilmente all'interno dello stesso checkout.
Il tuo caso
Ad essere onesti, la documentazione nella tua wiki non è probabilmente lo stesso tipo di documentazione nella tua base di codice. Potrebbe non avere senso fondere anche questo.
D'altra parte, l'integrazione dei due può essere garantita in pochi semplici modi.
- Gli strumenti di documentazione di origine (come doxygen) possono produrre html e una wiki vive su un web server. Sarebbe un semplice punto di integrazione servire semplicemente una versione integrata insieme al wiki e collegare tra loro i due.
- Alcuni prodotti wiki ti permetteranno di eseguire il wiki direttamente da un file che puoi archiviare in una base di codice. Ciò fornisce un semplice strumento wysiwyg mantenendo la documentazione accoppiata al codice.
- Possono essere adattati anche altri formati come il pdf, ma ciò dipenderà dagli strumenti specifici che si desidera utilizzare. Potrebbe avere senso raschiare il tuo wiki in file markdown e alimentarlo attraverso doxygen (o altri strumenti). Potrebbe avere senso pdf separatamente il wiki e la fonte e utilizzare uno strumento di fusione pdf.
Alla fine, scopri quale sistema di documentazione ha bassi costi di manutenzione e ti assiste nel fornire un prodotto di alta qualità visto dal tuo pubblico di sviluppatori, analisti aziendali e utenti. Tutto ciò che impedisce uno di questi gruppi ridurrà necessariamente la qualità dei prodotti.