Este es un ejercicio del curso de Scrum de |
- Obtención de un proceso de negocio (Value Stream Mapping)
- Obtención de una pila de producto (User Story Mapping)
- Planificación de entregas (Planificación de release)
- Planificación de sprint
- Reunión diaria (y ejecución de tareas a través de un tablero Kanban)
- Gráfico de avance de sprint (burndown) - obtención de la velocidad
Value Stream Mapping de la compra on-line |
El ejercicio se centra en el flujo de valor que cubre el flujo de compra desde la perspectiva del cliente, ¿qué pasos ha de dar un cliente cuando llega a nuestra web y quiere comprar un libro? Hay otros flujos de valor, como la logística de la entrega o la gestión de devoluciones, pero la simulación requiere un solo flujo y el más conocido por todos es el flujo de compra.
User Story Mapping
En este punto le explico a los alumnos que son un equipo de negocio y que han de definir de forma colaborativa cuales son los pasos de su flujo de valor. Comúnmente estos pasos son algo como:
- Encontrar libro
- Seleccionar libro
- Entrar dirección de entrega
- Pagar
- Confirmación de compra
- Encontrar libro:
- Búsqueda por título
- Búsqueda por autor
- Seleccionar libro:
- Añadir al carrito
- Modificar carrito
- Quitar del carrito
- Pagar:
- VISA
- PayPal
- Contrareembolso
Obtención de las funcionalidades que cubren el flujo de valor a través de un User Story Mapping |
Planificación de release
Amazon se fundó en 1994 y vendió su primer libro en 1995 |
Les explico a los alumnos que la R1 es el MPV, el Mínimo Producto Viable, para salir al mercado y validar que existe una necesidad de mercado, y que decidan qué funcionalidades van a trasladar del tablero User Story Mapping a esta release, de forma se lance a producción lo mínimo de lo mínimo de lo mínimo.
Les muestro una imagen de como era la página web de Amazon en sus primeras versiones a mediados de 1990, y les hablo del consejo de Reid Hoffman, cofundador de LinkedIn que dice:
"Si no te avergüenzas de tu primer producto, es que lo lanzaste muy tarde"
En la planificación de release los alumnos trasladan las funcionalidades a 3 releases en función del valor de cada una |
En este punto finaliza la primera parte de la simulación, el equipo se ha sentido en la piel de negocio, ha experimentado la priorización por valor y obtenido una pila de producto inicial.
Planificación de sprint
Pila de producto con tareas preparadas |
Es necesario una primera fase preparatoria en la que ocurren las siguientes actividades:
En primer lugar consideramos que el orden de izquierda a derecha y de arriba a abajo es el orden de prioridad según valor de negocio.
Hay que poner un ID en cada funcionalidad y esto lo hacemos enumerándolas del 1 en adelante. Otra propiedad de un elemento de la pila de producto es que ha de estar estimado, por tanto han de buscar el elemento más pequeño en esfuerzo, asignarle el 1 y estimar el resto de forma relativa. (Les invito a no ser minuciosos y hacer estimaciones muy rápidas, realmente no importan las estimaciones, lo que importa es que haya variedad de valores).
Para experimentar autoorganización les indico a los alumnos que deben de dividir todas las funcionalidades en tres tareas (A-Análisis, D-Desarrollo y T-Testing) y que desglosen el valor de la estimación en las tareas de forma que sumen. Esta actividad la han realizar todos ellos en paralelo de manera que en poco tiempo se obtengan todas la tareas. Es interesante observar las diferentes formas que tienen los equipos de organizarse, en algunos casos cada miembro desglosa funcionalidades, en otros casos algunos miembros calculan y otros preparan post-its... cada equipo es único.
Para acabar el equipo ha de elegir un rol para cada miembro:
- SM - Scrum Master
- PO - Product Owner (Propietario del Producto)
- A - Analista (equipo de desarrollo)
- D - Desarrollador (equipo de desarrollo)
- T - Tester (equipo de desarrollo)
Un dado determina el trabajo hecho en un día |
La unidad en que se estima el tamaño de las funcionalidades es el punto de dado. Les explico a los alumnos que para introducir variabilidad en la simulación el que va a determinar el trabajo hecho por un miembro de equipo en un día será el dado. Una tirada aplicada a la especialidad del que ha tirado el dado, puntúa doble, sino simplemente puntúa lo que marca. A veces es mejor ayudar a un compañero para así terminar y entregar un sprint con más valor.
- El Propietario del Producto especifica la prioridad de las distintas funcionalidades y propone cuáles podrían incluirse en el siguiente sprint
- El equipo hace el corte de la pila de producto y determina qué puede llevar a la pila de sprint en un sprint de 5 días
- El Propietario del Producto y el equipo acuerdan qué funcionalidades se van a entregar en el siguiente sprint y estas y sus tareas se trasladan a la columna "pendiente" del tablero Kanban
El equipo ejecuta las tareas, cada miembro del equipo lanza el dado para determinar el esfuerzo que realizará en ese turno:
- Más de una persona puede trabajar sobre la misma tarea
- No hay dependencias entre tareas, se puede testear antes de desarrollar
- Una vez que una persona finaliza su tarea (por ejemplo, análisis) puede colaborar en otra
- Recordar que las personas que trabajan en su especialidad trabajan el doble de rápido (se multiplica por 2 el resultado de lanzar el dado)
- Si un analista lanza un 1, entonces no trabaja porque hay una cuestión sobre una funcionalidad. El equipo debe añadir 2 puntos a la funcionalidad de análisis
- Si un desarrollador lanza un 1, entonces no trabaja porque hay una cuestión sobre una tarea. El equipo debe añadir 2 puntos a la funcionalidad de análisis
- Si un tester lanza un 1, no trabaja porque se ha encontrado un error en las pruebas. El equipo debe añadir 2 puntos a la funcionalidad de desarrollo para corregir el error
Tablero Kanban con tareas avanzando |
Tablero de gráficos burndown |
Empezado el tercer sprint sorprendo al equipo a medio sprint y me presento con el "Presidente de la compañía" que intenta colarles de forma "dura" una funcionalidad: el informe de ventas. La idea es intentar romper el sprint y el compromiso del equipo, cosa que de seguro pasará en su realidad, y así impregnar al equipo de Scrum con que no deben de permitir que rompan su compromiso. Guío primero al equipo, luego al Scrum Master y finalmente al Propietario del Producto en como argumentar al presidente que es una mala idea:
El equipo simplemente debe de tomar nota de la nueva funcionalidad, mencionar que se la trasladarán al Propietario del Producto quién es el quién conoce el negocio y es responsable del producto. No deben de aceptar la funcionalidad, incluirla en el sprint y comprometerse, su foco debe de estar en seguir trabajando en el sprint actual tal como se planificó.
El Scrum Master debe de argumentar al presidente desde el marco de Scrum, explicar que Scrum funciona por sprints de 5 días en los que el trabajo está en consonancia con la capacidad del equipo, y por tanto incluir algo no planificado pone en riesgo la entrega para el siguiente viernes. ¿Seguro que quiere eso Sr.Presidente? ¿El informe no puede esperar al lunes que viene cuando empiece el siguiente sprint?
Finalmente vienen los argumentos del Propietario del Producto, en la realidad este tiene muchos ya que conoce el negocio. En la simulación hago para que con ese sprint se finalice una release, así que el Propietario del Producto tiene un argumento muy sólido ya que con ese sprint salimos a producción y cualquier interferencia puede poner en riesgo el lanzamiento, ¿Quiere eso Sr.Presidente?
Aspecto de los tableros y post-its de la simulación |
Historias técnicas en la pila |
¿Cómo podemos aumentar la velocidad de un equipo de una forma tan espectacular? Pues reduciendo el coste de transacción, en otras palabras, implementado integración continua y pruebas automatizadas.
Equipo que pidió un segundo dado en plena simulación :-D |
Quiero dar mis agradecimientos a todos los asistentes a mis clases que han hecho la simulación conmigo, ellos han aportado ideas, sus tableros para las fotos y sus ganas de aprender :-D
No hay comentarios:
Publicar un comentario