Mostrando las entradas con la etiqueta sprint. Mostrar todas las entradas
Mostrando las entradas con la etiqueta sprint. Mostrar todas las entradas

martes, junio 20, 2017

Sobre el Compromiso del Sprint


sábado, noviembre 02, 2013

Scrum: La Reunión de REFINAMIENTO, clave para reducir Riesgos y reducir tiempo del Sprint Planning

El refinamiento aunque no es una de las reuniones oficiales de Scrum [1], si se dice que el 10% del sprint debería dedicarse a esta actividad.

Dice la guia [1]:

"El refinamiento (refinement) de la Lista de Producto es el acto de añadir detalle, estimaciones y
orden a los elementos de la Lista de Producto. Se trata de un proceso continuo, en el cual el
Dueño de Producto y el Equipo de Desarrollo colaboran acerca de los detalles de los elementos
de la Lista de Producto. Durante el refinamiento de la Lista de Producto, se examinan y revisan 
sus elementosEl Equipo Scrum decide cómo y cuándo se hace el refinamiento. Este usualmente 
consume no más del 10% de la capacidad del Equipo de Desarrollo. Sin embargo, los elementos
de la Lista de Producto pueden actualizarse en cualquier momento por el Dueño de Producto o a
criterio suyo."

Bajo este escenario la duración de la reunión de refinamiento debería ser:


Duración máxima de la reunión en horas
Tamaño del Sprint
1 Semana
2 Semanas
3 Semanas
4 Semanas
Refinamiento
1
2
3
4

Si lo miramos bien toma un tiempo considerable del sprint (aunque he experimentado en sprints de 2 que semanas 4 horas son suficientes),  tal vez se haga en una sola sesión o en varias según el caso, pero una de las ideas claves de scrum es:

"tengamos las reuniones suficientes de manera que no sea necesario hacer más reuniones, y podamos enfocarnos en lo que nos gusta, la construcción del producto."

.

Lo cierto es que esta actividad tiene grandes beneficios tanto para el sprint que viene, como para la construcción del producto.

Esta reunión (no-oficial) de scrum tiene como objetivo, presentar los próximos ítemes de backlog al equipo que van a entrar tanto para el siguiente sprint como para los 2 o tres próximos y discutir aspectos sobre ellos. Una de las agendas que he empleado en los refinamientos es la siguiente:

  1. Lectura y estimación de las historias de usuario que posiblemente entran en el PRÓXIMO SPRINT. Se leen las historias de usuario con sus criterios de aceptación, se realiza la conversación, entendimiento y ajuste sobre las mismas.
  2. Lectura de historias de usuario (no al detalle, solo el título de las mismas) que entrarán en los próximos  2 ó 3 sprints
  3. En equipo se identifican los insumos requeridos para estas historias tanto desde el punto de vista de conocimiento como de entes externos al equipo (otras áreas, otros proveedores, etc)
  4. En equipo se identifican los riesgos que pueden hacer que esas historias no se completen y se identifican actividades a realizar para mitigarlos.
De este manera:
  • El Scrum Master y el Product Owner (y en ocasiones el Team Develper) comienzan a trabajar conjuntamente en la resolución previa de:
    • riesgos
    • insumos 
    • e impedimentos
  • El equipo conoce que viene para el próximo sprint
  • El planning es una reunión mas liviana donde se presentan los aspectos modificados o afinados de las historias de usuario y algún cambio en la priorización.
  • Todo el Equipo Scrum (Product Owner, Scrum Master, Team Developer) van observando como se va construyendo la visión del producto y se pueden alinear desviaciones.

Saludos ágiles

Jorge Abad.


Referencias

[1]Scrum Guides - https://www.scrum.org/Portals/0/Documents/Scrum%20Guides/2013/Scrum-Guide-ES.pdf#zoom=100

Tiempos máximos de las reuniones de Scrum según el tamaño del Sprint


Hola a todos

A continuación relaciono el tamaño máximo de las reuniones de Scrum, según el tamaño del sprint. Estos tiempos fueron extraídos de la guía de Scrum [1]:


Tamaño del Sprint
1 Semana
2 Semanas
3 Semanas
4 Semanas

Duración máxima de la reunión en horas
Sprint Planning
2
4
6
8
Sprint Review
1
2
3
4
Sprint Retrospective
0,75
1,5
2,25
3
Daily (15 minutos)
0,25
0,25
0,25
0,25
Refinamiento (tiempo máximo)
4
8
12
16


La idea es que estos  tiempos se respeten, logrando el TIMEBOX o tiempo asignado para el objetivo defnido.

