Documentar bases de código heredadas
Recomiendo seguir la regla de exploración con bases de código heredadas. Intentar documentar un proyecto heredado independientemente de trabajar en él simplemente nunca sucederá.
Documentación en código
Lo más importante es utilizar las funciones de documentación en el entorno de desarrollo elegido, por lo que significa pydoc para python, javadoc en java o comentarios xml en C #. Esto facilita la escritura de la documentación al mismo tiempo que escribe el código.
Si confía en volver y documentar las cosas más tarde, es posible que no lo haga, pero si lo hace mientras escribe el código, entonces lo que necesita documentarse estará fresco en su mente. C # incluso tiene la opción de emitir una advertencia de compilación si la documentación XML está incompleta o es inconsistente con el código real.
Pruebas como documentación
Otro aspecto importante es tener una buena integración y pruebas unitarias.
A menudo, la documentación se concentra en lo que las clases y los métodos hacen de forma aislada, omitiendo cómo se usan juntos para resolver su problema. Las pruebas a menudo los ponen en contexto al mostrar cómo interactúan entre sí.
Del mismo modo, las pruebas unitarias a menudo señalan dependencias externas explícitamente a través de las cuales las cosas deben ser simuladas .
También encuentro que usando el desarrollo basado en pruebas escribo un software que es más fácil de usar, porque lo estoy usando desde el principio. Con un buen marco de prueba, hacer que el código sea más fácil de probar y que sea fácil de usar a menudo es lo mismo.
Documentación de nivel superior
Finalmente, hay qué hacer con el nivel del sistema y la documentación arquitectónica. Muchos abogarían por escribir dicha documentación en una wiki o usar Word u otro procesador de textos, pero para mí el mejor lugar para dicha documentación también es junto al código, en un formato de texto sin formato que sea amigable con el sistema de control de versiones.
Al igual que con la documentación en código, si almacena su documentación de nivel superior en su repositorio de código, es más probable que la mantenga actualizada. También obtiene el beneficio de que cuando extrae la versión XY del código, también obtiene la versión XY de la documentación. Además, si usa un formato compatible con VCS, significa que es fácil bifurcar, diferenciar y fusionar, al igual que su código.
Me gusta bastante primera , ya que es fácil de producir las dos páginas en HTML y documentos PDF a partir de ella, y es mucho más amigable que LaTeX , sin embargo, todavía puede incluir expresiones matemáticas de LaTeX cuando los necesite.