Saltar a contenido

Scrum básico

Scrum es un marco de trabajo que divide el desarrollo en ciclos cortos llamados Sprints, normalmente de una o dos semanas. Al final de cada Sprint, el equipo revisa lo que se ha logrado, reflexiona sobre lo que podría mejorarse y planifica el siguiente Sprint.

En esta unidad, utilizaremos una versión simplificada de Scrum adaptada a nuestras necesidades. Esta metodología te ayudará a organizar y planificar el trabajo de tu equipo de manera eficiente.

Fuente: https://www.scrum.org/

Roles en Scrum

En cada Sprint, los tres miembros del equipo asumirán roles adicionales a sus responsabilidades como equipo de desarrollo. Estos roles serán rotativos y deben definirse en una reunión inicial:

  • Scrum Master: Facilita las reuniones, asegura que el equipo siga el proceso Scrum y elimina bloqueos. También mantendrá actualizado el tablero de tareas en GitHub Projects una vez esté configurado.
  • Product Owner: Define las prioridades, decide qué debe hacerse en el Sprint y supervisa que las entregas cumplan los requisitos.
  • Equipo de desarrollo: Ejecuta las tareas del Sprint, participa en las reuniones y se asegura de que las tareas asignadas avancen según lo planificado.

Ciclo de trabajo en Scrum

El ciclo de trabajo en Scrum se compone de varias etapas clave que permiten al equipo planificar, ejecutar y revisar su progreso de manera efectiva. A continuación, exploraremos cada una de estas etapas, comenzando con la Planificación del Sprint.

Planificación del Sprint

La planificación del Sprint es una reunión que marca el inicio de cada ciclo de trabajo. En esta reunión, el equipo:

  • Objetivo: Definir claramente qué se puede completar en el próximo Sprint y cómo se realizará el trabajo.
  • Duración: Aproximadamente 1 hora para un Sprint de una semana.
  • Actividades principales:
    • Revisar y priorizar el backlog del producto (lista de tareas pendientes).
    • Seleccionar las tareas que se pueden completar durante el Sprint.
    • Definir el "objetivo del Sprint" - un objetivo claro y conciso que guíe el trabajo del equipo.
    • Dividir las tareas seleccionadas en unidades de trabajo más pequeñas y manejables.
    • Asignar tareas a los miembros del equipo según sus habilidades y capacidades.

Ejemplo de planificación de Sprint:

Objetivo del Sprint: Configurar el entorno de desarrollo MERN

Tareas seleccionadas:
- Instalar Node.js y npm
- Configurar MongoDB Atlas
- Crear estructura básica del proyecto React
- Configurar herramientas de desarrollo (ESLint, Prettier)

Desarrollo del sprint

  1. Sprint: Un período corto (1 semana) donde el equipo se enfoca en completar un conjunto de tareas específicas.

  2. Daily Standup (reunión diaria): Una breve reunión (10 minutos) donde cada miembro responde:

    • ¿Qué hice ayer?
    • ¿Qué voy a hacer hoy?
    • ¿Tengo algún impedimento?

Cierre del Sprint

  1. Revisión del Sprint: Al final del Sprint, el equipo presenta lo logrado y reflexiona sobre el progreso.

  2. Retrospectiva del Sprint: Reflexión grupal sobre qué funcionó bien y qué se puede mejorar para el siguiente Sprint.

Consejos para una planificación de sprint efectiva

  • Mantén las tareas específicas y medibles.
  • Asegúrate de que todos los miembros del equipo entiendan el objetivo.
  • Sé realista con la cantidad de trabajo que se puede completar.
  • Deja algo de margen para imprevistos o tareas de aprendizaje.

La Planificación del Sprint es un momento clave para alinear expectativas, distribuir el trabajo de manera equitativa y establecer un objetivo común para todo el equipo.

Reuniones de equipo

