¿Qué es Scrum?
El mundo es un entorno cambiante, los mercados, las industrias, las personas, los usuarios, por consiguiente también los problemas, es aquí donde entra en escena Scrum. Por esta razón, es necesario una perspectiva que nos permita conocer y aprender del problema. Conocer y aprender nos da la capacidad de inspeccionar para poder realizar adaptaciones a la solución de tal manera que disminuya la incertidumbre.
Scrum es un framework ágil que sirve para construir productos que generan un alto valor e impacto para el negocio del cliente y al mismo tiempo se construye la solución con el mínimo esfuerzo.
El beneficio de scrum es darnos la habilidad de adaptarse al cambio sin perder la estabilidad de la solución, gracias al desarrollo sustentable implementado. ¿Qué queremos decir con sustentable? Significa que la solución conserva su estabilidad aun cuando iterativamente lo incrementamos. La calidad del producto influye considerablemente en la sustentabilidad de la solución.
El primer paso es alinear ciertos principios y valores. De tal manera que en conjunto sean la masa rocosa en la que se pueda edificar un castillo y no la masa de arena en la que solo nos permita construir una casa y a la primera llovizna se derrumbe.
Cuando hablamos de principios y valores estamos hablando de las relaciones interpersonales. Esto es importante porque las personas son los individuos que en conjunto forma un equipo para crear los productos, aplicaciones y sistemas computacionales que otros individuos van a utilizar. Estas mismas personas son las que forman empresas y organizaciones.
Valores de Scrum
Scrum es un framework de desarrollo ágil, por lo que sabe la importancia de tomar muy en cuenta:
Individuos e interacciones sobre procesos y herramientas.
Es por eso que los valores en los que se basa Scrum giran alrededor de principios que promueven productivas interacciones entre individuos:
- Coraje
- Enfoque
- Compromiso
- Respeto
- Apertura (franqueza, actitud abierta y receptiva)
Los valores de Scrum están basados en varios principios básicos del ser humano, no son principios difíciles, es sentido común, busca en tu interior y verás que esos principios siempre están latentes en menor o mayor medida, cada persona es diferente, pero estos principios siempre están ahí:
- Honestidad
- Justicia
- Integridad
- Amor
El uso exitoso de Scrum depende de que las personas lleguen a ser más virtuosas en la convivencia con estos cinco valores. Las personas se comprometen de manera personal a alcanzar las metas del equipo scrum. Los miembros del equipo Scrum tiene el coraje para hacer bien las cosas y para trabajar en los problemas difíciles. Todos se enfocan en el trabajo del sprint y en las metas del equipo Scrum. El equipo Scrum y sus interesados acuerdan estar abiertos a todo el trabajo y a los desafíos que se les presenta al realizar su trabajo. Los miembros del equipo Scrum se respetan entre sí para ser personas capaces e independientes.
Respeto
Los miembros del equipo Scrum se respetan entre sí para ser personas capaces e independientes. Pero ¿Qué quiere decir respetarse?, para mí el respeto es preocuparse por la otra persona, esta preocupación es resultado de apreciar a los integrantes de tu equipo y este aprecio viene del amor, sí, suena cursi, pero es verdad, piénsalo.
Dado que respetas a los demás integrantes del equipo, estás totalmente dispuesto a ayudar a mejorar, opinar de manera constructiva y a respetar las opiniones de los demás. Este respeto recíproco se convierte en una gran confianza para que cada individuo se convierta en una persona capaz e independiente, cada individuo realizará su mayor esfuerzo debido a su integridad y respeto a los demás, lo que provoca un ciclo infinito de buenas intenciones.
Coraje
Porque tienes aprecio a tu equipo y a las metas propuestas, porque tu integridad es fuerte y sabes quien eres para el equipo, tienes el coraje de alzar la mano cuando algo esté bloqueando o disminuyendo la productividad. Tienes el coraje de opinar y hablar de mejoras dentro del equipo y también dentro de la organización misma si es necesario.
Enfoque
Cada miembro del equipo está consciente que para ser ágil y ayudar al equipo a realizar su trabajo es necesario enfocarse en el objetivo definido en cada sprint. Así evitamos desviarnos de lo que se quiere lograr en nuestras actividades diarias. Esto nos permite NO malgastar nuestro tiempo en cosas que no son importantes para el objetivo actual y acelerar el desarrollo de la solución.
Compromiso
Porque cada integrante del equipo tiene una integridad latente y comparten una gran honestidad y respeto. Entonces los miembros se comprometen de manera personal a alcanzar el objetivo del equipo Scrum porque saben perfectamente que ese compromiso es beneficioso para todos, porque les permitirá eliminar la frustración individual y del equipo.
No es estricto cumplir con cada detalle en específico de las tareas en un sprint, mientras no afecten al logro del objetivo se puede negociar el alcance. Pero cada integrante realiza con gusto su mayor esfuerzo, trabajando con transparencia y respeto mutuo. Si no se cumple totalmente lo esperado, existen eventos durante y después de un sprint que nos ayudan a mejorar nuestro alcance sin afectar el objetivo del sprint.
Apertura (franqueza, actitud abierta y receptiva)
Porque aprecias a tu equipo, eres honesto y te guías por la justicia. Estás abierto a opiniones, abierto al trabajo que se necesita hacer, al respeto mutuo y la honestidad o transparencia. A inspeccionarte a ti mismo y adaptarte para que el equipo Scrum sobrepase todo el trabajo y desafíos del proyecto.
Teoría de control de proceso empírico de Scrum
Ahora bien, dado que el entorno en que se trabaja es cambiante, scrum también se basa en la teoría de control de procesos empírico. Según la guía de Scrum:
El empirismo asegura que el conocimiento procede de la experiencia y de tomar decisiones basándose en lo que se conoce. Scrum emplea un enfoque iterativo e incremental para optimizar la predictibilidad y el control del riesgo.
El empirismo de Scrum se construye con tres pilares:
- Transparencia
- Inspección
- Adaptación
Anotación importante, los cimientos o la masa rocosa de estos tres pilares son los cinco valores de Scrum.
Haciendo una analogía rápida con un espejo. Si nos paramos enfrente del espejo, pero este tiene manchas que no nos permiten vernos claramente, quiere decir que no es transparente. Lo cual provoca que si quiero peinarme, no podre inspeccionar mi cabello, dado que no logro observar bien mi cabello no podre adaptarlo para que quede bien arreglado y peor aún, no sabré el resultado final de mi peinado.
Ahora, si el espejo está completamente limpio y transparente, este espejo seria Scrum (bien implementado claro), podre inspeccionar el estado de mi cabello y podré adaptarlo peinándome a una velocidad superior que si el espejo tuviera manchas, podre peinarme correctamente y podre contemplar el resultado final ("Mi .¨Vbñ´Vcabello bien peinado... jajaja xD
).
Transparencia
Todos los aspectos importantes del proceso deben ser visibles para aquellos que son responsables del resultado.
De esta manera cada integrante de un equipo scrum tiene los datos y las herramientas necesarias para conocer todos los aspectos de lo que se va a construir y/o se está construyendo.
Inspección
La inspección no se puede dar si no hay transparencia, la inspección es visualizar e identificar los puntos de mejoras u errores de tal manera que se conoce y aprende profundamente sobre el problema a resolver. Este pilar provoca el aprendizaje.
Adaptación
Debido a la transparencia del proceso y al aprendizaje con la inspección, se puede mejorar y tomar las acciones necesarias para aumentar el valor e impacto de la solución al mismo tiempo que se reducen riesgos y también se mitigan desviaciones de los objetivos deseados. En conclusión se adapta.
Roles de un Scrum Team
El framework scrum define tres roles:
- Product Owner responsable de maximizar el valor del producto/servicio que se va a construir. Administra el product backlog.
- Desarrolla y comunica explícitamente el objetivo del producto
- Crea y comunica claramente los elementos del product backlog
- Ordenar los elementos del product backlog
- Asegurarse de que el producto backlog sea transparente, visible y que se entienda.
- Scrum Master, ayuda a todo el equipo a entender el framework scrum con la teoría, reglas, valores y prácticas. Es un verdadero líder que sirve a los developers, product owner y a toda la organización.
- Developers, son las personas que van a construir el producto y/o servicio. Sus responsabilidades principales son:
- Crear un plan para el sprint, esto es el sprint backlog
- Inculcar calidad al adherirse a una definición de terminado (DoD)
- Adaptar su plan cada día hacia el objetivo del sprint
- Responsabilizarse mutuamente como profesionales
Estos tres roles en conjunto forman el scrum team. Dentro del scrum team no existen las jerarquías ni tampoco se dividen en sub equipos. También el scrum team son multifuncionales, esto quiere decir que en conjunto tiene todas las habilidades necesarias para crear valor en cada sprint. Pueden compartir las habilidades y adquirirlas según se vaya necesitando.
El tamaño del scrum team debe ser lo suficientemente pequeño para facilitar la agilidad, pero lo suficientemente grande para generar el suficiente valor en cada sprint, normalmente 10 personas o menos. Si es necesario un equipo más grande, entonces se debe considerar crear varios scrum teams enfocados en el mismo producto. En consecuencia deben compartir el mismo objetivo del producto, product backlog y product owner.
Eventos de scrum
Cada uno de los pilares anteriores se viven en los Eventos de Scrum, nos ayudan a la inspección y adaptación de los artefactos, es decir, provocan el aprendizaje y la mejora continua, pero para eso cada evento y artefacto debe tener total transparencia. Así también cada uno de los valores de scrum se viven en todo el proceso, como se manifestó antes, son los cimientos de los pilares y de scrum.
Saltarse cualquier evento de scrum hace que se pierda una oportunidad para inspeccionar y adaptarse. Además, cumplir con los eventos genera regularidad y minimiza la necesidad de reuniones no definidas en scrum. Como recomendación los eventos deben celebrarse al mismo tiempo y en el mismo lugar para reducir complejidad.
Sprint
Esta palabra significa carrera corta, si, una carrera pequeña que nos permita trabajar en la solución y al mismo tiempo inspeccionar y adaptarnos rápidamente, esto siempre con la transparencia necesaria en todo el equipo. Dentro del sprint suceden los 4 eventos restantes necesarios para lograr el objetivo del producto
Durante un sprint:
- No se realizan cambios que pongan en riesgo el objetivo del sprint
- La calidad no disminuye
- El Product Backlog se refina según sea necesario
- El alcance se puede aclarar y renegociar con el Product Owner a medida que se aprende más.
La longitud de un sprint puede ser de un mes o menos, un sprint sigue el principio lean sobre lotes pequeños. Si el sprint es mayor a un mes, se empieza a hacer grande y la complejidad también, lo que provoca un aumento del riesgo. Adicionalmente, al ser un sprint grande el objetivo del sprint puede cambiar y el aprendizaje es mucho más lento porque la retroalimentación no sucede a tiempo.
Un sprint puede cancelarse si el objetivo del sprint se vuelve obsoleto. Solo el Product Owner tiene la autoridad para cancelar el sprint.
Sprint Planning
Aquí se define que se va a hacer en el sprint (objetivo) y como se va a realizar. En la planificación participan todo el equipo scrum de tal manera que se pone en práctica principalmente el foco con el objetivo del sprint y la transparencia del conocimiento de como se va a trabajar.
El sprint planning aborda los siguientes temas:
- ¿Por qué es valioso este sprint? Resulta en el objetivo del sprint. El product owner propone como el producto puede incrementar su valor y utilidad en el sprint actual.
- ¿Qué se puede hacer en este sprint? El Product Owner y Developers seleccionan elementos del Producto Backlog para incluirlos en el sprint actual. Pronosticar cuando se puede completar en un sprint es muy difícil, pero cuanto más sepan los Developers sobre su desempeño pasado, su capacidad actual y su Definición de Terminado, más confiados serán en sus pronósticos.
- ¿Cómo se realizará el trabajo elegido? Los Developers planifican el trabajo necesario para crear un Incremento que cumpla con la Definición de Terminado (DoD). A menudo se hace descomponiendo los elementos seleccionados en piezas más pequeñas que se puedan terminar en un día o menos. La forma de hacerlo queda a criterio de los Developers. Nadie más les dice como convertir los elementos del Product Backlog en Incrementos de valor
El límite de tiempo para el sprint planning es de 8 horas para un sprint de un mes.
El objetivo del sprint, más los elementos seleccionados del product backlog para el sprint actual, más el plan para entregarlos se denominan juntos como Sprint Backlog.
Daily Scrum
Reunión diaria donde se puede ver (transparencia) el avance diario, de tal manera que se pueda inspeccionar y adaptar el progreso actual para lograr el objetivo del sprint. Si el Product Owner y el Scrum Master trabajan continuamente en elementos del Sprint Backlog, entonces ellos participan como Developers.
Los Developers pueden seleccionar la estructura y técnicas que deseen, siempre que su Daily Scrum se centre en el progreso hacia el objetivo del Sprint y produzca un plan viable para el siguiente día de trabajo. Esto genera enfoque y autogestión.
El Daily Scrum es un ciclo de retroalimentación diario que mejora la comunicación, identifica impedimentos, promueve la toma rápida de decisiones y elimina la necesidad de otras reuniones.
El límite de tiempo para el Daily Scrum es de 15 minutos.
Sprint Review
Aquí se revisa el producto o avance, es decir, el artefacto llamado Incremento. De nuevo, esta reunión fomenta la transparencia, inspección y adaptación para el próximo sprint. No es sola una demostración de los avances hasta el momento. Es una oportunidad para detectar adaptaciones.
Para ponerlos más claro, el Sprint Review es un ciclo de retroalimentación al final de cada sprint donde se fomenta la transparencia revisando el Incremento. El Scrum Team en conjunto con los stakeholders inspeccionan los resultados para tomar decisiones de adaptación para lograr el Objetivo del producto, pueden ajustar el Product Backlog si encuentran nuevas oportunidades o cambios importantes.
El límite de tiempo para el Sprint Review es de 4 horas para un sprint de un mes.
Sprint retrospective
Este evento es el que más relación palpable tiene con los pilares scrum en relación con el equipo humano, es donde se toman acciones concretas y se planifica lo que requiere hacer para mejorar la efectividad del equipo y la calidad del trabajo en el próximo sprint.
También es un ciclo de retroalimentación al final del sprint para inspeccionar y adaptar las personas mismas, las interacciones, los procesos y la Definición de Terminado.
El límite de tiempo para el Sprint Retrospective es de 3 horas para un sprint de un mes.
Artefactos de Scrum
- Product Backlog (Lista de producto), lista de elementos o requerimientos que hasta el momento se conoce que el producto necesita.
- Sprint Backlog (Lista de sprint), son los elementos seleccionados del product backlog para construirse en el sprint actual.
- Increment (Incremento), es el producto terminado (hasta el momento) o avance terminado en un determinado sprint.
Más adelante veremos a detalle los roles, los eventos y los artefactos, espero que esta publicación les dé un panorama general de lo que es el Scrum.