Nuevos Pensamientos y Soluciones para mantener una Trazabilidad Completa, Consistente y Confiable en el Desarrollo del Software (Parte II)

Si no vio el Post previo:

Nuevos Pensamientos y Soluciones para mantener una Trazabilidad Completa, Consistente y Confiable en el Desarrollo del Software (Parte I)

Los Estados Varios de la Trazabilidad

Las empresas normalmente evolucionan o progresan a través de varias etapas o grados de trazabilidad:

  • Gente
  • Gente más herramientas
  • Trazabilidad dirigida por proceso basada en herramientas

Primera Etapa – Gente

Antes discutimos el hecho de que la trazabilidad existe en varias formas y en múltiples industrias. La trazabilidad se puede conseguir en una escala pequeña muy simple y sin herramientas. Una persona artesanal, por ejemplo, tendrá el conocimiento del historial del producto y los pasos que se han tomado para crear el producto almacenado en su mente. Esta forma de trazabilidad es esencialmente por el trabajo diario de esa persona artesanal. Pero esta forma de trazabilidad es útil sólo a individuo. No proporciona una documentación completa o guarda registro de proceso y es difícil de replicar o escalar.

Segunda Etapa – Gente más Herramientas

En la siguiente etapa de trazabilidad se evoluciona a un equipo de proyecto, un grupo de gente con diferentes perfiles, cada cual contribuyendo al producto final. Puede haber herramientas de soporte en esta etapa de madurez. Este equipo es todavía capaz de trabajar juntos para compartir el conocimiento, la información y llegar a un acuerdo. La trazabilidad se puede conseguir en este escenario, pero a una escala limitada. El equipo es suficientemente pequeño que la información puede ser fácilmente compartida, pero hay poca por medio de la documentación o pistas de auditoría para el cumplimiento. Existe el riesgo de olvidar la información o conexiones rotas, y no hay flujo bilateral.

Tercera Etapa- Trazabilidad Dirigida por Proceso basada en Herramientas

En este estado de trazabilidad, entramos en la fase de ingeniería. Las organizaciones en esta fase tienen interdependencias de producto complejas, elaboran procesos y procedimientos de producción, así como muchas personas involucradas en el desarrollo y distribución de productos – distribuidos a lo largo de múltiples ubicaciones. La gente en esta fase de ingeniería tiene unos perfiles altamente especializados y funciones específicas. En este punto, la trazabilidad se debe mover más allá de la colaboración humana e intercambio del conocimiento para ser embebido y controlado por una herramienta de trazabilidad dirigida por proceso. En este sistema, la gente puede entrar y salir del proyecto, y el conocimiento del proceso, todas las actividades relacionada, y todos los artefactos asociados están contenidas en la herramienta. Esta forma de trazabilidad permite a la organización cumplir en entornos altamente regulados, se ajustan a estándares de calidad, y alcanzar unos niveles de madurez más altos.

 

El gráfico superior muestra cómo la demanda para las soluciones dirigidas por proceso aumenta según los proyectos se van haciendo más complejos y los equipos crecen en tamaño. Cualquier proyecto de tamaño modesto se beneficiará de la trazabilidad dirigida por proceso. Cualquier proyecto mediano o grande debería ir absolutamente a una trazabilidad dirigida por proceso para prevenir el riesgo de fallo del proyecto, no cumplimiento de normas y problemas de calidad que pueden resultar en costosas recodificaciones.

El Secreto del Éxito – Trazabilidad y Proceso

El ingrediente que ha faltado para conseguir una trazabilidad consistente y confiable a lo largo del tiempo típicamente ha sido la conexión de la trazabilidad con el proceso.

El Reto del Status Quo

Las organizaciones de ingeniería del software de hoy en día están divididas por diferentes disciplinas, diferentes herramientas y diferentes mecanismos de almacenamiento. Asegurar una trazabilidad confiable es muy difícil en este entorno fracturado. Hay una duplicación de la información. Hay enlaces rotos entre la información. El mismo concepto de datos puede expresarse de forma diferente en cada herramienta utilizando un lenguaje diferente. La gente que trabaja en estos silos distintos no se comunican efectivamente, no comparten el conocimiento. Y no son parte del mismo proceso empresarial, Y en este entorno fracturado, el cambio es el enemigo.
La trazabilizad no puede ser automatizada bajo estas circunstancias. Se mantiene como un proceso manual, con retos similares para aquellos con experiencia en la trazabilidad basada en papel. Las herramientas de trazabilidad utilizadas por los equipos de desarrollo de software pueden proporcionar la capacidad de definir la trazabilidad, pero no resuelven el problema de asegurar y mantener la trazabilidad. Estas herramientas dejan en las personas la actualización manual de los enlaces que existen entre las actividades de desarrollo y los artefactos. No tienen noción del proceso, dependen de un integración frágil con una herramienta separada para procesar el conocimiento y no tienen noción de la gestión del cambio.
Un sistema complejo donde hay cientos de requisitos que contribuyen y hay una magnitud media de elementos adicionales, basándose en métodos manuales de trazabilidad, o como mucho silos de “herramientas” sin capacidad de proceso, es también una estrategia con riesgo.

