<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=160269078105920&amp;ev=PageView&amp;noscript=1">

Integración de equipos de control de calidad distribuidos en Agile

Viernes 15 de Febrero 2019./ Tiempo de Lectura: 7 minutos./ Por Avantica

Agile es uno de los enfoques más adoptados para el desarrollo de software y sin importar si la implementación seleccionada es SCRUM, Extreme Programming u otra, todos siguen los conceptos básicos originalmente articulados en el Manifiesto Ágil.

En la práctica, uno de los aspectos más importantes a tener en cuenta al ejecutar una metodología de desarrollo de software ágil es la interacción entre los distintos individuos del equipo. Con frecuencia, la colaboración estrecha e incluso intensa se identifica como la clave del éxito en los proyectos Agile.

El equipo de desarrollo se esfuerza mucho en crear entornos de trabajo que permitan una colaboración más fácil y efectiva.

Muchas empresas de software de EE. UU. de manera predeterminada configuran sus equipos de desarrollo localmente para optimizar el proceso de colaboración al tener a todos los miembros del equipo ubicados en un único edificio o campus. Sin embargo, debido a la falta de disponibilidad documentada del talento de ingeniería local, muchas empresas buscan otras geografías para ayudarles a escalar su equipo.

Al no estar dispuestos a pasar por los muchos meses o trimestres que lleva reclutar talentos locales, encuentran ingenieros talentosos y disponibles a través de alianzas con compañías de servicios de ingeniería de software.

La integración de los equipos de control de calidad en el proceso de desarrollo puede, a veces, ser un problema en circunstancias normales. Esto es particularmente cierto para los proyectos de ingeniería basados en Agile, particularmente cuando las personas no están acostumbradas a ciertas prácticas de colaboración.

Cuando agregamos la realidad de un equipo de control de calidad distribuido geográficamente, en algunos casos ubicados en diferentes países y zonas horarias, el proceso de colaboración adquiere una complejidad adicional que debe abordarse.

Logrando el trabajo en equipo

La realidad es que los equipos de control de calidad distribuidos geográficamente que colaboran en un proyecto basado en Agile pueden funcionar tan bien como los de una misma ubicación, o incluso mejor, siempre que la combinación correcta de procesos, herramientas y experiencia esté firmemente establecida.

PROCESO: la clave para la verdadera colaboración ágil

Cuando hay poco tiempo para realizar actividades, tener un proceso claramente definido para todas esas tareas cotidianas es fundamental. En una metodología Agile, los ingenieros de software de QA no solo se encargan de las pruebas de la aplicación, sino que también tienen que estimar y especificar casos de prueba, informar y verificar problemas, crear scripts de automatización y escalar grandes problemas como parte de la rutina diaria.

A continuación se incluye una lista de acciones recomendadas que mejorarán el proceso y facilitarán la integración de los ingenieros de control de calidad geográficamente distribuidos en la colaboración del equipo.

Involucrar a los ingenieros de QA en todas áreas del proyecto

Involucrar a los ingenieros de QA no solo en las actividades relacionadas con las pruebas sino también en las tareas de planificación, diseño y post implementación. Pidiéndoles a los miembros del equipo de QA que participen en reuniones de planificación, revisiones de diseño y demostraciones de aplicaciones iniciales les dará una imagen técnica y comercial más clara de la producción general. También les permitirá proporcionar retroalimentación al inicio del proceso, ayudando a evitar problemas más grandes y dañinos dentro de la etapa de desarrollo avanzado.

Trabajar más profundo con los criterios de aceptación

Asegúrese de que se especifiquen criterios de aceptación claros (en la creación) para cada historia de usuario en la que el equipo debería trabajar. Los criterios deben especificar las entradas necesarias, los resultados esperados, las validaciones establecidas y cualquier otro comportamiento esperado, permitiendo que el desarrollo cree las características correctas, mientras que QA verifica las expectativas correctas.

Estandarizar los criterios de priorización para problemas detectados

Asegúrese de que, sin importar quién encuentre y analice un problema en el proceso de desarrollo, todos utilicen los mismos criterios para priorizar. Esto asegurará que primero se preste atención a los ítems de alta prioridad, en lugar de perder el tiempo al atravesar, y luego descartar las falsas alarmas.

Definir procesos claros de comunicación y escalamiento.

Siempre que el equipo de ingeniería de QA tenga claro quién debe estar al tanto de las situaciones basadas en las áreas afectadas o la prioridad de un problema, el equipo no perderá tiempo; se perderá el tiempo de tener que redirigir las comunicaciones a las personas adecuadas. El resultado: los problemas llegarán al público adecuado más rápido, lo que permite una resolución más rápida.

Crear mecanismos de trazabilidad

Crear mecanismos de trazabilidad entre el QA y el trabajo de desarrollo para evitar el trabajo duplicado, especialmente para ciertas tareas como la automatización de pruebas, que son un esfuerzo conjunto entre QA (pruebas funcionales) y desarrolladores (unidades y algunas pruebas de integración).

Definir un conjunto de etiquetas en las herramientas de gestión

Definir un pequeño conjunto de etiquetas en las herramientas de gestión para representar fases del trabajo realizado por las partes (es decir, "Unidad probada" o "QA automatizada") y / o tener un proceso para seguir el esfuerzo de cada parte a través de comentarios realmente puede ayudar a todos se mantengan  informados sobre el trabajo ya hecho.

Definir un conjunto de métricas

Permitir la QA visibilidad mediante la definición de un conjunto de métricas que el equipo de QA creará y mantendrá periódicamente, cubriendo áreas como la tasa de errores y la clasificación, la ejecución de casos de prueba y el estado general de la aplicación que se está probando.

Esta información servirá como un canal de comunicación y proporcionará información importante sobre el proceso y el producto en sí basado en el trabajo real de control de calidad.

