¿Quién leerá la documentación? ¿Para qué se utilizará la documentación? Estas son las preguntas más importantes para responder. Por ejemplo, la documentación para los desarrolladores de mantenimiento se centraría más en la estructura, mientras que la documentación para los desarrolladores que se integran con el producto se centraría más en los servicios web y la estructura de la base de datos.
En general, haga tanta documentación como sea necesario y no más. Muchas organizaciones requieren documentación porque alguien insistió en que es la mejor práctica, pero la documentación termina acumulando polvo.
Suponiendo que las personas realmente usen la documentación, no intente capturar el código y la base de datos al nivel más pequeño. Los desarrolladores mirarán el código para las minucias. En cambio, concéntrese en los detalles que no son aparentes en el código , por ejemplo:
- Los casos de uso que cumple el producto. Esto puede ser difícil teniendo en cuenta la antigüedad del producto, pero capturar lo que el producto debe hacer proporciona un contexto vital a los lectores y evaluadores no técnicos. ¿Quiénes son los competidores en el mercado (si los hay)? ¿Hay algo excluido del alcance del producto?
- Cualquier requisito no funcional claro . Por ejemplo, ¿se escribió el producto para manejar un determinado volumen? ¿Qué edad pueden tener los datos? ¿Dónde se usa el almacenamiento en caché? ¿Cómo se autentican los usuarios? ¿Cómo funciona el control de acceso?
- Un diagrama de contexto que muestra la interacción con otros sistemas, como la base de datos, las fuentes de autenticación, la copia de seguridad, la supervisión, etc.
- (Si se conoce) Riesgos y cómo se mitigaron junto con un registro de decisiones . Esto es probablemente difícil en retrospectiva, pero a menudo hay decisiones críticas que influyen en un diseño. Capture cualquiera que conozca.
- Patrones de diseño comunes o pautas de diseño . Por ejemplo, ¿hay una forma estándar de acceder a la base de datos? ¿Existe un estándar de codificación o nomenclatura?
- Rutas de código críticas , generalmente usando diagramas de flujo o actividad UML o diagramas de secuencia. Puede que no haya ninguno en el proyecto, pero estos son generalmente los que los usuarios comerciales han articulado.
Incluso si toda esta información no está disponible, comience ahora . Los desarrolladores que vienen después de ti te lo agradecerán.
Las buenas pruebas unitarias automatizadas o los casos de prueba también pueden ser documentación útil, aunque de difícil acceso para personas menos técnicas.
También parece que necesita hacer un cambio cultural para incluir documentación . Comience con poco pero, idealmente, el proyecto no debe "completarse" hasta que tenga al menos un nivel mínimo de documentación. Este es probablemente el paso más difícil porque lo anterior son cosas que puede controlar. Esto es algo que otros deben comprar. Sin embargo, también puede ser lo más gratificante, especialmente si el próximo proyecto que realiza incluye buena documentación.