Por qué utilizar “ejemplos” y “documentación viva” en TIC y COM

El uso de técnicas como “especificación por ejemplos” y “documentación viva” mejora la calidad del desarrollo de software y  la comunicación entre todas las áreas 

ejemplos de softwareRubén Martín Pozo, Agile Technical Leader  de Vector ITC Group, desarrolló la ponencia “Specification by example – Historia de un equipo que no odia documentar” en la 5ª edición de la Conferencia Agile Spain, el encuentro más importante de conferencias de temática ágil, en el que se desvelaron algunos secretos para mejorar la comunicación entre las distintas áreas. Specification by Example es una técnica que permite describir, a través del uso de ejemplos, el alcance de una funcionalidad. Martín explicó la experiencia con sus equipos de trabajo, como los ha transformado y como ha conseguido conectar a todos sus integrantes con las necesidades de los clientes.

Trabajar con especificaciones con ejemplos permite establecer un lenguaje común, reduce el número de rectificaciones en el código y evita las malas interpretaciones con el usuario.

“Es una técnica que consigue que todos los participantes en un proyecto estén sincronizados con los objetivos del mismo. El hecho de poner ejemplos en vez de redactar una definición abstracta ayuda a entender mejor el problema y a descubrir antes puntos clave a tener en cuenta en el diseño”, afirma Martín del Pozo.

La documentación viva admite realizar cambios en el código con una mayor seguridad, si estos cambios modifican el comportamiento del producto, esto se reflejará en la propia documentación. 

Utilizando  herramientas como Concordion es posible automatizar la especificación, es decir, que los ejemplos descritos en la especificación cobren vida y se ejecuten con el resto de tests. De esta manera, podemos tener una documentación que ayuda a comunicar y al mismo tiempo refleja el estado del sistema.

En varios grupos de desarrolladores de Vector ITC Group se ha usado esta técnica durante más de un año y se han obtenido óptimos resultados. Al trabajar con especificaciones se ha reducido el número de rectificaciones en el código por motivo de ambigüedades y malas interpretaciones a la hora de entender al usuario. Trabajando conjuntamente con el área de  negocio se pueden  mostrar ejemplos concretos de la funcionalidad que se quiere desarrollar.

Beneficios corporativos

El uso de ejemplos a la hora de redactar las especificaciones ayuda a acortar la brecha entre el negocio y la tecnología ya que permite a ambas partes establecer un lenguaje común, huyendo de descripciones demasiado abstractas que normalmente generan dudas y confusión. La conversación que se produce a la hora de escribir la especificación entre todos los implicados en el proyecto mejora la comunicación, no solo desde el punto de vista del área de negocio hacia el equipo de desarrollo, sino en ambas direcciones.

La gran ventaja es que se canaliza la información de forma bidireccional, lo que contribuye a que las áreas de  negocio sean conscientes del  coste y la complejidad del desarrollo de software y puedan  tomar mejores decisiones a la hora de priorizar. En definitiva se traduce en un mayor entendimiento entre equipos y áreas gracias a un flujo de trabajo unificado y coordinado, que genera sinergias corporativas y de negocio, mejora clima laboral y optimiza los resultados globales de todo proyecto.

[
]

La automatización de la documentación, conocido como “documentación viva”, permite realizar cambios en el código con una mayor seguridad, ya que si estos cambios modifican el comportamiento del producto, esto se reflejará en la propia documentación. El flujo de trabajo es muy similar al que se desarrolla con otro tipo de pruebas automáticas. Los errores producidos en los tests aparecen sobre la propia documentación. Esto permite que tanto el negocio como el grupo de desarrollo puedan conocer el estado del sistema en cada momento.

Hay que tener en cuenta que la curva de aprendizaje de estas técnicas es elevada y requiere madurez y compromiso por todas las partes involucradas en el desarrollo del proyecto. Si se consigue este compromiso, el uso de técnicas como especificación por ejemplos y documentación viva mejoran la calidad del desarrollo de software y  la comunicación entre todas las áreas”, finaliza Rubén Martín.

Comparte