SCRUM
Historia del cerdo y la gallina (pig & chicken). Compromiso vs. involucramiento.
Se asume un equipo con un nivel elevado de seniority. El equipo tiene los conocimientos para tomar decisiones, priorizar tareas y avisar cuando se retrasa.
Un miembro del equipo, entre los más expertos, es seleccionado como Scrum master. Su rol es el de evitar (o corregir) que un miembro del equipo se bloquee en sus tareas, o sugerir correcciones ante el desvío del proceso.
Los equipos de trabajo son en general reducidos.
El trabajo total se divide en tareas con una breve descripción (product backlog).
El backlog es un listado priorizado de tareas. Las prioridades se acuerdan entre el equipo y el cliente.
El proyecto se divide en iteraciones de duración fija (sprint), generalmente de 3 o 4 semanas.
Cada iteración comienza con una sesión de planificación (iteration planning) en el que se definen, coordinadamente con el cliente, qué ítems del product backlog se desarrollarán en esa iteración, creando el sprint backlog.
Al final de cada iteración se presenta y entrega el avance al cliente (iteration review), obteniendo feedback para nuevas tareas o modificaciones.
Las tareas están ponderadas, y la estimación se iteración tras iteración. Se calcula un velocity que mide la cantidad de tareas en x tiempo que el equipo realiza.
Diariamente el equipo se junta para definir qué se va a hacer en el día. Cada miembro toma uno o más ítems del sprint backlog para desarrollar (se sugiere que los ítems del backlog sean de entre medio y 1 día). En la reunión, que se realiza de pie (a fin de evitar extenderse), cada miembro sucesivamente responde las 3 preguntas:
¿Qué hice el día de ayer?
¿Qué voy a hacer hoy?
¿Qué impedimentos tengo por lo cual no pueda avanzar en mis tareas?
Cada miembro del equipo es responsable de decidir qué tareas va a hacer ese día, y por lo tanto de avisar si no llega a hacerlo, ya que esto afecta a todo el equipo.
Al ser iteraciones tan cortas, la funcionalidad a entregar se debe dividir en funcionalidades que puedan ser desarrolladas en una iteración. Esto permite medir el avance.
Existe un reporte muy utilizado llamado backlog burndown chart (hay tanto de sprint como de product) que mide el avance relativo a las tareas remanentes. Es un gráfico de barras que muestra “lo que queda por hacer” (ponderado según la estimación más reciente) en un período de tiempo, mostrando “cuánto bajó lo que queda por hacer”. Mientras mejor hechas estén las estimaciones y menos desvíos haya, este gráfico será una diagonal descendiente.
Al ser orientado al valor agregado, sólo se realizan tareas que le representen un beneficio al cliente (product owner). Es muy importante revisar las prioridades y respetarlas.