||Metodologías Ágiles en el desarrollo de software

Metodologías Ágiles en el desarrollo de software

Las metodologías ágiles son un conjunto de técnicas para gestionar y desarrollar proyectos de software donde los requisitos evolucionan para adaptarse a las necesidades del proyecto. Algunos de los rasgos comunes entre las varias metodologías ágiles que detallaremos en este post son la capacidad de los equipos para auto-organizarse, la polivalencia de los miembros del equipo desarrollador y la toma de decisiones a corto plazo.

Estas metodologías ágiles pretenden mejorar tanto la productividad del conjunto del equipo como la calidad final del desarrollo.

¿Qué problemas tienen las técnicas clásicas?proyectos-ingenieria-software

  • Planificaciones poco realistas
  • Retrasos, falta de tiempo para testeos
  • Cambios de contexto y alcance
  • Cliente poco involucrado
  • Falta de comunicación
  • Falta de motivación del equipo desarrollador
  • Falta de flexibilidad
  • Resultado no es el esperado por el cliente

Estos problemas pueden causar un desperdicio de la inversión en dinero y tiempo. Además las probabilidades de fracaso son mayores si existen este tipo de dificultades durante el desarrollo y ninguna de las partes estará satisfecha, ni el equipo desarrollador ni el cliente.

Prioridades del manifiesto Ágil

  • Considerar más importantes a los individuos e interacciones que a los procesos y herramientas
  • Sobreponer que el software funcione a la documentación excesiva
  • Colaborar con el cliente a la negociación contractual
  • Priorizar la respuesta ante los cambios a seguir con un plan

Scrum

metodologias-agiles-scrum-kanban-xp

Scrum es un marco de trabajo para los desarrollos ágiles. Sus principales características son:

  • Adoptar una estrategia de desarrollo incremental, se planifican varios bloques temporales (de dos semanas o 1 mes, por ejemplo) llamados iteraciones. Cada iteración incluye: planificación, análisis de requisitos, diseño, codificación, pruebas y documentación. De de manera incremental, se irán completando los requisitos.
  • Priorización, estos requisitos se irán cumpliendo dando prioridad primero a los que aportes más valor al cliente. Así conseguimos descargar presión a los desarrolladores del proyecto y el cliente recibirá los resultados más importantes en las primeras iteraciones.
  • Equipos auto organizados
  • Desarrollo de fases de forma paralela. Si las fases del proyecto son independientes, avanzar en más de una fase a la vez acortará los tiempos del proyecto.
  • Mejora continua.

Kanban

kanban-board

La metodología Kanban es complementaria a Scrum. En Kanban se visualiza el flujo de trabajo y este se tiene que dividir en tareas e incluirlas en el tablero.

Organizaremos el tablero de Kanban en:

  • Tareas que hay que hacer
  • Tareas en curso
  • Tareas terminadas

Principios de Kanban

  1. Visualizar el flujo de trabajo: esquematizar el flujo de trabajo para que de manera visual se puedan ver las oportunidades de mejora fácilmente.
  2. Limitar el trabajo en progreso: limitar la cantidad de trabajo para que se pueda realizar y administrar de manera razonable.
  3. Respetar los roles y mantener un liderazgo en todos los niveles.
  4. Seguimiento, monitoreo y análisis constantes para buscar formas de mejoras allanando el terreno para futuras actualizaciones.

XP – Extreme Programming

Las técnicas de XP han de permitir flexibilidad y cambios en los requisitos, además de fomentar la simplicidad, comunicación, trabajo en equipo, retroalimentación y respeto. Algunos ejemplos de estas técnicas:

  • TDD: Desarrollo guiado por pruebas. Estas pruebas deben ser escritas antes del desarrollo para validar las funcionalidades.
  • Pair Programming: Técnica en la que dos programadores comparten ordenador para programar a la vez.
  • Integración con cliente: Una persona del cliente debe trabajar junto al equipo de desarrollo, así mejora la comunicación y el seguimiento de cambios solicitados por el cliente.
  • Refactorización: Repasar y sobrescribir ciertas partes del código para mantenerlo lo más limpio y legible.
  • Propiedad compartida: Promover que todos los miembros sean capaces de tocar cualquier parte del código.
  • Simplicidad: Cuanto más simple sea el sistema construido más sencillo será comprenderlo, modificarlo o añadir nuevas funcionalidades.

¿Las metodologías ágiles son compatibles?

Todas las metodologías ágiles pueden ser complementarias entre sí, al menos de forma parcial:

La metodología Scrum está pensada para aumentar la productividad, y XP para agregar valor y calidad al proyecto. Por esto muchas organizaciones que utilizan Scrum adoptan el Pair Programming, el TDD y la refactorización como prácticas que mejoran calidad, consiguiendo al mismo tiempo una productividad alta.

Por otro lado, a menudo se utiliza el tablero de Kanban por los equipos de Scrum para realizar un seguimiento de las tareas que hay en cada sprint.

2018-02-12T10:34:16+00:00 12 febrero, 2018|Categories: Servicios|Tags: , , , , |0 Comments

Leave A Comment