Scrum es el marco de trabajo Ágil más conocido y difundido para el desarrollo de software. Te presentamos el resumen definitivo de Scrum, con todos sus roles, actividades y artefactos, en un único lugar para que sirva de referencia rápida.
Principios
Valores del Manifiesto Ágil
Scrum es el marco de trabajo Ágil más conocido. Es la fuente de muchos de los valores y principios detrás del Manifiesto Ágil, el cuál forma un ámbito común para todos estos enfoques. Pueden leer el Manifiesto Ágil para tener más información.
Los valores del Manifiesto Ágil aplican directo a Scrum:
- Los individuos y sus interacciones por sobre los procesos y las herramientas. Scrum, como estos marcos y métodos Ágiles, se basa en la confianza en los equipos, los individuos en los equipos, y la forma en la cual interactúan. Los equipos descubren lo que tiene que hacerse, los equipos descubren cómo hacerlo, y los equipos lo hacen. Los equipos identifican qué cosas se interponen en su camino, y asumen la responsabilidad de resolver todas las dificultades que estén dentro de su alcance. Los equipos trabajan con otras partes de la organización para resolver los temas que están fuera de su control. Esto es crítico. Si intentan aplicar Scrum pero le quitan el foco a la responsabilidad del equipo generalmente va a generar problemas.
- Software que funciona por sobre la documentación exhaustiva. Scrum requiere que el principal resultado de cada Sprint sea el incremento terminado del producto. Obviamente que habrá tareas de análisis, de diseño, de testing, y todo esto se documentará. Pero lo que guía el éxito del proyecto es el software que funciona. Esto es crítico. Los equipos de Scrum tienen que producir un incremento del producto en cada Sprint.
- La colaboración con el cliente por sobre la negociación contractual. El Dueño del Producto es el punto principal de contacto entre el Equipo de Scrum y los eventuales usuarios finales del producto, y con las partes de la organización que necesitan el producto. El Dueño del Producto es un miembro del equipo que trabaja colaborativamente con el equipo para determinar lo que necesita hacerse. En esta colaboración, el Dueño del Producto selecciona las siguientes cosas más valiosas a realizar, y se asegura que el producto sea lo más valioso posible hasta ese punto en el tiempo. Esto es crítico. El Dueño del Producto necesita construir una colaboración rica con sus equipos.
- Adaptarse al cambio por sobre seguir un plan. Todo lo relativo a Scrum está diseñado para asegurarse que todos tengan la información que necesitan para tomar buenas decisiones sobre el proyecto. El avance del proyecto se representa por un incremento del producto real y funcionando. El backlog de las cosas a realizar está disponible para que todos lo vean. El avance, tanto del sprint como del proyecto en su totalidad, está visible de forma clara. Los problemas y los riesgos se discuten abiertamente y se los trata de forma inmediata. Esto es crítico. Scrum funciona bien en aquellos equipos que abiertamente "inspeccionan" lo que ocurre y "adaptan" sus acciones a la realidad. Y funciona mal para los equipos que no logran esto.
Valores de Scrum
Todo el trabajo que se realiza en Scrum necesita una base firme de valores que sirvan como fundación para los procesos y principios del equipo. Usando el trabajo en equipo y la mejora continua, Scrum crea estos valores y los utiliza. Los valores son Foco, Coraje, Transparencia, Compromiso y Respeto.
- Foco. Como nos enfocamos en solo unas pocas cosas a la vez, trabajamos bien juntos y producimos un trabajo excelente. Entregamos elementos valiosos antes.
- Coraje. Como no estamos solos, nos sentimos apoyados y tenemos más recursos a nuestra disposición. Esto nos brinda coraje para superar grandes desafíos.
- Transparencia. Mientras trabajamos juntos, nos contamos cómo nos está yendo, y qué cosas se nos interponen en el camino. Aprendemos que es bueno expresar las preocupaciones, para que puedan resolverse.
- Compromiso. Como tenemos control sobre nuestro propio destino, nos comprometemos más a tener éxito.
- Respeto. Mientras trabajamos juntos, compartimos éxitos y fracasos, nos respetamos mutuamente, y nos ayudamos a ser merecedores del respeto.
Si una organización deja que Scrum haga su trabajo, va a descubrir los beneficios de Scrum y comenzará a comprender por qué estos valores son necesarios y usados por Scrum.
El marco de trabajo de Scrum
Scrum es un marco de trabajo para construir productos. Scrum comienza cuando algún interesado necesita un producto.
Scrum es un proceso de equipo. El Equipo de Scrum incluye 3 roles: El Dueño del Producto, el ScrumMaster, y los miembros del Equipo de Desarrollo. El Dueño del Producto tiene la responsabilidad de decidir qué trabajo necesita hacerse. El ScrumMaster actúa como un líder servicial, ayudando al equipo y a la organización a usar lo mejor posible a Scrum. El Equipo de Desarrollo construye el producto incrementalmente, en una serie de periodos de tiempo pequeños llamados Sprints. Un Sprint es un periodo de tiempo de duración fija, de 1 a 4 semanas, con preferencia por los intervalos más cortos. En cada Sprint, el Equipo construye y entrega un Incremento del Producto. Cada incremento es un subconjunto del producto, reconocible y visualmente mejorado, que cumple con el criterio de aceptación y está construido con un nivel de calidad llamada Definición de Terminado.
Scrum incluye 3 artefactos esenciales: el Backlog del Producto, el Backlog del Sprint, y el Incremento del Producto. El Backlog del Producto es una lista ordenada de ideas para el producto, ordenada según cómo se espera sean construidas. El Backlog del Sprint es un plan detallado para el desarrollo del próximo Sprint. El Incremento del Producto es el resultado requerido de cada Sprint. Es una versión integrada del producto, mantenida con una calidad lo suficientemente alta como para ponerse en producción si el Dueño del Producto lo deseara. Además de estos artefactos, Scrum quiere transparencia dentro del equipo y con los interesados. Por lo tanto, el Equipo de Scrum genera muestras visibles de su planificación y progreso.
Scrum incluye 5 Actividades o Reuniones: la Definición del Backlog del Producto, la Planificación del Sprint, el Scrum Diario, la Demo del Sprint, y la Retrospectiva.
A continuación describiremos los roles, artefactos y actividades.
Roles de Scrum
Rol: Dueño del Producto
El Dueño del Producto es un único individuo responsable por lograr el mayor valor posible del producto para una fecha deseada. Esto lo logra gestionando el flujo del trabajo del equipo, seleccionando y refinando los elementos del Backlog del Producto. El Dueño del Producto mantiene el Backlog del Producto y se asegura que todos conozcan lo que está ahí y las prioridades. El Dueño del Producto puede recibir ayuda de otras personas, pero debe ser una sola persona.
Obviamente que el Dueño del Producto no es el único responsable de todo. El equipo completo de Scrum es responsable por ser lo más productivo posible, por mejorar sus prácticas, por realizar las preguntas adecuadas, por ayudar el Dueño del Producto, etc. El Equipo de Desarrollo es responsable en determinar cuánto trabajo van a tomar para un Sprint, y en producir un Incremento del Producto usable en cada Sprint.
Igualmente, el Dueño del Producto, es Scrum, se encuentra en una posición única. El Dueño del Producto es quien suele estar más cerca del "costado de negocio" del proyecto. El Dueño del Producto generalmente es quien fue encargado por la organización para "entregar el producto", y usualmente es quien debe satisfacer lo mejor posible a las necesidades de todos los interesados. El Dueño del Producto logra esto gestionando el Backlog del Producto, y asegurándose que este backlog, y el progreso, sean visibles.
El Dueño del Producto, como elige en qué va a trabajar el Equipo de Desarrollo a continuación, es quien toma las decisiones de alcance vs. fechas para lograr el mejor producto posible.
Rol: Miembro del Equipo de Desarrollo
El Equipo de Desarrollo está compuesto de profesionales que realizan el trabajo de entregar Incrementos del Producto. Se auto-organizan para lograr este trabajo. Se espera que los miembros del Equipo de Desarrollo estén disponibles durante todo el proyecto a tiempo completo.
Scrum requiere que el Equipo de Desarrollo sea multi-disciplinario para que, entre ellos, posean todas las habilidades necesarias para realizar la entrega incremental del producto.
Los miembros del Equipo de Desarrollo son responsables en auto-organizarse para lograr el objetivo del Sprint, y producir un nuevo Incremento del Producto de acuerdo a la Planificación del Sprint.
El Dueño del Producto realiza una lista ordenada de lo que necesita hacerse. Los miembros del Equipo de Desarrollo estiman cuánto podrán completar en un Sprint, y luego deciden cómo van a lograrlo.
Rol: ScrumMaster
El ScrumMaster es un "líder servicial", que ayuda la resto del Equipo de Scrum a seguir el proceso. El ScrumMaster necesita tener una buena comprensión del marco de Scrum, y debe tener la habilidad de entrenar a otras personas en los detalles de Scrum.
El ScrumMaster trabaja junto al Dueño del Producto para ayudarlo a comprender cómo crear y mantener el Backlog del Producto. Trabaja con el Equipo de Desarrollo para encontrar e implementar prácticas técnicas que le permitan terminar las cosas al final de cada Sprint. Trabaja con todo el Equipo de Scrum para evolucionar la Definición de Terminado.
Otra responsabilidad del ScrumMaster es verificar que se vayan eliminando los impedimentos del equipo. Estos impedimentos pueden ser externos al equipo, como la falta de apoyo de otro equipo, o internos, como ser que el Dueño del Producto no sepa como preparar adecuadamente un Backlog de Producto.
El ScrumMaster fomenta la auto-gestión. Los problemas deben ser resueltos por el equipo en la medida de lo posible.
El ScrumMaster actúa como un coach del Equipo de Scrum, ayudándolo a ejecutar el proceso de Scrum. Los ayuda a trabajar juntos y a aprender el marco de Scrum, y los protege de distracciones internas y externas. Puede facilitar reuniones, y ayuda a mantener el rumbo del Equipo de Scrum, a que sea productivo y adquiera habilidades.
El ScrumMaster es responsable por garantizar que se comprenda y aplique correctamente Scrum, dentro del equipo y fuera del mismo. Ayuda a que las personas fuera del equipo comprendan el proceso, y entiendan qué interacciones con el equipo serán útiles y cuáles no. El ScrumMaster ayuda a que todos puedan mejorar, haciendo que el Equipo de Scrum sea más productivo y valioso.
Artefacto: Backlog del Producto
El Backlog del producto es un artefacto esencial en Scrum. El Backlog del Producto es una lista ordenada de ideas para el producto, en el orden que esperamos deban terminarse. Es un lugar único en donde fluyen todos los requerimientos. Esto significa que todo el trabajo que hace el Equipo de Desarrollo proviene del Backlog del Producto. Cada idea, cada característica, cada mejora, cada bug, cada requerimiento de documentación - todo el trabajo que sea hace - está derivado de algún elemento del Backlog del Producto. Cada elemento del Backlog del Producto incluye una descripción y una estimación.
El Backlog del Producto puede empezar como una lista grande o corta. Puede ser poco o muy detallado. Usualmente comienza siendo poco detallado y corto, y se va volviendo más grande y concreto con el tiempo. Los elementos del Backlog del Producto elegidos para la implementación pronto serán "refinados": clarificados, mejor definidos, separados en partes más pequeñas, todo esto como parte de las actividades del Refinamiento del Backlog del Producto.
El Dueño del Producto es el responsable por mantener el Backlog del Producto, aunque el Dueño del Producto puede (y debería) buscar ayuda para crearlo y mantenerlo actualizado. Los elementos del Backlog del Producto pueden originarse del Dueño del Producto, de los miembros del equipo, o de otros interesados.
Actividad: Refinamiento del Backlog del Producto
Como los elementos del Backlog del Producto suelen ser grandes y generales, y como las ideas van y vienen y las prioridades cambian, el Refinamiento del Backlog del Producto es una actividad que ocurre durante todo el proyecto de Scrum. Esta actividad incluye (pero no está limitada a):
- mantener ordenado el Backlog del Producto
- eliminar ideas que ya no son importantes
- agregar o promover elementos que surgen o se vuelven importantes
- dividir elementos en elementos más pequeños
- unir elementos en elementos más grandes
- estimar elementos
Un beneficio clave de la actividad de Refinamiento del Backlog del Producto es prepararse para los próximos Sprint. Para lograr esto, la actividad de refinamiento le brinda especial atención a preparar los elementos que están próximos a implementarse. Hay varias cosas a considerar, incluyendo:
- Cada elemento que entra en un Sprint debería representar un incremento en el "valor de negocio".
- El Equipo de Desarrollo necesita poder construir cada elemento en un único Sprint.
- Todos necesitan tener en claro lo que se quiere.
Dependiendo en la naturaleza del producto, se podrían necesitar otras habilidades. En cualquier caso, el Refinamiento del Backlog del Producto es una actividad para todos los miembros del equipo, y no sólo para el Dueño del Producto.
Actividad: Planificación del Sprint
Cada Sprint comienza con una reunión acotada en tiempo llamada Planificación del Sprint. En esta reunión el Equipo de Scrum colabora para seleccionar y comprender el trabajo a realizar en el Sprint que comienza.
El equipo completo está presente en la reunión de Planificación del Sprint. Se trabaja con el Backlog del Producto ordenado. El Dueño del Producto y los Miembros del Equipo de Desarrollo discuten cada elemento y llegan a un entendimiento sobre qué se necesita para completar cada elemento, de manera de ser consistentes con la Definición de Terminado. Todas las reuniones de Scrum son acotadas en tiempo. La duración recomendada para la reunión de Planificación del Sprint es de menos de 2 horas por cada semana que dure el Sprint. Como esta reunión está acotada en tiempo, el éxito de la reunión de Planificación del Sprint depende en gran medida de la calidad del Backlog del Producto. Es por esto que resulta muy importante la actividad de Refinamiento del Backlog del Producto.
En Scrum, la reunión de Planificación del Sprint tiene 2 partes:
- Determinar qué trabajo se completará en el Sprint.
- Determinar cómo se realizará este trabajo.
Parte 1: ¿qué trabajo se realizará?
En la primer parte de la reunión, el Dueño del Producto le presenta al Equipo de Desarrollo los elementos ordenados del Backlog del Producto. Para decidir cuántos elementos se realizarán, el Equipo de Desarrollo considera el estado actual del Incremento del Producto, el rendimiento anterior del equipo, la capacidad actual del equipo, y el Backlog de Producto ordenado. El Equipo de Desarrollo es el único que decide cuánto trabajo tomarán. Ni el Dueño del Producto ni ninguna otra agencia pueden empujarle más trabajo al Equipo de Desarrollo.
A menudo, pero no siempre, el Sprint tiene un objetivo, que se llama Objetivo del Sprint. Esta es una práctica recomendable que ayuda a enfocarse en la esencia de lo que necesita hacerse, y quita foco de los detalles que pueden no ser tan importantes.
Parte 2: ¿cómo se realizará el trabajo?
En la segunda parte de la reunión, el Equipo de Desarrollo colabora para decidir cómo producir el próximo Incremento del Producto de acuerdo con la Definición de Terminado actual. Realizan el diseño y la planificación suficientes para estar seguros de poder terminar el trabajo durante el Sprint. El trabajo a realizar durante los primeros días se divide en unidades más pequeñas de 1 día o menos. El trabajo a realizar más trade puede dejarse en unidades más grandes para separar después.
Así como el Dueño del Producto es responsable por decidir qué se va a hacer, el Equipo de Desarrollo es el responsable en determinar cómo realizar el trabajo.
El Dueño del Producto puede permanecer durante esta parte de la reunión, para responder preguntas y dudas. En cualquier caso, siempre necesita estar disponible para el Equipo de Desarrollo.
Resultado de la Planificación del Sprint
La Planificación del Sprint concluye cuando el Equipo de Scrum llega a comprender la cantidad y complejidad de lo que se logrará durante el Sprint, y lo que espera poder terminar (dentro de algún margen racional de circunstancias). El Equipo de Desarrollo estima la cantidad de trabajo que podrá completar y se compromete a completarlo.
Para resumir, durante la reunión de Planificación del Sprint, el Equipo de Desarrollo:
- considera y discute los elementos del Backlog del Producto con el Dueño del Producto
- se asegura de comprender los elementos del Backlog del Producto
- selecciona una cantidad de elementos que estiman poder terminar,
- y crean un plan lo suficientemente detallado para asegurarse que puedan completar estos elementos.
La lista resultante de estos elementos a realizar es el "Backlog del Sprint".
Artefacto: Backlog del Sprint
El Backlog del Sprint es la lista de los elementos del Backlog del Producto, elegidos para ser desarrollador en el Sprint actual, junto con el plan del equipo para lograr el trabajo. Refleja la estimación del equipo del trabajo que puede completarse.
Con el Backlog del Sprint determinado, el Sprint comienza, y el Equipo de Desarrollo crea el nuevo Incremento del Producto definido por el Backlog del Sprint.
Desarrollo
Durante el Sprint, el Equipo de Desarrollo se auto-gestiona para producir un Incremento del Producto de acuerdo al Backlog del Sprint, el cual fue determinado durante la Planificación del Sprint. La auto-gestión significa que el equipo es responsable de producir el Incremento del Producto conforme a los estándares de la organización, conforme a la Definición de Terminado, y que el Equipo de Desarrollo determina cómo lograr esto.
Artefacto: Incremento del Producto
El artefacto más importante de Scrum es el Incremento del Producto. Cada Sprint produce un Incremento del Producto. El Incremento del Producto debe tener la suficiente calidad para ser entregado a los usuarios finales. El Incremento del Producto tiene que cumplir con la Definición de Terminado del Equipo de Scrum, y cada componente debe ser aceptado por el Dueño del Producto.
Indicadores adicionales visibles de avance
Scrum requiere que transparencia dentro y fuera del equipo. Aunque el Incremento del Producto es la forma más importante de crear transparencia, el Equipo de Scrum creará cualquier otro artefacto que necesita para asegurarse que se comprenda el estado del proyecto. Los gráficos de burndown y los tableros de tareas son artefactos adicionales muy comunes.
Acuerdo: Definición de Terminado
Cuando se entrega el Incremento del Producto, necesita estar "terminado" según lo acordado que signifique "terminado". Esta definición es diferente para cada Equipo de Scrum, y a medida que madura el equipo, la Definición de Terminado se expandirá para ser más precisa.
La Definición de Terminado siempre debe incluir la noción de que el Incremento del Producto tiene la calidad necesaria para que sea productivo: el Dueño del Producto debería poder elegirlo para liberarlo inmediatamente. El Incremento del Producto incluye la funcionalidad de todos los Incrementos del Producto anteriores, y está completamente testeado de manera que todos los elementos del Backlog del Producto continúan funcionando juntos.
Actividad: Scrum Diario
El Equipo de Desarrollo es auto-gestionado. El Equipo de Desarrollo utiliza la reunión de Scrum Diario para asegurarse que están en el camino indicado para lograr el Objetivo del Sprint. La reunión ocurre a la misma hora y en el mismo lugar, todos los días. Cada miembro del Equipo de Desarrollo responde 3 preguntas:
- ¿Qué logré desde nuestro último Scrum Diario?
- ¿Qué espero lograr entre hoy y el próximo Scrum Diario?
- ¿Qué está impidiendo mi avance?
Pueden ocurrir algunas preguntas breves para clarificar, pero no hay discusiones de ningún tema durante el Scrum Diario. Sin embargo, muchos equipos se juntan justo después del Scrum Diario para trabajar en cualquier tema que hubiera surgido.
El Scrum Diario no es un reporte para la gerencia, ni para el Dueño del Producto, ni para el ScrumMaster. Es una reunión de comunicación dentro del Equipo de Desarrollo, para asegurar que están todos sincronizados. Sólo los miembros del Equipo de Scrum, incluyendo el ScrumMaster y el Dueño del Producto, pueden hablar durante esta reunión. Otras partes interesadas pueden asistir a escuchar. Basados en lo que salga durante la reunión, el Equipo de Desarrollo reorganiza el trabajo que necesita completarse para alcanzar el Objetivo del Sprint.
El Scrum Diario es clave para Scrum, lleva a la transparencia, genera confianza, y brinda mejor rendimiento. Logra que los problemas se descubran rápido, y promueve la auto-gestión del equipo y la confianza. Todas las reuniones de Scrum están acotadas en tiempo. La duración recomendada para el Scrum Diario es de no más de 15 minutos.
Actividad: Demo del Sprint
Al final del Sprint, el Equipo de Scrum y los interesados revisan lo producido en el Sprint. Todas las reuniones de Scrum son acotadas en tiempo. La duración recomendada para la Demo Sprint es de 1 hora por semana de duración del Sprint.
El punto central de la discusión es el Incremento de Producto terminado durante el Sprint. Dado que los interesados son aquellos que están "involucrados" en los resultados, generalmente resulta útil que participen de esta reunión. Es una reunión informal, para compartir en dónde estamos y colaborar sobre cómo podemos avanzar. Todos pueden participar de la Demo del Sprint. Naturalmente, el Dueño del Producto es quien toma la decisión final sobre el futuro, y actualiza el Backlog del Producto de manera apropiada.
Los equipos encuentran su propia manera de hacer una Demo del Sprint. Es común hacer una demostración del Incremento del Producto. El grupo a menudo discute lo que observaron durante el Sprint, y las ideas del producto que aparecen. Discuten el Backlog del Producto y hablan sobre las fechas posibles para terminar, y lo que puede hacerse sobre esas fechas.
La Demo del Sprint les brinda a todos los presentes una forma de conocer el Incremento del Producto vigente. También, es común actualizar el Backlog del Producto como parte de la Demo del Sprint.
Actividad: Retrospectiva del Sprint
Al final de cada Sprint, el Equipo de Scrum se junta para la Retrospectiva. El propósito es revisar cómo fueron las cosas con respecto al proceso, a las relaciones entre las personas, y a las herramientas. El equipo identifica lo que salió bien y lo que no salió tan bien, e identifica mejoras posibles. Arman un plan para mejorar las cosas en el futuro. Todas las reuniones de Scrum están acotadas en tiempo. La duración recomendada para la Retrospectiva del Sprint es de 1 hora por semana de duración del Sprint.
El Equipo de Scrum mejora su propio proceso, siempre dentro del marco de trabajo de Scrum.
Y volver a repetir
El ciclo de Scrum se repite a partir de aquí, cada Sprint.
Para resumir, los miembros del Equipo de Scrum (el Dueño del Producto, el Equipo de Desarrollo, y el ScrumMaster) colaboran para crear una serie de Incrementos del Producto, durante intervalos cortos de duración fija, llamados Sprints. Cada incremento cumple con el criterio de aceptación del Dueño del Producto y con la Definición de Terminado compartida por el equipo. Trabajan a partir de un Backlog del Producto. En cada Sprint, comienzan con la Planificación del Sprint para generar el Backlog del Sprint, un plan para el Sprint. Se auto-gestionan para realizar el Desarrollo, usando la reunión de Scrum Diario para producir el mejor Incremento de Producto posible. Realizan un Refinamiento del Backlog del Producto para prepararse para la próxima reunión de Planificación del Sprint. Terminan el Sprint con una Demo del Sprint y con una Retrospectiva, revisando el producto y sus procesos.
Basado en la Scrum Alliance Core Scrum v2012.12.13