jueves, 17 de junio de 2010

Conceptos principales de Scrum

Basándome en lo explicado en el libro de Henrik Kniberg “Scrum y XP desde las trincheras”, en este post lo que pretendo es recopilar y explicar brevemente los conceptos principales en los que se basa Scrum.

Vamos a separar por un lado las personas implicadas en un proyecto que sigue esta metodología y, por otro lado, los productos y tareas que hay que completar durante el proceso que Scrum propone.

En primer lugar las personas:
  • El cliente: Es la persona que solicita un proyecto de cara a satisfacer una necesidad propia o de su negocio.

  • El propietario del producto (Product Owner): Es la persona que hace de intermediario entre el cliente (no técnico) y el equipo y tiene capacidad de decisión sobre los requisitos a implementar.

  • El equipo: Es el personal técnico que se encargará de la realización del proyecto.

  • El Scrum Master: Es la persona conocedora del proceso Scrum que se encarga de orientar al equipo y al propietario del producto para que sigan el proceso determinado por Scrum. Si las personas involucradas en el proyecto ya conocen Scrum su labor puede no ser necesaria.

Y, en segundo lugar, los productos y tareas necesarias:
  • La pila de producto: Es una lista priorizada de requisitos o “historias” del cliente escritos usando su propia terminología, de forma no técnica.

  • Reunión de planificación del sprint: En esta reunión el equipo y el propietario del producto negocian sobre el alcance de cada sprint en base a las estimaciones y a la importancia de cada una de las historias de la pila del producto.

  • La pila de sprint: El la lista de historias sacadas de la pila del producto que conforman el alcance del sprint actual.

  • Reunión diaria de scrum: En esta reunión el equipo discute los problemas que se va encontrando a medida que el producto avanza y revisa sus estimaciones para poder llevar el seguimiento del avance del proyecto.

  • Demostración: Como colofón a cada sprint se debe presentar una demostración de aquello que se ha implementado, de cara a obtener retroalimentación sobre el proyecto por parte de los interesados que permita encaminar futuros sprints.

  • Retrospectiva: Al final de cada sprint se lleva a cabo una reunión que permite revisar qué se ha hecho bien y mal durante el sprint con el objetivo de mejorar el proceso.

Para terminar, resumiré de forma breve el proceso que define Scrum:
  • En primer lugar, el propietario del producto construye la pila del producto con las historias de usuario o requisitos del proyecto. La pila del producto no es algo invariable, será modificada a medida que avanza el proyecto y se clarifican los requisitos.

  • Antes de cada sprint, iteración de aproximadamente 3 o 4 semanas, el equipo y el propietario del producto se reunen para decidir que historias de la pila del producto se van a implementar en él. Estas historias a implementar forman la pila del sprint.

  • Durante el sprint, el equipo tendrá una reunión diaria de sprint, en la que se actualiza la evolución del proyecto y se tratan de resolver posibles problemas.

  • Al final del sprint, se lleva a cabo la demostración, en la que se exponen las nuevas funcionalidades implementadas durante el sprint.

  • Antes de comenzar un nuevo sprint, se lleva a cabo una retrospectiva que permite identificar posibles mejoras en la forma de trabajar.


Referencias:
Aplicando Scrum y XP
Metodologías ágiles
Qué es Scrum

7 comentarios:

  1. Un par de cosillas que me parecen importantes.

    - Durante el sprint no se cambian los objetivos del grupo, la pila del sprint es intocable.

    - Durante el sprint el equipo se centra en exclusiva a lograr los objetivos del mismo.

    Un saludo

    ResponderEliminar
    Respuestas
    1. La pila del Sprint (Sprint backlog) efectivamente es intocable, pero no lo es la Pila del producto (Producto Backlog)

      Eliminar
  2. Hola Edu,

    Al parecer la pila de sprint no es tan intocable, aunque en principio debería serlo. Pero, a medida que avanza el proyecto, el gráfico de avance del proyecto (burndown chart) permite visualizar y comparar el avance del proyecto con respecto a las estimaciones. Si revisando este gráfico se aprecia que hemos sobreestimado o infraestimado, se pueden quitar o añadir historias de usuario de la pila del sprint.

    Sin embargo, creo que es un buen principio, si es posible, que la pila del sprint no se toque y sobestimar ligeramente las tareas, para facilitar la gestión del proyecto.

    Un saludo.

    ResponderEliminar
  3. Hombre yo siempre he entendido que durante la ejecución de un sprint no se pueden cambiar los objetivos de este. En un caso extremo, se detiene el sprint y se define uno nuevo con nuevos objetivos. En todo caso la pila del sprint se quedó como estaba, no? :-)

    Pero no me hagas mucho caso por que para mi esto es ciencia ficción, todo lo que hablo lo he escuchado o leido por ahí pero nunca puesto en práctica :-)

    ResponderEliminar
  4. Yo las ideas que tengo son las que he sacado del libro de Henrik Kniberg, que lo tengo fresquito... ;-)

    Al parecer, según él, no hay problema, en caso de que se detecten problemas con el objetivo a cumplir en un sprint, en añadir o retirar historias de la pila de sprint.

    Pero también supongo que si la desviación es demasiado grande puede ser una buena opción detener el sprint y redefinir los objetivos. Tal vez todo dependa de cómo estes de lejos del objetivo final.

    Como todo, nadie puede venir a decirnos que es mejor siempre, parece que hay distintas alternativas y supongo que es la experiencia la que te dice cuál es la mejor llegado el caso.

    ¡Tendremos que buscar estar expriencia!

    ResponderEliminar
  5. Interesante la información solamente cabe hacer una diferencia entre la pila del producto y la pila del sprint, recién me inicio en Scrum por mi nuevo trabajo. Requiero de mucha información sobre este tema.

    ResponderEliminar
  6. Buenas, según mi experiencia el backlog, esté en el punto que esté, va a cambiar por pedido del cliente/usuario/PO. Está en el scrum master / PM manejar un control de cambios con elegancia y tacto para que los retrabajos sean asumidos por quien y como corresponden.

    ResponderEliminar