1.g.1 Metodologías Ágiles de Desarrollo de Software.

Objetivo

Identificar las características fundamentales del desarrollo ágil y reconocer escenarios de uso de Scrum y Kanban.

1. Contenidos

1.1 ¿Por qué surge el desarrollo ágil?

En muchos proyectos software no conocemos desde el primer día todos los requisitos. Los usuarios descubren nuevas necesidades, la tecnología cambia y el equipo aprende mientras construye el producto.

Los enfoques ágiles intentan trabajar bien en este contexto mediante:

  • entregas frecuentes;
  • feedback temprano;
  • colaboración;
  • priorización;
  • adaptación al cambio;
  • mejora continua.

1.2 Enfoque predictivo y enfoque adaptativo

Un enfoque predictivo intenta definir con gran detalle el trabajo antes de ejecutarlo. Puede ser adecuado cuando existe poca incertidumbre y los requisitos son estables.

Un enfoque adaptativo admite que parte del conocimiento aparecerá durante el proyecto y organiza ciclos cortos de trabajo para inspeccionar el resultado y ajustar el plan.

Agile no significa que los enfoques predictivos sean incorrectos. La forma de trabajo debe seleccionarse según el contexto.

1.3 Manifiesto Ágil

El Manifesto for Agile Software Development establece cuatro valores:

  • individuos e interacciones sobre procesos y herramientas;
  • software funcionando sobre documentación exhaustiva;
  • colaboración con el cliente sobre negociación contractual;
  • respuesta ante el cambio sobre seguir un plan.

Los elementos de la derecha siguen teniendo valor; el manifiesto establece una preferencia por los de la izquierda.

1.4 Scrum

Scrum es un marco de trabajo para desarrollar productos complejos mediante iteraciones cortas denominadas Sprints.


Product Backlog
      ↓
Sprint Planning
      ↓
Sprint
      ↓
Incremento
      ↓
Sprint Review
      ↓
Sprint Retrospective
      ↓
Siguiente Sprint
				

1.5 Product Backlog e historias de usuario

El Product Backlog es una lista ordenada y evolutiva del trabajo que puede ser necesario para mejorar el producto.

Una forma habitual de expresar necesidades es la historia de usuario:


Como [tipo de usuario]
quiero [funcionalidad]
para [beneficio].
				

Ejemplo:

Como dependiente, quiero buscar un producto por nombre para consultar rápidamente su stock.

1.6 Sprint, Sprint Backlog e incremento

  • Sprint: periodo de duración fija de un mes o menos en el que se trabaja para lograr un objetivo.
  • Sprint Backlog: objetivo del Sprint, elementos seleccionados y plan de trabajo de los Developers.
  • Incremento: resultado usable que incorpora el trabajo terminado y cumple la definición de terminado.

1.7 Responsabilidades de Scrum

El Scrum Team está formado por:

  • Product Owner: responsable de maximizar el valor y gestionar eficazmente el Product Backlog;
  • Scrum Master: ayuda a que Scrum se comprenda y aplique correctamente;
  • Developers: personas responsables de crear un incremento usable cada Sprint.

El Scrum Master no debe confundirse con un jefe tradicional que asigna todas las tareas.

1.8 Eventos de Scrum

  • Sprint Planning: inicia el Sprint y establece por qué es valioso, qué puede hacerse y cómo se realizará.
  • Daily Scrum: evento de 15 minutos para que los Developers inspeccionen el progreso hacia el Sprint Goal y adapten su plan.
  • Sprint Review: inspección del resultado del Sprint con los interesados y adaptación del Product Backlog.
  • Sprint Retrospective: reflexión sobre cómo mejorar calidad y efectividad.

1.9 Kanban

Kanban ayuda a visualizar y gestionar el flujo de trabajo. Un tablero sencillo puede tener:

Por hacerEn procesoPruebasTerminado
Crear clientesRegistrar ventaBuscadorCatálogo

Las tareas avanzan a través del flujo hasta terminarse.

1.10 Límites WIP

Kanban utiliza límites al trabajo en curso o WIP (Work In Progress). Por ejemplo, si la columna “En proceso” tiene un límite de 2, no se debería iniciar una tercera tarea hasta liberar capacidad.

Limitar el WIP ayuda a:

  • reducir multitarea;
  • hacer visibles los cuellos de botella;
  • terminar antes el trabajo empezado;
  • mejorar el flujo.

1.11 Scrum y Kanban: escenarios de uso

AspectoScrumKanban
OrganizaciónSprintsFlujo continuo
Roles definidosSíNo necesariamente
Eventos definidosSíNo necesariamente
Límite WIPPuede aplicarseElemento central
Escenario típicoDesarrollo iterativo de productoFlujo continuo de incidencias o tareas

Por ejemplo, el desarrollo inicial de nuevas funcionalidades de El Emporio Arcano podría organizarse con Scrum, mientras que un flujo continuo de incidencias y mantenimiento podría gestionarse bien con Kanban.

1.12 Errores frecuentes

  • “Agile significa no planificar”: falso; se planifica de manera continua y adaptativa.
  • “Agile significa no documentar”: falso; se documenta cuando aporta valor.
  • “Scrum es reunirse todos los días”: falso; la Daily es solo uno de sus eventos.
  • “Kanban es poner post-it”: falso; el tablero sirve para gestionar un sistema de flujo.
  • “Scrum sirve para cualquier proyecto”: no necesariamente; debe evaluarse el contexto.

2. Ejercicios

  1. Explica dos diferencias entre un enfoque predictivo y uno adaptativo.
  2. Escribe los cuatro valores del Manifiesto Ágil con tus propias palabras.
  3. Define Product Backlog, Sprint, Sprint Backlog e incremento.
  4. Explica las responsabilidades de Product Owner, Scrum Master y Developers.
  5. Redacta una historia de usuario para consultar el stock de El Emporio Arcano.
  6. ¿Qué significa WIP y por qué puede ser útil limitarlo?
  7. Elige Scrum o Kanban para un equipo que recibe continuamente incidencias de producción y justifica.
  8. Elige Scrum, Kanban o un enfoque más predictivo para un proyecto con requisitos muy estables y regulados. Justifica la decisión.

3. Bibliografía