Pubblico di destinazione
Penso che quando rispondi a questa domanda devi davvero chiederti chi è destinato a leggere questa documentazione. Uno sviluppatore ha esigenze molto diverse per un utente o anche un analista di business.
- Come sviluppatore: documentazione associata al codice studiato, dettagli come il contratto di interfaccia ed esempi di utilizzo. Forse una documentazione di alto livello e le 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.
- In qualità di 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
Quanto a dove posizionare il sorgente di questa documentazione dipenderà dal tuo pubblico e da chi scrive per il tuo pubblico.
- Hai solo una casa di sviluppatori? Metti tutto nel codice. Lo incoraggerà ad essere aggiornato. Avrai bisogno di lavorare su una cultura che incoraggi gli aggiornamenti della documentazione sia importante quanto le modifiche al codice.
- Avere una casa di sviluppatori e scrittori di documentazione? Dividi le responsabilità. Utilizza gli strumenti orientati agli sviluppatori per gli sviluppatori, usa gli strumenti di documentazione per gli scrittori di documentazione.
Dove possibile, assicurati che possano essere eseguiti esempi di codice o casi d'uso. Automatizza la loro esecuzione e contrassegna internamente i guasti. È probabile che queste pagine siano di scarsa o cattiva documentazione.
Inoltre, a prescindere dagli strumenti in cui si sceglie di scrivere la documentazione, è necessario un mezzo affidabile per associare una versione specifica della documentazione a una versione specifica del codice. Ciò è ancora vantaggioso anche in una felice nuvola di terra con una singola distribuzione sempreverde.
Integrazione della documentazione
Potrebbe essere necessaria l'integrazione per produrre alcuni documenti, ma si noti che solo l'utente si aspetta che un singolo luogo acceda a tutta la documentazione di cui ha bisogno.
L'analista di business è piuttosto soddisfatto delle specifiche API, Designs Specs e Use da collocare in documenti separati o sezioni separate di un sito Web.
Lo sviluppatore preferisce tutto visibile dalla sorgente, ma è abbastanza contento di avere un paio di documenti di progettazione di alto livello e documenti dettagliati di specifica del protocollo esterni al codice, anche se preferibilmente all'interno della stessa cassa.
Il tuo caso
Per essere onesti, la documentazione nel tuo wiki probabilmente non è lo stesso tipo di documentazione nel tuo codice base. Potrebbe non avere senso unire anche quello.
D'altra parte l'integrazione dei due può essere fornita in pochi e semplici modi.
- Gli strumenti di documentazione di origine (come doxygen) possono produrre html e un wiki vive su un server web. Sarebbe un semplice punto di integrazione servire semplicemente una versione costruita a fianco del wiki e collegare tra loro i due.
- Alcuni prodotti wiki ti permetteranno di eseguire la wiki direttamente da un file che puoi effettuare il check-in su un code-base. Questo fornisce un semplice tool wysiwyg mantenendo la documentazione accoppiata al codice.
- Anche altri formati come il pdf possono essere adattati, ma ciò dipende dagli strumenti specifici che desideri utilizzare. Potrebbe avere senso analizzare la tua wiki in file markdown e alimentarla tramite doxygen (o altri strumenti). Potrebbe avere senso inserire in pdf il wiki e l'origine separatamente e utilizzare uno strumento di fusione pdf.
Alla fine della giornata, scopri quale sistema di documentazione ha bassi costi di manutenzione e ti aiuta a fornire un prodotto di alta qualità visto dal tuo pubblico di sviluppatori, analisti aziendali e utenti. Qualsiasi cosa che impedisca uno di questi gruppi ridurrà necessariamente la qualità dei prodotti.