En el ciclo de trabajo de Scrum, hemos mencionado varias reuniones clave, incluida la Planificación del Sprint, que ya hemos abordado. Ahora, vamos a detallar en qué consiste cada una de las demás reuniones, su propósito y cómo llevarlas a cabo de manera efectiva.

Daily Standup (reunión diaria)

  • Duración: Máximo 10 minutos.
  • Propósito: Sincronizar el trabajo diario, identificar problemas y ajustar prioridades.
  • Formato: Cada miembro responde a tres preguntas:
    • ¿Qué hice ayer?
    • ¿Qué haré hoy?
    • ¿Tengo algún impedimento?
  • Consejo práctico: Realiza esta reunión al inicio de cada sesión de clase para mantener la comunicación y el enfoque.
  • Documentación: Solo los impedimentos deben registrarse en GitHub Projects, ya sea como un comentario en las tareas afectadas o como una nueva tarea.

Revisión del Sprint

  • Duración: 20-30 minutos (al final del Sprint).
  • Propósito: Presentar el trabajo realizado durante el Sprint y comprobar si se alcanzaron los objetivos.
  • Formato:
    • Cada miembro comparte sus logros principales.
    • Revisa las tareas completadas en el tablero de GitHub Projects.
    • Identifica las tareas no completadas y decide los pasos a seguir.
  • Documentación:
    • Actualiza el tablero de GitHub Projects con el estado final de las tareas.
    • Añade comentarios en las tareas no completadas con los pasos necesarios para finalizarlas.

Retrospectiva del Sprint

  • Duración: 20 minutos (después de la Revisión del Sprint).
  • Propósito: Reflexionar sobre lo que funcionó bien y lo que puede mejorar.
  • Formato:
  • Cada miembro responde:
    • ¿Qué funcionó bien durante el Sprint?
    • ¿Qué podemos mejorar para el próximo Sprint?
  • Registra las conclusiones y acciones de mejora en la documentación del proyecto o en GitHub Projects.

Ejemplo de registro en la retrospectiva:

Retrospectiva Sprint 1 (20-27 de noviembre)
**Qué funcionó bien:**  
  - Buena colaboración en tareas individuales.  
**Qué mejorar:**  
  - Mejorar la comunicación en las Daily Standups.  
**Acciones de mejora:**  
  - Reducir tiempo de las reuniones y ser más específicos.  

¿Quién documenta las reuniones?

La responsabilidad de documentar las reuniones recae en el Scrum Master, quien debe registrar las decisiones importantes, los impedimentos detectados y las acciones acordadas.

Consejos para reuniones efectivas

  • Sé puntual: Respeta el tiempo asignado para cada reunión.
  • Documenta: Registra las decisiones importantes, los impedimentos detectados y las acciones acordadas.
  • Mantén el enfoque: Evita discusiones largas o temas no relacionados.

Realizar reuniones regulares te ayudará a mantener a todo el equipo alineado, identificar problemas rápidamente y mejorar el flujo de trabajo.

¡Empieza cada Sprint con una buena reunión y finalízalo reflexionando sobre cómo avanzar mejor!

Sprint inicial

El objetivo principal del primer Sprint es familiarizarse con las tecnologías y herramientas necesarias para el proyecto:

  • MERN Stack (MongoDB, Express, React y Node.js).
  • Herramientas de documentación (Wiki y JsDocs).
  • Gestión de tareas con GitHub Projects.

Asignación de roles

Durante la reunión inicial, el equipo debe:

  1. Asignar los roles de Scrum Master y Product Owner para el primer Sprint.
  2. Registrar los roles temporalmente en un documento compartido.
  3. Establecer un plan para rotar roles en Sprints futuros.

Ejemplo de roles

## Roles del Sprint 1 (20-27 de noviembre)
- Scrum Master: Ana
- Product Owner: Luis
- Equipo de desarrollo: Todos

Nota: La rotación de roles permite que todos los miembros experimenten cada función y comprendan mejor el marco de trabajo.