HERRAMIENTAS: el soporte ideal para su proceso de colaboración ágil

Un proceso bien definido sin duda será un gran paso hacia el objetivo de tener una colaboración Agile real. Pero si realmente queremos mejorar el proceso y llevarlo al siguiente nivel, debemos agregar algunas herramientas clave y aprovecharlas al máximo.

La mayoría de los esfuerzos de desarrollo de software hoy en día tienen al menos un sistema de administración de errores y alguna herramienta para administrar las historias / requisitos de los usuarios de una manera más estructurada que solo hojas de cálculo o mensajes de correo electrónico enviados de ida y vuelta.

En el caso de las empresas maduras, es muy probable que también tengan una herramienta de gestión de casos de prueba para su equipo de control de calidad y cierta infraestructura para la automatización de pruebas a nivel de unidad o integración.

Si un equipo usa todas o solo algunas de las herramientas mencionadas, el problema principal en la mayoría de los casos es la falta de integración o referencias cruzadas entre las herramientas.

El equipo de ingeniería de control de calidad automatiza las pruebas de su lado e informa problemas en el proceso. Desafortunadamente, el equipo puede desconocer la historia del usuario correspondiente relacionada con esa prueba automatizada o los problemas abiertos que resultan de probar una historia específica.

Hay una desconexión que puede conducir a consecuencias no deseadas y mala calidad.

La falta de rastreabilidad entre las herramientas puede afectar negativamente el proceso de colaboración, por lo que es innecesariamente complejo. Sin embargo, la buena noticia es que podemos resolver el problema adoptando prácticas muy simples: - Para cada historia de usuario creada, asegúrese de que su equipo de desarrollo agregue referencias a las secciones del código en las que se agregaron las pruebas de cobertura a nivel de unidad.

De la misma manera, solicite a su equipo de control de calidad que agregue referencias (URL) para probar casos en la herramienta de administración de CT e informes de errores encontrados para cada historia específica.

  • Cada vez que se informa un error como resultado de probar una historia de usuario específica, QA también puede agregar una referencia a la historia del usuario en el sistema de gestión de requisitos para completar la referencia cruzada.

  • Cada caso de prueba definido en la herramienta de gestión de TC puede identificarse fácilmente como automático (ya sea por los desarrolladores de software o por los ingenieros de QA) verificando un campo para este propósito, cuando esté disponible, o simplemente agregando una etiqueta descriptiva al TC. Además, se puede agregar un comentario con una referencia al archivo real que contiene el código de automatización.

  • En el nivel de código, las referencias se pueden agregar utilizando las características nativas de algunos marcos de prueba (es decir, anotaciones de Java) como una forma de cerrar el círculo de referencias cruzadas.

Siguiendo esas prácticas simples, se asegurará de que todo el equipo de ingeniería de software, sin importar la ubicación individual, tenga la información requerida para determinar cómo va el proceso y cuál es el próximo paso a seguir.

EXPERIENCIA: el ingrediente final para lograr la colaboración ágil

El conocimiento es probablemente la mejor herramienta que podemos tener sin importar la actividad que realicemos. Los ingenieros de control de calidad con experiencia trabajando en procesos de desarrollo ágiles están acostumbrados al dinamismo diario requerido, y eso es especialmente conveniente si su equipo de control de calidad se distribuirá ampliamente en distintos estados o incluso países.

Dado que determinar la experiencia Agile real de un recurso puede ser complicado en una entrevista, debemos centrar la atención en un conjunto de habilidades más genéricas para asegurarnos de que nuestros ingenieros de QA distribuidos tengan el perfil adecuado para colaborar exitosamente utilizando el proceso y las herramientas que hemos definido.

La flexibilidad personal es la clave del éxito debido a la variedad de actividades que se realizarán en un proceso ágil de control de calidad.

Algunas de las cosas más importantes a tener en cuenta en un ingeniero de QA que trabajará en un equipo ampliamente distribuido son:

  • Habilidades de comunicación, tanto habladas como escritas, ya que la mayoría de las comunicaciones se realizarán por correo electrónico, llamadas en conferencia, herramientas de chat electrónico como Skype o G-talk, o informes específicos. Hay una ventana de tiempo reducida para la comunicación, y debemos asegurarnos de que el mensaje se envíe de la manera más clara y rápida posible.

  • Conocimiento técnico sólido para permitir un análisis más profundo y la toma de decisiones en situaciones donde las respuestas o aclaraciones necesarias de los desarrolladores de software o gerentes en diferentes ubicaciones tomarán algún tiempo para llegar.

  • Respuesta rápida a situaciones inesperadas para garantizar que la garantía de calidad se mantenga al ritmo del proyecto deseado y se adaptará a las necesidades cambiantes del proyecto. Incluso si esos cambios llegan inesperadamente y en ocasiones no deseados, con poca antelación, lo que deja poco tiempo para la asimilación.

El desarrollo de software ágil sigue siendo una de las metodologías más populares. Todo indica que la popularidad seguirá creciendo.

La colaboración sólida y en tiempo real entre las distintas personas del equipo sigue siendo un camino clave hacia el éxito y es por esta razón que se prestar atención a la creación de un entorno de trabajo simplificado que permita una colaboración más fácil y efectiva asegurará la entrega de software de calidad.

Acerca de Avantica

En Avantica trabajamos como un socio de software que le ayuda a cumplir sus objetivos comerciales y dar solución a cada reto que se le presente.
Ofrecemos equipos dedicados y buscamos constantemente las mejores metodologías para brindarle los mejores resultados.

ANTERIOR
AI Hype- ¿Por qué todo el mundo está hablando de AI?
SIGUIENTE
9 de 9: Las 9 cosas que debes saber de Android 9.0