La Respuesta: Trazabilidad Dirigida por Proceso

 Para conseguir una forma de trazabilidad más automatizada y con mayor cobertura las empresas deben superporner un proceso superior sobre el esfuerzo de desarrollo para envolver todas las disciplinas, desde la ingeniería de requisitos, al desarrollo y a las pruebas. Idealmente este “paraguas” de trazabilidad se consigue mediante el uso de una única solución que anude automáticamente todas las actividades y artefactos, controle el proceso que dirige el comportamiento del personal y mantenga la información en un repositorio seguro.
Con esta solución única para la trazabilidad dirigida por proceso, las empresas pueden finalmente ir más allá simplemente definiendo y almacenando la trazabilidad, para gestionar y mantener la trazabilidad a lo largo del tiempo. El uso de una solución dirigida por proceso permite a las empresas conseguir el acuerdo entre todos los implicados en el proceso, definen un protocolo multidisciplinario para mantener esa trazabilidad, el aseguramiento de esa trazabilidad persiste a lo largo del tiempo y reduce significativamente el riesgo para el negocio.
¿Entonces por qué es necesaria una única solución para la trazabilidad? Tengamos en cuenta que se necesita mantener el acuerdo entre los diferentes involucrados y gestionada a lo largo del tiempo para incrementar la colaboración y las eficiencias. Para mantener el acuerdo y la trazabilidad, se necesitan integraciones entre las disciplinas de los involucrados y las herramientas que utilizan. Se necesita automatizar mecanismos para asegurar que los distintos implicados operen como se espera y como está definido en el proceso de trazabilidad.
El acuerdo entre los implicados en una empresa – que pueden venir de diferentes disciplinas, proyectos o departamentos – es en sí misma un reto. Pero al menos estos miembros del equipo son a menudo compañeros de trabajo y comparten objetivos comunes para el negocio. Asegurar el acuerdo entre los fabricantes de las herramientas de soporte utilizadas en el proceso es mucho más complicado, y menos con el control de una única empresa.
Por tanto la respuesta es ganar el acuerdo colectivo en una única solución que soporte el proceso de gestionar y asegurar la trazabilidad.

Asegurar y Mantener la Trazabilidad

Se puede definir la trazabilidad  para cualquier proceso sin herramientas. Hemos ya demostrado que la trazabilidad se puede conseguir mediante una base individual o en una pequeña escala simplemente a través de la comunicación persona a persona, documentación basada en papel y mediante la compartición de conocimiento. Pero la trazabilidad en esta forma no es consistente ni confiable y es muy difícil de mantener. Para asegurar una trazabilidad consistente y confiable a lo largo del ciclo de vida, necesita una herramienta de trazabilidad dirigida por proceso para la gestión y control.
Hay vendedores de herramientas legacy que ofrecen la promesa del mantenimiento de la trazabilidad “sólo si se sigue su metodología”. Cada paso de la metodología o proceso se documenta para seguir (en un manual de 12.000 páginas) que se debe referenciar constantemente para asegurar  que se toma el paso siguiente apropiado. Ajustarse a una metodología se traduce en una trazabilidad no ajustada. ¿Qué pasa si hay una adopción inconsistente de la metodología por parte del personal? ¿Qué pasa si la metodología no es la adecuada para un proyecto particular o  una carga innecesaria para Agile Computing, o no es compatible con SOA y no se utiliza de ninguna manera?
La respuesta ideal para automatizar la trazabilidad y asegurar que la trazabilidad se automantenga por el proceso en sí mismo, en un entorno de cambios constantes, es adoptar una solución única que soporte el proceso de trazabilidad y lleve la responsabilidad de gestionar y mantener la trazabilidad. Esta aproximación libera al personal de tener que aprender y depender de una doctrina dictada por una metodología específica. Les permite concentrarse en sus tareas asignadas, hacer sus trabajos con efectividad y con precisión, guiados y ayudados por la herramienta.
Hay un número de maneras en las que se puede conseguir la trazabilidad en el desarrollo de software. Aquí hay unas pocas:

Trazabilidad Manual

 La trazabilidad se puede conseguir por medios de programación. Existe un proceso y se sigue, pero no hay una automatización del proceso con una herramienta. En esta aproximación, se puede asignar un número de identificación a un requisito o especificación, y la trazabilidad se puede conseguir mediante la  generación de relaciones entre esos números de identificación. Para conseguir la trazabilidad en este escenario, necesita disciplina y un índice.
Mediante la disciplina se fuerza a que cada mienbro del proyecto/proceso enlace requisitos/especificaciones/artefactos con los códigos de identificación designados. (En nuestro caso anterior del automóvil: requisito de 160 mph (número ID 003-002-112-221-993), el coeficiente de resistencia se asegura mediante mediante una forma del tirador definida en el requisito número 202-377-441-002-021,  y por un formato de ruega definido en el requisito número 112-001-299-331-829, y continuando así) El índice se comporta como en un libro. Cada vez que se enlazan elementos, se actualiza el índice para reflejar esa relación.
En nuestro ejemplo el índice contendrá las entradas 202-377-441-002- 021-> 003-002-112-221-993 and 112-001-299-331-829 -> 003-002-112-221-993

