Scrum es un marco de trabajo mediante el cual se puede abordar problemas complejos de manera adaptativa, entregando productos del máximo valor posible. Es una de las Metodologías Ágiles.
Nace para gestionar proyectos de desarrollo complejos (o innovadores) en los 90s. A diferencia de eXtreme Programing, no abarca prácticas de desarrollo. Busca ofrecer el mayor valor posible en el menor tiempo posible.
Se busca reducir al máximo la burocracia y producir resultados en sprints de 1-4 semanas. Se especifica un producto inicial y acordado, del cual se van tomando partes para desarrollar iterativamente.
Control empírico de procesos desde la experiencia:
- Visibilidad: todos pueden ver el estado actual del proceso.
- Inspección: poder detectar las variaciones inaceptables.
- Adaptación: ajustar el proceso o el producto rápidamente.
Valores: compromiso, “haz tu trabajo”, honestidad, respeto, valentía.
Roles:
- Product Owner: representa a los stakeholders y al cliente. Define prioridades y la visión. Diseña el release plan. Acepta o rechaza las entregas.
- Scrum Master: facilitador que elimina los impedimentos del equipo. Vela por el cumplimiento de las prácticas Scrum y la calidad del proceso. Debe ser un líder carismático y servicial. Trabaja con influencia, no autoridad.
- Dev Team: desarrollan las funcionalidades. Estiman el esfuerzo de cada tarea. Son multidisciplinarios, auto-organizados, sinérgicos. Conviene tener integrantes generalistas con capacidades especiales (perfil en T).

- Comprometidos: tienen la responsabilidad y autoridad necesaria para lograr el éxito del proyecto. Ej: product owner, equipo, scrum master.
- Implicados: no deberían causar interferencias innecesarias a los comprometidos. Ej: marketing, comercial, etc.
Product Backlog
Se priorizan las Historias de Usuario según el principio de pareto (80%/20%). El product backlog es una lista de HUs ordenada por prioridad. Similar a una pila, se toman las HUs de arriba.

El product backlog está en constante refinamiento.
Un gráfico llamado burndown chart sirve para indicar el progreso del sprint. Nos dice si vamos lento o rápido.

Reuniones
Scrum define varias reuniones o ceremonias:
- Primeros pasos: se define el product backlog, la visión, y la misión.
- Sprint planning: primero el PO explica ítems y el dev team pregunta sus dudas. Luego, el team decide qué se puede realizar este sprint. Esto representa una negociación, definiendo el sprint backlog con un compromiso del equipo.
- Daily: reunión diaria y puntual de hasta 15 minutos. Estando todos parados, solo uno habla a la vez. Es una reunión para sincronizarse y resolver problemas. Cada integrante responde ¿Qué hice ayer?, ¿Qué haré hoy? , y ¿Qué bloqueos tengo?
- Sprint review: el team presenta la funcionalidad realizada al PO y demás interesados. Se mencionan el objetivo del sprint, el backlog comprometido, y el logrado. El PO y los interesados hacen preguntas y proponen cambios y adiciones, lo que es feedback para mejorar el software en el siguiente sprint.
- Retrospectiva: es la última reunión de un sprint. Busca mejorar de manera continua la productividad y calidad del proceso. Todo el equipo está presente. Se crea un ambiente seguro sin censura para expresarse libremente. Se responde ¿Qué se hizo bien?, ¿Qué se hizo mal?, y ¿Qué mejorar? Estas respuestas se sintetizan en acciones a tomar el próximo sprint.