Es importante resaltar los siguientes aspectos:

  • El Scrum Master como dueño del proceso, es responsable de que estos tiempos no se superen.
  • Los primeros 2 o 3 sprints es muy probable que no se cumplan con los TIMEBOX, pero se debe trabajar en equipo y en la retrospectiva buscando la causa y las acciones a realizar para que esto no se repita. 
  • Los únicos TIMEBOX que desde el inicio se deben respetar son:
    • Daily = 15 minutos
    • Duración del Sprint = la definida (no se sugiere estar cambiando la duración de sprints, se debe buscar trabajar a un ritmo regular y constante)


Saludos ágiles
Jorge Abad.


Referencias


[1]Scrum Guides - https://www.scrum.org/Portals/0/Documents/Scrum%20Guides/2013/Scrum-Guide-ES.pdf#zoom=100



jueves, septiembre 26, 2013

Scrum: Sobre el Sprint 0 (Sprint Cero) o Inception


En ninguna de las guías de scrum hablan sobre un Sprint 0 (cero) pero es de las recomendaciones que he recibido de quienes nos han hecho coach en scrum.

Este sprint realmente no tiene ítemes de producto, corresponde a todas las actividades preparatorias para poder comenzar a ejecutar el proyecto, dentro de este sprint se pueden realizar cualquiera  (o todas) de las actividades siguientes:


  • Definir los releases y plan del producto (se puede emplear una técnica como el user story mapping)
  • Definir la arquitectura base del producto sobre la cual se va a evolucionar.
  • Definir las pruebas a realizar
  • Definir los lineamientos gráficos del sistema (si aplica)
  • Realizar todas las instalaciones  en los diferentes ambientes (desarrollo, pruebas, pre-producción y producción)
    • IDEs
    • Servidores de aplicaciones
    • motores de bases de datos
    • Nota: Que todos los ambientes sean lo más similares entre sí posibles (sistemas operativos, versiones de productos, conectividad, etc)
  • Preparar y configurar los repositorios de control de versiones
  • Configurar los scripts para el servidor de integración continua de forma que logremos que una linea de codigo quede probado y desplegado en los respectivos ambientes
  • Escribir el 'hola mundo" que logre pasar por:
    • el repositorio del control de versiones
    • probado por las diferentes pruebas definidas
    • que en los diferentes servidores automáticamente quede:
      • código validado con reglas automáticas
      • compilado
      • probado
      • y desplegado en los diferentes ambientes
    • Nota:  Es como tender la carretera pavimentada para que las líneas de código pasen sin inconvenientes de inicio a fin.
  • Escribir las historias de usuario para el primer planning. Posiblemente mostrarlas al equipo para que realice un primer acercamiento.
  • Definir herramientas de gestión que utilizará el equipo
    • Kanban
    • Burndowns
    • hojas de cálculo
  • Definir la DoD (Defnition of Done( (Definición de Hecho/Realizado/Completado) para el proyecto
  • Definir los criterios de liberación del producto / liberación de releases
    • Aprobaciones
    • historias completadas
    • valor de negocio entregado
  • Definir como se calculará el ROI del proyecto y/o el éxito del mismo
  • Definir forma de puntuar las historias 
    • si con pivote funcional o,
    • pivote de días ideales
  • Definir estándares de codificación y documentación del código
  • Definir documentación a emplear y como se va a actualizar en el proyecto
  • Definir tamaño de los sprints

Suficientes tareas, ¿no cierto?



Unas recomendaciones:
  • Cree Historias de Usuario Técnicas asociadas a cada una de las tareas definidas, y recuerde ponerle criterios de aceptación, de manera que se verifique que puede cumplirlas
  • Realice estimaciones sobre las Historias de Usuario Técnicas, realice el "taskeo" (identifique las tareás)
  • No olvide a scrum para este sprint:
    • Defina la duración: Definir un timebox (tiempo definido fijo) para este sprint (consideraría 2 semanas suficientes, pero la casuística me impide afirmarlo categóricamente), con el objeto de no eternizarnos en la planeación y definición, cayendo en un antipatrón de la gerencia del proyectos llamado (parálisis por análisis  o en inglés Analysis Paralysis)
    • Realice el daily con todos los involucrados en este sprint
    • Si es el Scrum Master, realice la debida gestión de impedimentnos y si es team member por favor notifíquelos
    • Al final realicen review y retrospectiva, identifiquen las lecciones aprendidas y feliz comienzo del sprint 1.


Saludos ágiles y
hasta la próxima


martes, julio 16, 2013

Características de una buena historia de usuario

Nivel del post: Básico

Este es mi lista de verificación al momento de revisar una historia de usuario.

Luego de hacer la CCC (Card, Confirmation, Conversation), definitivamente el criterio más importante que uso es cumplir INVEST:

  • Independiente: No requiere de otra
  • Negociable: Se puede reemplazar por otra de diferentes prioridad
  • Valor: Que sea necesaria y de valor para el proyecto
  • Estimable: Que el equipo se sienta tranquilo y seguro estimandola.
  • Small (pequeñas): que no sean grande, funcionalidades pequeñas
  • Testeable (verificable): que se le puedan realizar pruebas.


Yo añadiría, aclararía y uso los siguientes:
  • que su tamaño no supere los 3 a 4 días de una persona enfocada desarrollándola. (Asociado al criterio de Small). Obvio hay excepciones pero al máximo trato que durante un planning no se supere este criterio.
    • Razón: He observado que historias mas grandes quedan mal estimadas por mas buena intención que tenga el equipo de desarrollo, el equipo se siente seguro con este tamaño de historia. Determine cual es el rango para su equipo.
  • que su implementación toque todas las capas o que el resultado de su implementación tenga sentido para el Product Owner o al Cliente. Me explico, en caso de hacer desarrollos asociados exclusivamente a la Base de Datos o a temas complejos por ejemplo que no logran verse reflejados facilmente por el product owner, sugiero crear historias técnicas en las cuales se le explique al Product Owner el valor asociado a las mismas en el proyecto. (Asociado al criterio de Valor).
    • Razón: Evito al máximo historias técnicas pues son de difícil justificación - aunque no imposible, pues si son necesarias se hacen -, pero la razón principal es que este tipo de historias habilita el crecimiento orgánico.
  • que tenga a lo sumo entre 3 y 7 criterios de aceptación.(Asociado a los criterios de Small, Testeable y Estimable).
    • Razón: Más de 7 criterios, se puede  dividir la historia, menos de 3 se puede agrupar con otra.
  • que se pueda dividir cuando sea muy grande (Asociado a los criterios de Small, Testeable y Estimable).
    • Razón: La gran mayoría de las historias grandes se pueden dividir, esto permite más maniobrabilidad al equipo al momento de implementación.
  • preguntar lo más que se pueda sobre la necesidad de la historia de usuario  (Asociado al criterio de Valor). 
    • Razón: Después de varios sprints y coach que me han hecho, he aprendido a preguntar para ciertas historias que percibo innecesarias (validaciones de negocio excesivas, autocompletar recargados, etc):
      •  ¿ok es de valor, pero es necesaria?
      • ¿cuántas personas la usarán?
      • ¿cuántas veces la usarán en el año?
      • ¿es realmente útil? 
      • ¿prefieres al equipo trabajando en esa "validación xxxx "-por poner un ejemplo-  que en esta otra historia de usuario que agrega más valor al negocio?
      • ¿podemos postergar esto para el final y hacer otra cosa más urgente sobre la que tenemos clara la necesidad de implementación? (principio de LEAN - aplazar las decisiones, ver más aquí)


Respecto al Sprint
  • Busco siempre trabajar con  al menos hayan 6 historias de usuario por sprint. 
    • Razón: De esta forma el equipo tiene en que trabajar, con pocas historias de usuario se estarán obstaculizando entre sí.
  • Trabajo junto con el Product Owner para que existan al menos otras 6 historias adicionales 
    • Razón: Tener backlog para posibles reemplazos y/o negociaciones.
  • Trabajo junto con el Product Owner para que se tengan definidos al menos historias de usuario al detalle para los próximos 2 Sprints (completamente elaboradas, cumpliendo INVEST) y un 3er sprint con Historias de Usuario  sin mucho detalle.
    • Razón: Tener claro hacia donde va el producto.
  • La evolución del producto esta guiada por el User Story Mapping (ver más aquí)el cual tiene los objetivos de cada Release y las historias épicas que contendrá.
    • Razón: Tener claro hacia donde va el producto y saber cuan cerca estamos de hacer una liberación o release.


Si estás interesado en ver  recomendaciones para el Product Backlog ver - http://www.pmoinformatica.com/2013/07/11-reglas-product-backlog-scrum.html



-------------------------------------
JORGE HERNÁN ABAD LONDOÑO
MSc. Ingeniería Informática - Universidad Eafit

ScrumAlliance
Certified Scrum Master
member 000260715