Categorías
Agile

Introducción a Scrum para desarrolladores

Dentro de las metodologías Agile destaca Scrum como marco de buenas prácticas para el desarrollo de proyectos. Su orientación sencilla, basada en auto gestión y la adaptabilidad del proceso, lo hace ideal de cara a su implementación en equipos de desarrollo de software.

¿Qué es Scrum?

Scrum es un marco de buenas prácticas para el desarrollo de proyectos -no solo de software- de forma colaborativa e iterativa, que permite abordar proyectos complejos aportando valor de forma incremental.

Estas prácticas tienen su origen en aquellas que se empleaban en los equipos de grandes empresas de desarrollo de software y productos de ingeniería en las décadas de los 70 y 80. Posteriormente, con la publicación del manifiesto ágil, se le da forma y se establecen los distintos roles, eventos y artefactos que conforman el marco de Scrum.

El Equipo Scrum: roles y responsabilidades

La principal idea tras la constitución del Equipo Scrum es que este sea multidisciplinar, cross funcional, y que trabaje de manera auto organizada siguiendo las recomendaciones indicadas en la guía Scrum.

¿Qué quiere decir esto? Que cada miembro del equipo pueda aprender el uno de otro, solaparse en algunas tareas y, entre todos,  entregar incrementos de valor del producto.

El objetivo es no depender de otros equipos o personas para desarrollar el producto y maximizar la flexibilidad, creatividad y/o productividad del equipo.

La estructura recomendada de un Equipo Scrum, o Scrum Team, es la siguiente: 1 Product Owner, 1 Scrum Master y los Desarrolladores.

Los distintos roles puedes recaer en distintas personas o una única persona tener varios. Por ejemplo, el Product Owner puede ser uno de los Desarrolladores o un desarrollador puede ser Scrum Master.

¿Cuál es la figura del Product Owner?

Es el encargado de maximizar el valor entregado por el equipo. Definirá, desarrollará y trasladará la visión al resto del equipo.

Gestiona la comunicación entre el Equipo Scrum y el cliente. Tiene conocimiento técnico y de negocio, movilidad a todos los niveles.

En definitiva, es la voz del cliente dentro del equipo. También define el Backlog del Producto (o Product Backlog).

¿Quién es el Scrum Master?

Se encargará y facilitará el trabajo del equipo de desarrollo dentro del marco Scrum. Será el responsable de valorar situaciones potencialmente bloqueantes y ayudar a desbloquearlas.

Tiene rasgos de líder,  es facilitador de medios y comunicador con el resto del equipo, cliente, etc. Ayuda a que los eventos que se deben llevar a cabo dentro de un sprint se realicen de forma correcta.

¿Quiénes son los desarrolladores?

Son los encargados de crear el valor y desarrollar el producto. Entregan los sprints de manera programada en formato terminado.

Aunque es el Product Owner es quien define, y refina, el Backlog del Producto, los desarrolladores son los que acuerdan qué tareas se ejecutan dentro de cada Sprint compartiendo la responsabilidad en la ejecución del mismo.

De esta manera, los desarrolladores trabajan de manera auto organizada y cross funcional para alcanzar el máximo de tareas realizadas dentro del Sprint programado.

Los eventos de Scrum

Sprint es el nombre que recibe cada uno de los ciclos o iteraciones que tenemos dentro de un proyecto gestionado con Scrum.

Se recomienda que su duración sea menor o igual a 1 mes (usualmente 2 semanas, aunque puede variar en función de lo que se estime).

Podemos considerar el Sprint como el contenedor del resto de eventos que se llevan a cabo dentro de él. Se estructuran de la siguiente manera:

  • Sprint Planning: planificación/presentación del trabajo a abordar en el sprint. En este evento participarán todos los roles que conforman el proceso, donde se definirán unas tareas (Sprint Backlog) y objetivos (Sprint Goals).
  • Sprint Review: se produce al final del sprint, con objetivo de inspeccionar el trabajo desarrollado y adaptar el Product Backlog gracias al feedback que obtengamos en la revisión con el Product Owner. También participarán todos los roles del proceso.
  • Sprint Retrospective: en esta reunión el Equipo Scrum se inspecciona a si mismo en el trabajo realizado durante el sprint y se crea un plan de mejoras en el equipo y para el desarrollo del producto. El objetivo final es tener mejorar los procesos en los siguientes sprints.
  • Scrum Daily: se definirá una estructura para esta daily, así se hará de forma rápida y fluida (qué he hecho ayer, qué voy hacer hoy, qué problemas he encontrado). Principalmente participará el equipo de desarrollo.

    Estructura de eventos de un Sprint

    ¿Qué ganamos con esta estructura de eventos ? Regularidad en el seguimiento del proceso evitando la necesidad de reuniones imprevistas, evitando interrupciones en el transcurso del flujo de trabajo del equipo y generando confianza en el proceso.

    Todos ello está orientado conseguir:

    • La transparencia de la planificación y tareas a realizar por todos los miembros del Equipo Scrum.
    • La inspección de todo el proceso ayudando a detectar posibles mejoras.
    • La adaptabilidad del proceso a los cambios que puedan surgir en los distintos eventos: problemas técnicos, cambios de prioridad de negocio, nuevas funcionalidades, etc.

    Artefactos generados en Scrum

    Están diseñados para representar el trabajo y el valor aportado por el equipo, maximizando la transparencia de la información y las oportunidades para la inspección y adaptación.

    • Product Backlog: recoge todo lo que se va a desarrollar sobre el producto. El Product Owner se encargará de que este artefacto este ordenado y listo para el equipo. Incluyen una descripción, prioridad, valor y estimación. También puede incluir criterios de aceptación. Se mantendrá vivo durante el desarrollo.
    • Sprint Backlog: generado por los desarrolladores recoge aquellos tareas del Product Backlog seleccionados que se incluirán hacer en el sprint, así como el plan para entregar el Incremento del producto y conseguir el objetivo del Sprint. Puede evolucionar a lo largo de Sprint, a medida que se van conociendo más detalles.
    • Incremento (valor aportado): son todas aquellas tareas que hemos completado durante el sprint actual más todas las entregadas en sprints anteriores. Todo lo que está dentro del Incremento debe cumplir una serie de condiciones para darla por terminada o “done” (Definition of Done), que deben ser consensuadas por los miembros del Equipo Scrum.

    Si deseas más información sobre Scrum, puedes consultar la Guía Scrum Oficial.

    ¿Qué te ha parecido esta entrada? ¿Te gustaría profundizar de Scrum y otras metodologías ágiles? Indícanoslo en los comentarios de la entrada 🙂