El Asesino de la Trazabilidad Manual – El Cambio

 Gestionar de esta forma la trazabilidad es una pesadilla – especialmente si hay cambios. Si tiene que haber un cambio, el programador debe buscar todas las referencias y cambiarlas, y si las referencias se han perdido o quitado, entonces la trazabilidad se ve afectada.
En una aproximación similar al método de programación para la trazabilidad descrito encima, el código numérico viene a ser una referencia electrónica y el índice está en una base de datos. En este escenario, la disciplina es mantener un único servidor (base de datos) de elementos de trazabilidad. El servidor mantiene los enlaces entre los elementos y proporciona ciertas capacidades de búsqueda y de generación de informes. Como ejemplo, se crea un requisito nuevo en el documento (EL Cx se asegura mediante la forma del tirador y del neumático). Esto requiere que se haga una nueva entrada en la base de datos de trazabilidad con un enlace electrónico al requisito en el documento (si es factible). O el requisito completo o parte de él se copia a la base de datos de trazabilidad.
Hay varios inconvenientes a la aproximación a la trazabilidad mediante codificación o referencia electrónica, la última de las cuales se puede describir de esta manera: El cambio en cualquier escenario – o de cualquier elemento – crea una pesadilla de mantenimiento y unos costes desorbitados de administración. En ambos casos, el proceso y la trazabilidad son entidades separadas y las relaciones y los elementos deben ser enlazados manualmente.

Trazabilidad con Herramienta Única

 En este escenario, la trazabilidad y el mantenimiento se delega a una herramienta independiente de gestión de requisitos, como IBM DOORS. El proceso se determina mediante la elaboración de una metodología extensiva y la herramienta se comporta como un índice global para la trazabilidad. A la vez que la gente realizan su trabajo, ellos almacenan sus actividades en la herramienta de trazabilidad que lleva todas las actividades y sus relaciones e informa al equipo completo.
Esta aproximación a la trazabilidad está anticuada porque no está automatizada. Se basa en la intervención manual. Es extremadamente costoso para los usuarios, y de un coste prohibitivo para adquirir y mantener. Es una aproximación de herramienta de primera generación mejor aplicada en las organizaciones más rigurosamente gestionadas o se convertirán en self-ware. Los usuarios deben seguir religiosamente la metodología prescrita, descrita en quién sabe cuántos cientos de páginas. Deben mantener con precisión su información y mantenerla actualizada en la herramienta. Y si hay miembros del equipo que no mantienen sus actualizaciones, u olvidan los siguientes pasos en el proceso, la trazabilidad se pierde. Esta aproximación también genera un coste enorme administrativo para el equipo. La elaboración de metodologías requieren un cambio cultural y de comportamiento en el equipo y actualizar la herramienta de trazabilidad a cada paso es como rellenar la hoja de tiempos semanal, y puede impactar negativamente a la productividad del equipo.

 Trazabilidad Dirigida por Proceso

En este escenario, todos utilizan sus propias herramientas, pero hay un “paraguas” por encima que proporciona la trazabilidad basada en proceso. La herramienta de trazabilidad captura, almacena y mantiene automáticamente el proceso que gobierna las acciones del equipo, y automáticamente guarda todas las actividades y artefactos asociados con ese proceso en un repositorio. Los enlaces crean las relaciones necesarias para facilitar el seguimiento de una jerarquía compleja de los datos del ciclo de vida.
Esta aproximación permite a los miembros del equipo lo mejor de todos los mundos. Cada miembro del equipo puede utilizar las herramientas con las que se siente más cómodo para realizar su trabajo diario. No hay una metodología quedaba aprender la gente para hacer sus tareas. Y finalmente, los procesos embebidos en la herramienta de trazabilidad guían al equipo y aseguran que hay un seguimiento de auditoría almacenado para el cumplimiento de normas o para propósitos de gestión de la calidad.
Examinemos un ejemplo de trazabilidad funcionando en este escenario. Un analista de negocio hace algunos cambios en un documento de requisitos en Microsoft Word. Cuando sube el documento al repositorio del proyecto, la herramienta de trazabilidad almacena automáticamente los cambios que ha hecho el analista. Al mismo tiempo, el jefe de proyecto es alertado de los cambios y puede ver precisamente dónde y cuándo han ocurrido los cambios en el documento. Más adelante, los programadores del equipo de trabajo y los testers de QA son informados también de los cambios y reciben nuevas órdenes de trabajo para ajustar sus actividades de desarrollo y planes de pruebas. Todo el mundo está enfocado en sus tareas específicas. Nadie tiene un sobrecoste administrativo. La herramienta mantiene el conocimiento del proceso y almacena las actividades para asegurar que la trazabilidad se almacena y mantiene automáticamente – incluso en el caso de un cambio.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *