La documentación técnica cambia junto con el software. Cuando se agregan funcionalidades, se modifican APIs, cambian configuraciones o se corrigen errores, la documentación relacionada también debe evolucionar. El control de versiones permite administrar esa evolución de manera ordenada.
Versionar documentación significa conservar historial de cambios, relacionar documentos con versiones del sistema, revisar modificaciones y recuperar estados anteriores. Esto es especialmente útil cuando la documentación vive cerca del código fuente.
En este tema veremos cómo controlar versiones de documentos, cuándo ubicarlos en el repositorio, cómo relacionarlos con cambios de código, cómo revisar documentación y cómo manejar documentación por versión de producto.
Sin control de versiones, puede ser difícil saber si un documento está actualizado, quién lo modificó, cuándo cambió o qué versión del sistema describe. Esto genera dudas, especialmente en documentación de instalación, API, arquitectura, pruebas y despliegue.
El control de versiones permite comparar cambios, revisar propuestas antes de publicarlas, asociar documentación con releases y revertir errores. También mejora la responsabilidad compartida: los cambios quedan visibles.
La imagen muestra documentación y código fuente versionados en conjunto: ramas, commits, revisión, historial, releases y publicación. La idea es que los cambios técnicos y los cambios documentales puedan avanzar coordinados.
Guardar documentación en el mismo repositorio que el código es útil cuando ambos cambian juntos. README, guías de instalación, documentación de API, decisiones técnicas, diagramas como código y pruebas suelen beneficiarse de esta cercanía.
Cuando un cambio de código requiere actualizar documentación, ambos cambios pueden revisarse en la misma solicitud. Esto reduce el riesgo de olvidar documentos afectados.
No toda documentación debe estar en el repositorio. Manuales para usuarios finales, documentación comercial, contenidos de capacitación o información con permisos especiales pueden vivir en otros sistemas.
La decisión depende de audiencia, seguridad, flujo de edición y frecuencia de cambios. Lo importante es mantener trazabilidad: si una página externa describe una versión o funcionalidad, debe existir forma de saber cuándo actualizarla.
Cuando la documentación se versiona, los cambios deben tener mensajes claros. Un mensaje como "actualiza docs" puede ser insuficiente. Es mejor indicar qué se actualiza y por qué: "actualiza guía de instalación para nueva variable de entorno".
Los mensajes ayudan a entender historial. Esto es útil cuando se necesita saber cuándo cambió un procedimiento, una API o una decisión técnica.
Las ramas permiten preparar cambios sin afectar la versión principal. Esto sirve tanto para código como para documentación. Una modificación de API puede incluir código, pruebas y documentación en la misma rama.
La revisión por pares permite detectar errores, inconsistencias y omisiones. Un cambio técnico debería revisar si la documentación relacionada también cambió.
Cuando existen varias versiones activas de un producto, puede ser necesario mantener documentación por versión. Esto es común en APIs, productos instalables, bibliotecas, frameworks o sistemas con clientes en versiones distintas.
La documentación debe dejar claro qué versión describe. Si un usuario consulta instrucciones de una versión diferente, puede ejecutar pasos incorrectos o usar funciones inexistentes.
Una release puede incluir cambios funcionales, técnicos y documentales. Las notas de versión resumen qué cambió, qué se corrigió, qué se agregó, qué se eliminó y qué acciones deben realizar usuarios u operación.
Las notas de versión conectan el control de versiones con la comunicación. Ayudan a entender el impacto de una entrega sin revisar todos los commits.
La documentación debe relacionarse con cambios de código cuando corresponde. Si se modifica un endpoint, debe actualizarse la documentación de API. Si cambia una migración, debe actualizarse la guía de despliegue. Si cambia una regla, deben revisarse documentación funcional y pruebas.
Esta trazabilidad puede gestionarse mediante checklist de revisión, enlaces en solicitudes de cambio, tareas relacionadas o normas de definición de terminado.
Cuando varias personas editan documentación, pueden aparecer conflictos. Los formatos de texto plano como Markdown suelen resolver conflictos mejor que archivos binarios. Esto es una ventaja para documentación como código.
Para reducir conflictos, conviene dividir documentos largos en secciones, usar archivos separados por tema y evitar cambios de formato innecesarios.
El control de versiones permite automatizar validaciones y publicación. Por ejemplo, se pueden revisar enlaces rotos, generar un sitio estático, publicar documentación al fusionar cambios o validar una especificación de API.
La automatización ayuda a mantener calidad, pero no reemplaza la revisión humana del contenido.
| Práctica | Beneficio | Ejemplo |
|---|---|---|
| Documentación en repositorio | Cambios técnicos y documentales juntos. | Actualizar API y especificación en la misma rama. |
| Revisión por pares | Detecta errores antes de publicar. | Revisar guía de despliegue con operación. |
| Versiones de documentación | Evita mezclar instrucciones de versiones distintas. | Documentación para API v1 y v2. |
| Publicación automática | Reduce pasos manuales y desactualización. | Generar sitio al aprobar cambios. |
El control de versiones conserva historial. Por eso, no deben subirse secretos, claves, datos personales reales o información sensible que no debería quedar guardada. Eliminar un secreto del archivo actual no siempre lo elimina del historial.
La documentación versionada debe usar ejemplos seguros y describir dónde se configuran secretos sin exponerlos.
Una forma práctica de mantener documentación actualizada es incluirla en la definición de terminado. Una tarea no se considera completa hasta revisar si afecta documentación y actualizarla cuando corresponde.
Esto puede incluir README, API, manuales, pruebas, despliegue, arquitectura o decisiones técnicas. No todas las tareas requieren cambios documentales, pero todas deberían considerarlo.
Al versionar documentación suelen aparecer estos errores:
El control de versiones convierte la documentación en un artefacto técnico mantenible. Permite revisar, relacionar, publicar y recuperar cambios de forma ordenada, especialmente cuando la documentación evoluciona junto con el código.
En el próximo tema estudiaremos revisión, validación y pruebas de la documentación técnica.