lunes, 30 de marzo de 2015

Tres motivos para documentar un proyecto software... y cualquier otro proyecto...

Es una buena práctica, sin discusión, documentar el software. Una buena práctica que, por desgracia, tiende a no ejercerse y que no es fácil ni de promover ni de auditar...aunque si sufrir su ausencia.

Hay razones evidentes de legibilidad, de mantenibilidad, de facilitar la transferencia y colaboración entre diferentes programadores, de legado a quien venga detrás...

Pero más allá de esas evidencias, me parecen relevantes las tres razones que aporta Frederick P. Brooks en su libro 'The mythical man-month', tres motivos más orientados, si se quiere, a la gestión del proyecto que a la calidad del software propiamente dicho.

El primero es como mecanismo de descubrimiento de gaps e inconsistencias. Así, nos dice:

writing decisions down is essential. Only when one writes do the gaps appear and the inconsistencies protrude. The act of writing turns out to require hundreds of mini-decisions, and it is the existence of these that distinguishes clear, exact policies from fuzzy ones.

Es quizá éste un motivo poco reconocido pero el que personalmente más aprecio y al que más valor otorgo: la escritura, la documentación, como vehículo de pensamiento y de estructuración. Estoy seguro de haber escrito en este u otro de mis blogs al respecto porque lo considero esencial,

El segundo es casi evidente y autoexplicativo y tiene que ver, simplemente, con la comunicación:

Documents will communicate the decisions to others

El tercer motivo es como herramienta de gestión, como un lugar de consulta y guión, casi un plan que consultar para monitorizar el proyecto y gestionarlo.

a manager's documents give him a data base and checklist.

Se observa que estos motivos van más allá de la evidencia de comentar el código o utilizar una herramienta CASE que de alguna forma documenta un diseño. Se trata de la documentación como herramienta de gestión del proyecto e incluye, adicionalmente y más allá de la documentación estrictamente técnica, la expresión escrita de los planes y decisiones arquitecturales y de gestión, y llegaría a algo así como el Project Management Plan que preconiza el PMI (Project Management Institute).