GOOM utiliza en sus proyectos una metodología SCRUM, la cual permite un desarrollo ágil y seguro basado en iteraciones progresivas que permiten ir construyendo y validando los requisitos funcionales de las empresas en sucesivas fases cortas, y así disponer de resultados en producción (Quick Wins) en cortos espacios de tiempo.
Además, para una mayor garantía, seguridad y rapidez de los desarrollos, utilizamos un método de desarrollo continúo basado en Azure DevOps.
Por tanto, a nivel de metodología usamos:
- SCRUM como metodología de gestión de proyectos.
- Azure DevOps como metodología de desarrollo del software (ingeniería del software).
Los principios en los que basamos la metodología a aplicar:
- Nuestra mayor prioridad es la entrega temprana y continua de software que aporte valor inmediato.
- Buscamos la excelencia técnica y el buen diseño funcional.
- No hay interrupciones, trabajamos con un ritmo constante de forma indefinida y hasta la puesta en producción del total del proyecto.
- Entregas frecuentes, entre dos semanas y dos meses, con preferencia al periodo de tiempo más corto posible.
- Damos mucha importancia a la comunicación, por lo que promovemos las reuniones presenciales.
- La puesta en producción, previa validación es la medida principal de progreso.
- Buscamos la simplicidad.
- Es muy importante una buena arquitectura de integración de sistemas, aplicaciones y funciones.
- Reflexión continua sobre cómo mejorar, ser más eficaces y recortar los tiempos de desarrollo y entregas.
- Una atención al usuario final es vital. Facilitamos la gestión del cambio y hacemos un seguimiento del buen uso del software.
Metología SCRUM
Es una lista de objetivos y requisitos conocida de la solución final a entregar. El producto evoluciona a medida que el producto y el entorno en el que se utilizará evolucionan.
Es el conjunto de ítems del Backlog + un plan para realizar:
- A medida que se requiere un nuevo trabajo, el Equipo de Desarrollo lo agrega a la Lista de espera de Sprint.
- A medida que se realiza o completa el trabajo, se actualiza el trabajo restante estimado. Cuando los elementos del plan se consideran innecesarios, se eliminan.
- Solo el equipo de desarrollo puede cambiar su acumulación de Sprint durante un Sprint.
- Sprint Backlog es una imagen muy visible y en tiempo real del trabajo que el equipo de desarrollo planea realizar durante el Sprint, y pertenece únicamente al equipo de desarrollo.
El Incremento es la suma de todos los ítems del Backlog del Producto completados durante un Sprint que se añade a el valor de los incrementos de todos los Sprints previos.
Actividades
- Planificación de la iteración (Sprint Planning).
- Ejecución de la iteración (Sprint).
- Reunión de sincronización del equipo (Scrum Meeting).
- Demostración de los requisitos completados (Sprint Review).
- Retrospectiva (Sprint Retrospective)
- Refinamiento de la lista de requisitos y cambios en el proyecto.
Cada una de las iteraciones y bloques contendrán las siguientes tareas:
- Análisis y consultoría funcional (incluyendo definición de test a realizar)
- Desarrollo
- Validación
En los proyectos, hacemos una dedicación de un equipo formado por:
- La dedicación de un consultor funcional senior que entienda bien el proceso de negocio global y que pueda diseñar un modelo de datos entidad relación y definición de los procesos.
- La dedicación de un arquitecto senior que dé sentido a toda la herramienta, incluyendo las integraciones con el resto de aplicaciones actuales.
- Equipo de desarrollo especializado en la aplicación/es.
Azure DevOps
Con Azure DevOps hacemos uso de una metodología ágil para el desarrollo e implantación de proyectos tecnológicos, que garantizan:
- Control de las distintas versiones de los desarrollos.
- Creación y asignación de tareas entre los distintos equipos de trabajo.
- Reducción de riesgos.
- El cliente obtiene un valor de forma más rápida.
- GOOM obtendrá rápidamente un feedback del desarrollo de la solución.
Con Azure Boards como herramienta Agile permitimos planear el trabajo, debatir sobre él y hacer un seguimiento online de cada tarea.
Utilizamos paneles kanban, lista de trabajos pendientes, paneles de equipo e informes personalizados para mantener un seguimiento del trabajo en tiempo real.
Permite un seguimiento flexible de los elementos de trabajo con una trazabilidad completa.
Calidad y garantía del desarrollo
Prestamos una especial atención a una metodología que garantice el correcto desarrollo de la solución en el menor tiempo posible.
Con Azure DevOps conseguimos agilizar el trabajo del equipo, ahorrando esfuerzo y otorgando mayor foco al trabajo de los desarrolladores, sin embargo, supone mayor reto en cuanto a la comunicación del equipo y gestión de las comunicaciones para evitar casos de prueba no identificados que ocasionen mayor trabajo adicional.
También utilizamos la técnica TDD o Test-Driven Development. A través de esta técnica, primero se definen las pruebas (casos de prueba) y a partir de estos se va desarrollando la funcionalidad, repitiendo el ciclo de forma reiterativa. A medida que se van añadiendo nuevas funcionalidades, se añaden nuevas pruebas.
Los pasos para aplicar esta técnica son:
- Tomar un requerimiento o característica del software claramente definida y aprobada por el SCRUM Master.
- Escribir una serie de pruebas iniciales para ese requisito.
- Desarrollar código necesario para pasar” o “aprobar” esos casos de pruebas.
- Se verifican los casos de prueba y se marcan como aprobados.
- De la revisión pueden surgir nuevos casos de prueba producto del refinamiento de la definición del producto, adicionalmente, se incluyen pruebas de nuevas funcionalidades recibidas del dueño de producto.
- Desarrollar más código o refactorizar el existente para pasar los casos de prueba adicionales.
- El proceso continúa hasta que no pueden idearse más casos de prueba.
Esta técnica permite asegurar que escribimos el código justo necesario para cubrir dicho requisito, a la vez que se cumplen los criterios de aceptación del cliente.
En el modelo tradicional, se dedica cantidad de tiempo significativa a diseñar completamente los modelos lógicos y físicos antes de desarrollar, con el TDD, el diseño se deriva en las pruebas de funcionalidad y se paraleliza el mismo con el desarrollo.
Por ende, está técnica (TDD) se alinea muy bien con los enfoques de iteraciones definidos en el desarrollo ágil y Scrum.
Cabe destacar que como premisa del TDD, se deben realizar integraciones y refactorizaciones continúas del desarrollo, así como la automatización de la mayor cantidad de pruebas, para lograr agilizar las pruebas y desarrollo en las altas exigencias demandas por el enfoque iterativo ágil y Scrum.
Por ende, al aplicar esta técnica debe tenerse en cuenta que es vital el uso de AZURE DevOps para el seguimiento de las pruebas y el conocimiento (know-how) del equipo en la aplicación o grupo de aplicaciones desarrollado.