Seleccionar página

¿Cómo desplegar una metodología con Azure DevOps?

Azure DevOps nos invita a desarrollar software rápida y fácilmente, pero ¿es posible aplicar CMMI utilizando Azure DevOps? ¿podremos seguir diversos marcos de trabajo? ¿cómo combina Azure DevOps con una metodología adaptativa como … OGMA? Si lo dudas, no te lo crees, te estás planteando usarlo o ya te han embarcado en ello, en este artículo os compartimos nuestros aprendizajes institucionalizando métodos y procesos de trabajo software mediante Azure DevOps. Te vamos a sorprender.

¿Son lo mismo Microsoft Azure y Azure DevOps?

(O como se llamen cuando leas este artículo)

Microsoft Azure es un ecosistema formado por un conjunto de servicios o recursos en la nube, gratuitos o de pago por uso, y bajo modelos de responsabilidad compartida (IaaS, PaaS, SaaS). En Azure conviven armoniosamente servicios/productos propios, extensiones vía Marketplace y múltiples integraciones con terceros que -en conjunto- nos permiten adaptarnos a cualquier solución software que queramos concebir, construir, desplegar o comercializar (“poner en producción”).

Por tanto, Azure proporciona un entorno estandarizado con el que podrás coordinar flujos de trabajo, generar y gestionar activos software, entornos, infraestructuras de desarrollo y producción de cualquier proyecto, ya sean aplicaciones web, móviles, almacenamiento, máquinas virtuales, redes, servicios IoT o algoritmos. ¡La bomba! ¿No?

Azure no tiene límites y es fácil empezar,
pero es delicado de exprimir porque
para sacar verdadero partido, se necesita método y pericia

Dentro del ecosistema Azure tenemos Azure DevOps, el Application Life Cycle Management (ALM) de Microsoft, con el que administrar todas las fases del ciclo de vida de un producto software, desde su concepción (diseño), creación, implementación y mantenimiento (desarrollo), hasta su implantación (despliegue) y explotación (operación). Que sí, que también el aseguramiento de la calidad del producto ¡Faltaría más!

“Quality software in less time”
Lema del ALMBOK, Application Lifecycle Management Body of Knowledge

¿Cómo desplegar una metodología con Azure DevOps?

Típicamente durante el ciclo vital de un producto software necesitaremos gestionar diversos procesos de trabajo, como el diseño y realización de los requisitos, la gestión del cambio, el seguimiento del desarrollo, las pruebas y las incidencias, la gestión del código, junto con su seguridad, integraciones y despliegues lo más frecuentes posible.

Coordinar toda esta actividad de desarrollo es fundamental para sostener una entrega de valor constante. Por ello utilizamos Azure Boards para establecer el marco de trabajo de referencia. En función del marco elegido, al generar el proyecto seleccionamos entre cuatro plantillas de proceso: Basic, Scrum, Agile y CMMI. En esencia, estas plantillas difieren entre sí por el tipo de “work item” que contienen, su formato y los estados del flujo de trabajo.

La necesaria comunicación y constante feedback en los equipos son excelentes con Azure DevOps, gracias a las facilidades de comunicación e interacción entre miembros que incluye de serie. Esto, sumado a la capacidad de gestión que proporciona para los diferentes grupos de trabajo o equipos, como los equipos de desarrollo, operaciones TI, pruebas, etc., con tableros Kanban individuales para cada uno de ellos dentro del mismo proyecto, facilita enormemente la implementación de las metodologías y, por tanto, el uso institucional de Azure en nuestros proyectos.

¿Cómo utilizar las plantillas de proceso en Azure Boards?

Con la plantilla de proceso Basic establecemos un modelo de trabajo simplificado, con solo un tipo de elemento (“work item”) para la definición (“issue”), otro para las tareas (“task”) y otro para anomalías (“bug”):

Plantilla proceso Basic en Azure Boards

Plantilla proceso Basic en Azure Boards

Con la plantilla de proceso Scrum podemos reforzar el compromiso del equipo por aplicar este marco de trabajo.

Azure Boards usado en conjunto con la Wiki y otras extensiones que proporciona Azure DevOps, facilita enormemente la realización del prototipo o definición del proyecto y el seguimiento de las diversas acciones Scrum, como las retrospectivas o la planificación de cada iteración (“Sprint planning”). Si practicas la estimación con puntos de historia, podrás hacerlo apoyándote en las extensiones disponibles:

Plantilla proceso Scrum en Azure Boards

Plantilla proceso Scrum en Azure Boards

Con la plantilla de proceso Agile, tenemos unas métricas más completas y es acorde a entornos más grandes de desarrollo que incluyan a equipos de pruebas. Las historias de usuario son el elemento estrella. En breve, gestionando con Azure Boards nos aseguramos el planear desde el “backlog” del producto y hacer un seguimiento del trabajo y pruebas. Así, definiendo tipo de tareas y estimando tiempos en sus “work items”, alcanzamos un progreso incremental con el uso de “sprints” como iteraciones cortas.

Radiar información a los involucrados se facilita desde tableros Kanban, en los que puedes ver los “sprints” en curso, su desglose por equipo o al nivel de detalle que interese, ya sea desde un punto de vista más funcional (con las épicas) o más técnico (con las tareas de las “user stories”).

