En nuestro equipo, desde que fuimos ágiles, también hemos estado tratando de reducir y comprender cuánta documentación se requiere realmente. Puedo compartir contigo lo que hemos aprendido hasta ahora.
Antes que nada, asegúrese de leer este artículo sobre la documentación ágil / esbelta . Muy buena lectura.
En segundo lugar, le recomiendo encarecidamente que reconsidere la producción de documentos de diseño después del trabajo preliminar sobre historias. Lo hemos intentado antes y ha demostrado ser un desperdicio. A mediados de la última versión, hemos decidido actualizar los documentos de diseño SOLO DESPUÉS de que se entregue el código de la historia. Y ahora estoy pensando que incluso eso es demasiado pronto.
Debe preguntarse por qué desea hacer documentos de diseño antes de la codificación. Para nosotros estas fueron las razones:
- Nosotros como equipo necesitamos entender cómo la historia afectará el diseño.
- Tener documentos de diseño ha demostrado ser útil cuando los miembros nuevos (o temporales) se unen al equipo o cuando regresan al código en el que nadie ha trabajado durante más de un año. Por lo tanto, son útiles para la memoria organizacional para ayudar a comprender cómo funciona el código.
- Los documentos de diseño son útiles para los ingenieros de mantenimiento que pueden necesitar solucionar el código después del lanzamiento.
Para satisfacer (1) no necesita producir un documento de diseño real. Su equipo aún debe tener una fase de diseño antes de la codificación, pero esa fase puede ser tan simple como una sesión de 15 minutos frente a una pizarra o una servilleta. No necesita producir un documento real que tomará horas (si no días) para escribir solo para discutir los cambios de diseño.
(2) o (3) no son necesarios durante el desarrollo de la historia actual y es más que probable que no sean necesarios para varias iteraciones posteriores.
También tenga en cuenta que cada vez que un miembro del equipo escribe / actualiza documentos de diseño, ese es el momento en que no se escribe el código. Cuando escribes documentos antes del código real, hay casi un 100% de posibilidades de que necesiten actualizarse porque una vez que comienzas a codificar, el diseño siempre termina siendo modificado. E incluso si escribe documentos de diseño después del código, como nuestro equipo ha aprendido, la refactorización de historias posteriores todavía altera el diseño.
Entonces, lo que recomendaría:
- Inicialmente produzca diseños / modelos temporales suficientes para que su equipo pueda tener una conversación inteligente antes de la codificación. No espere conservarlos y no pierda tiempo en formalizarlos.
- Solo produzca documentación de diseño oficial si alguien la necesita (es decir, su equipo tiene una necesidad real de memoria organizacional)
- Solo produzca documentación de diseño en código que se haya estabilizado. No tiene sentido tratar de documentar un módulo que se cambia constantemente en cada iteración.
- Produzca documentos de diseño que describan completamente un módulo (o parte del producto). En el pasado solíamos escribir documentos de diseño que documentaban los cambios que debían hacerse. Esos documentos fueron completamente inútiles tan pronto como se realizó el lanzamiento.
- Mantenga el documento de muy alto nivel. Si escribe 20 páginas sobre arquitectura y diseño de muy alto nivel, ese documento a) será leído por otras personas yb) ayudará a las personas a familiarizarse con el diseño general de su código. Para más detalles, las personas pueden ir directamente al código. Si escribe 700 páginas de especificación detallada, casi siempre no coincidirán con la realidad, es demasiado para que cualquiera lo lea y terminará teniendo que mantener y actualizar 700 páginas en lugar de 20 cada vez que se realicen cambios futuros.