Público objetivo
Creo que cuando responda esta pregunta, realmente debe preguntar quién debe leer esta documentación. Un desarrollador tiene necesidades muy diferentes a las de un usuario o incluso un analista de negocios.
- Como desarrollador: documentación asociada con el código que se está estudiando, detalles como el contrato de interfaz y ejemplos de uso. Quizás alguna documentación de alto nivel y especificaciones de protocolo para una buena medida.
- Como usuario: documentación disponible a través del menú de ayuda o un sitio web accesible sobre cómo usar el software.
- Como analista de negocios: la documentación disponible como documentos o como un sitio web accesible son útiles. Una cantidad modesta de detalles sobre protocolos, arquitectura de alto nivel y casos de uso son los mejores.
Mantenimiento
En cuanto a dónde ubicar la fuente de esta documentación dependerá de su audiencia y de quién está escribiendo para su audiencia.
- ¿Solo tienes una casa de desarrolladores? Coloca todo en el código. Lo alentará a que se actualice. Deberá trabajar en una cultura que fomente que las actualizaciones de documentación sean tan importantes como los cambios de código.
- ¿Tiene una casa de desarrolladores y escritores de documentación? Divide las responsabilidades. Use las herramientas orientadas al desarrollador para desarrolladores, use las herramientas de los escritores de documentación para los escritores de documentación.
Siempre que sea posible, asegúrese de que se puedan ejecutar ejemplos de código o casos de uso. Automatice su ejecución y señale internamente fallas. Lo más probable es que estas páginas sean documentación pobre o mala.
Además, independientemente de las herramientas que elija para escribir su documentación, necesita un medio confiable para asociar una versión específica de la documentación con una versión específica del código. Esto sigue siendo beneficioso incluso en terrenos felices en la nube con una única implementación de hoja perenne.
Documentación integradora
Puede ser necesaria la integración para producir cierta documentación, pero tenga en cuenta que solo el usuario espera un solo lugar para acceder a toda la documentación que necesita.
El analista de negocios está bastante satisfecho con una especificación de API, especificaciones de diseño y escenarios de uso que se ubicarán en documentos separados o secciones separadas de un sitio web.
El desarrollador prefiere todo lo visible desde la fuente, pero está muy contento de tener un par de documentos de diseño de alto nivel y documentos de especificación de protocolo detallados externos al código, aunque preferiblemente dentro del mismo proceso de pago.
Tu caso
Para ser honesto, la documentación en su wiki probablemente no sea el mismo tipo de documentación en su base de código. Puede que no tenga sentido fusionar también.
Por otro lado, la integración de los dos puede lograrse de varias maneras simples.
- Las herramientas de documentación de origen (como doxygen) pueden producir html, y una wiki vive en un servidor web. Sería un simple punto de integración simplemente servir una versión integrada junto con el wiki e interconectar los dos.
- Algunos productos wiki le permitirán ejecutar el wiki directamente desde un archivo que puede registrar en una base de código. Esto proporciona una herramienta de wysiwyg simple mientras mantiene la documentación emparejada con el código.
- También se pueden acomodar otros formatos como pdf, pero esto se reducirá a las herramientas específicas que desea utilizar. Puede tener sentido raspar su wiki en archivos de descuento y alimentarlo a través de doxygen (u otras herramientas). Puede tener sentido pdf el wiki y la fuente por separado y utilizar una herramienta de fusión de pdf.
Al final del día, descubra qué sistema de documentación tiene bajos costos de mantenimiento y lo ayuda a entregar un producto de alta calidad como lo ve su audiencia de Desarrolladores, Analistas de Negocios y Usuarios. Cualquier cosa que impida a cualquiera de estos grupos necesariamente reducirá la calidad de los productos.