Plantilla proceso Agile en Azure Boards

Plantilla proceso Agile en Azure Boards

Con los “work items” disponibles se puede gestionar todo el trabajo de cada miembro y/o equipos. También podemos personalizar los distintos procesos, analizar los flujos de trabajo y construir una visualización global de los “Sprints” para ver fácilmente el contenido de cada entrega (las «Releases”). Además de admitir extensiones, esta herramienta también trabaja con consultas muy potentes sobre los “work items”, lo que nos hace muy fácil el generar reportes y gráficas. Nosotros lo utilizamos para elaborar métricas y monitorizar los procesos de trabajo y el desarrollo del software.

Y, por último, con la plantilla de proceso CMMI clásico nos enfocamos en extremar la trazabilidad, por ello es la que tiene mayor peso y campos a rellenar.

Plantilla proceso CMMI en Azure Boards

Plantilla proceso CMMI en Azure Boards

Sí, has leído bien, si aplicas una metodología muy detallada y con mucho foco en generar artefactos para evidenciar las auditorías de tu servicio o producto software, Azure DevOps ofrece una buena base de partida.

Sin embargo, CMMI es mucho mejor que artefactos, evidencias o auditoría continua. Si estás interesado, te animamos a contactar con nosotros, estaremos encantados de compartir nuestros aprendizajes contigo. A fin de cuentas, en el año 2011, Panel fue la primera empresa europea en certificar simultáneamente en ISO 15504 y CMMI Dev L3 su metodología de desarrollo software (OGMA). Y no hemos dejado de remar: en 2020 Panel se evalúa con éxito en el modelo CMMI v2.0. para Desarrollo y Servicios en nivel 3 de madurez.

En la documentación de Azure DevOps está disponible un mayor detalle sobre cada una de estas plantillas de proceso.

¿Y qué pasa con los procesos DevOps en Azure?

Azure DevOps nos permite una gestión total del código, desde su implementación, gestionando el código y las pruebas automatizadas, ejecutando compilaciones en diversos entornos (desarrollo, integración, certificación, etc.) hasta la monitorización del sistema en producción.

¿Y todo esto cómo? Pues con una serie de herramientas que te permiten gestionar todo el ciclo de vida del código siguiendo los procesos de Integración continua (CI), despliegue continuo y entrega continua (CD). Estas herramientas son Pipelines, Test Plans, Boards, Repos y Artifacts. En este otro artículo te explicamos cómo ponerte en marcha en 5 minutos: Azure DevOps, todo a un clic de distancia.

En particular queremos destacar la herramienta de Azure Test Plans, con la que podremos gestionar los diferentes planes de pruebas del software. La destacamos por la importancia que tiene en la automatización de las pruebas para ejecutarlas en los pipelines, en cada momento de vida del software. Nosotros también la usamos para pruebas funcionales y de aceptación. Continuando con las pruebas en DevOps, estas aseguran el avance en cada fase del ciclo de vida del software, tratándose principalmente de pruebas unitarias, de integración, funcionales y rendimiento.

En resumen, la filosofía DevOps y Azure DevOps haciendo honor a su nombre, buscan la eficiencia a partir de la automatización de procesos y tareas rutinarias, necesitando un alto nivel de automatización que la herramienta de Microsoft facilita bastante con sus diferentes módulos. Como en Agile, también en los ambientes DevOps se promueve la mejora continua de los procesos, identificando y aumentando aquellos programables, reduciendo el tiempo de programación y aumentando la productividad de los desarrolladores y administradores del sistema, con un control total sobre el ciclo de vida de las aplicaciones.

Conclusión:

En conclusión, Azure DevOps es una solución en la nube que te ofrece una gran capacidad de personalización, automatización e integración de sus flujos de trabajo con cualquier tipo de proyecto de desarrollo Software, haciendo muy fácil la colaboración y la entrega de software, gracias también al entorno de servicios de Microsoft Azure y sus integraciones.

Con el uso de sus herramientas ágiles y DevOps, facilitamos la inclusión de estos marcos de trabajo en las empresas, consiguiendo desarrollar soluciones software de forma muy competitiva, con entrega frecuente y asegurando su calidad. Por comentar algún contra, la edición de la wiki quizás no es lo más Agile que esperas, ya que tienes que editarla en lenguaje fuente (markdown) … ¡Todo se andará!

Por tanto, sí es posible aplicar CMMI utilizando Azure DevOps. Pero hay que currárselo.

Y SÍ, podemos institucionalizar diversos marcos de trabajo para el desarrollo de software. Nosotros lo hacemos y lo recomendamos. Es el camino hacia la productividad y la satisfacción del cliente, gracias a la entrega frecuente del valor esperado.

Iyoba Vargas Pérez

Iyoba Vargas Pérez

Iyoba es Agile & QA Senior Consultant en Panel Sistemas. Puedes contactar con ella via e-mail o visitar su perfil en Linkedin.

Déjanos tu comentario

1 Comentario

  1. Miguel Angel Nicolao

    ¡Enhorabuena Iyona! Brillante esfuerzo en condensar las posibilidades que nos ofrece Azure Boards para organizar el trabajo de los equipos … ¡Me han entrado unas ganas de poneme con Azure Boards! Gracias

    Responder

Enviar un comentario

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

También te puede interesar:

Share This