Planificar el Sprint

En la reunión inicial, el equipo debe crear una lista de tareas relacionadas con el aprendizaje y asignarlas a los miembros. Usa una tabla como esta:

Ejemplo de planificación de Sprint 1

Tarea Responsable Estado Prioridad
Investigar MongoDB: qué es y para qué sirve Ana Por hacer 1
Configurar MongoDB Atlas: crear y acceder a una base de datos Ana Por hacer 2
Crear una colección básica en MongoDB (usuarios) Ana Por hacer 3
Investigar Express: configuración inicial y rutas básicas Luis Por hacer 1
Configurar un servidor básico con Express que devuelva "Hola Mundo" Luis Por hacer 2
Crear una ruta en Express que devuelva datos en formato JSON Luis Por hacer 3
Explorar cómo funciona la Wiki del repositorio Pedro Por hacer 1
Crear una página principal en la Wiki con el título "Scrum" Pedro Por hacer 2
Documentar roles de Scrum en una subpágina de la Wiki Pedro Por hacer 3
Investigar JSDoc: qué es y cómo funciona Ana Por hacer 4
Crear ejemplos de JSDoc en funciones simples de JavaScript Ana Por hacer 5
Probar cómo escribir tareas en GitHub Projects Luis Por hacer 4
Crear una tarea básica en GitHub Projects y moverla entre columnas Luis Por hacer 5

Gestión de prioridades

  1. Prioridad numérica: Las tareas con menor número tienen mayor prioridad y deben realizarse primero.
  2. Sin conflictos: Durante el Sprint, cada miembro trabaja en su tarea con la prioridad más alta pendiente, sin necesidad de decidir entre varias.
  3. Evitar bloqueos: Si una tarea es bloqueante para otras (por ejemplo, configurar MongoDB antes de desarrollar rutas en Express), debe asignársele una prioridad adecuada para garantizar el flujo del trabajo.

Documentación de Scrum en la Wiki

Para documentar los procesos y roles de Scrum, el grupo creará y organizará una página principal dentro de la Wiki del repositorio, titulada Scrum. A partir de esta, se agregarán subpáginas para cubrir aspectos específicos como roles, reuniones y sprints.

Estructura sugerida para la Wiki

Página principal

  • Introducción al marco de trabajo.
  • Importancia de Scrum en el desarrollo colaborativo.

Subpáginas

  1. Roles:

    • Scrum Master: Funciones y responsabilidades.
    • Product Owner: Funciones y prioridades.
    • Equipo de desarrollo: Contribuciones principales.
  2. Reuniones:

    • Planificación del Sprint: Pasos a seguir y cómo documentar las tareas seleccionadas.
    • Daily Standup: Qué preguntas responder y cómo reflejar los bloqueos en la Wiki.
    • Revisión del Sprint: Cómo registrar los avances y las tareas pendientes.
    • Retrospectiva: Reflexión grupal, registro de acciones de mejora y aprendizajes.
  3. Sprints:

    • Página dedicada a cada Sprint.
    • Información a incluir:
      • Objetivo del Sprint.
      • Tareas seleccionadas.
      • Estado final: Qué se completó y qué quedó pendiente.
      • Roles asignados: Scrum Master, Product Owner.

Ejemplo de estructura:


### Sprint 1 (20-27 de noviembre)

**Objetivo:** Familiarizarse con el stack MERN y herramientas colaborativas.  

**Tareas seleccionadas:**  
 - Configurar MongoDB Atlas.  
 - Explorar Wiki del repositorio.  
 - Aprender JSDoc.  

**Estado final:**  
 - [✔] Configuración de MongoDB Atlas completada.  
 - [✖] Middleware en Express pendiente para el siguiente Sprint. 

**Roles:**  
 - **Scrum Master:** Ana.  
 - **Product Owner:** Luis.  

¡Empieza con el primer Sprint y organiza tu equipo!