Los Pilares de Scrum
Si bien, los 12 principios del manifiesto ágil describen una orientación sobre los principios que se siguen en Scrum, hay 5 elementos que son clave para el buen funcionamiento de este marco de trabajo.
Estos pilares junto a los 12 principios del manifiesto ágil se deberían conocer y aplicar por los miembros del Equipo Scrum. El Scrum Master suele ser el responsable de que estos pilares hagan parte de la cultura del equipo.
1. Autogestión en el Equipo Scrum
Para Scrum, es altamente recomedable que el equipo tenga la capacidad de autogestionarse, esto significa que son los miembros del equipo quienes eligen la mejor opción de llevar a cabo su trabajo sin ser dirigidos por personas externas al equipo.
La auto-gestión es una característica definitoria de los equipos Scrum, centrada en la confianza, autonomía y responsabilidad de sus miembros. Aquí es donde los equipos no sólo toman decisiones sobre cómo abordar su trabajo, sino que también asumen la responsabilidad de esas decisiones.
A continuación, se listan algunos elementos clave que hace posible la Auto-Gestión del Equipo Scrum:
- Los desarrolladores deberían autoasignarse el trabajo a realizar en los diferentes Sprints, nadie, ni siquiera el Product Owner debe imponer el trabajo al Equipo.
- El equipo decide la mejor distribución del trabajo, garantizando la equidad y el trabajo en equipo.
- El Equipo debe conocer muy bien sus límites de decisión para así poder tener mayor autonomía (delegación).
- El Equipo debe tener espacios que le permitan realizar jornadas de investigación y capacitación.
- Se debe trabajar continuamente en la motivación del equipo.
- No se deben cambiar los miembros del equipo (a menos que sea inevitable).
Propiedad y responsabilidad colectiva del producto
Para garantizar una colaboración constante y evitar con el tiempo la aparición de una cultura de la culpa, es importante fomentar una propiedad colectiva del producto, esto significa que todo el Equipo Scrum es dueño del producto, y por tanto cualquiera de sus integrantes podría contribuir al desarrollo de cualquier parte del producto aun cuando no haya sido quien lo desarrolló inicialmente.
Así mismo no deberían existir reconocimientos individuales a los miembros del equipo por sus contribuciones al producto.
Colaboración de equipo
La colaboración se da gracias a la constante comunicación que existe en los Equipos Scrum, tanto entre sus miembros como con las Partes interesadas del Proyecto, este concepto es parte integral del Manifiesto Ágil "La forma más eficiente y efectiva de transmitir información hacia y dentro del Equipo de Desarrollo es la conversación cara a cara".
El Scrum Master es el rol responsable de garantizar una sana comunicación entre todas las partes interesadas del proyecto, en especial de su Equipo de Desarrollo.
Se debe considerar que, según la naturaleza del proyecto, las necesidades de la organización e incluso factores externos, determinan la ubicación de los miembros del Equipo. Es por esto que en Scrum los Equipos se clasifican en 2 categorías:
Equipos Centralizados:
- Los miembros del Equipo se encuentran en la misma ubicación, lo que les permite comunicarse con gran facilidad.
- La resolución de problemas es prácticamente inmediata, ya que al estar ubicados en el mismo lugar es fácil realizar sesiones de diálogo.
Equipos Distribuidos:
Es aquel en el que sus miembros no se encuentran en una misma ubicación, por lo general está disperso debido a factores como:
- La subcontratación (outsourcing – freelance).
- Oficinas ubicadas en diferentes ubicaciones físicas.
- Trabajo desde casa.
Para garantizar la comunicación permanente en este tipo de equipos se hacen necesarias las siguientes herramientas:
- Groupware.
- Software Videollamadas o chat.
- Software de gestión de proyectos ágiles.
- Herramientas de software que simulan la funcionalidad de Scrum boards.
Equipos multifuncionales:
Los equipos multifuncionales (también llamadas células ágiles) tienen todas las competencias y habilidades necesarias para llevar a cabo el trabajo sin depender de otras personas que no formen parte del equipo.
Contrario a lo que piensa un equipo multifuncional, no se trata de que todos sus integrantes hagan de todo, se trata de que los integrantes adquieran conocimiento en distintas disciplinas (aplicables a los proyectos de la organización) y así puedan contribuir eficazmente con la colaboración.
La realidad es que incluso cuando un equipo sea experto técnico, siempre necesitarán capacitación adicional, así es que el Product Owner deberá decidir si aprobará el dinero y el tiempo para capacitarse o por el contrario serán los miembros del equipo quienes se encargarán del tema.
Colaboración con el cliente
En los proyectos tradicionales, los clientes por lo general se mantenían a distancia y solo se involucraban al principio y al final del proyecto. En Scrum es altamente recomendable que el cliente participe de las revisiones del producto y brinde retroalimentación en todos los puntos de "inspección y adaptación". Esto minimiza el riesgo y le brinda más opciones al cliente y a las partes interesadas.
Por ejemplo, en otros Marcos Ágiles como XP, es obligatorio que el Cliente forme parte del equipo.
El cliente (o sus representantes) deberían trabajar junto al Product Owner para definir las historias de usuario y detallar dichas historias antes o durante las reuniones de planificación.
El cliente y las partes interesadas por lo general participan en la Reunión de Revisión de los Sprint y, dependiendo de la relación entre el cliente y el Product Owner, el Cliente incluso podría participar de algunas reuniones de Retrospectiva de los Sprint.
Gestionar el conocimiento
Dado que los equipos autogestionados se responsabilizan de su aprendizaje y crecimiento, la gestión del conocimiento se convierte en un aspecto crucial. Esto puede tomar la forma de compartir habilidades, aprender nuevas tecnologías o técnicas, o incluso la formación entre pares.
Gestionar el conocimiento permitirá identificar, recopilar, organizar, transferir y retener el conocimiento necesario para dar soporte a todo el personal en sus actividades laborales, para la toma de decisiones bien fundadas y para aumentar la productividad.
Motivación del equipo
Los equipos Scrum se caracterizan por mantener un enfoque hacia la entrega frecuente de resultados; y aunque los miembros del equipo son conscientes de la responsabilidad que esto implica, existe un factor de fondo que facilita el impulso y el esfuerzo para cumplir con los objetivos: la motivación.
La motivación hace referencia a que los miembros del equipo mantengan determinada conducta y estado de ánimo que propicien las interacciones sanas y el alto rendimiento en el proyecto.
- Motivación Intrínseca: este tipo de motivación es propio de cada persona, es decir que por su propia voluntad e inspiración es capaz de mantener una conducta específica y el impulso necesario para cumplir con una meta que brinda satisfacción interna y realización personal. (Ref: CHAMPFROGS – Moving Motivators)
- Motivación Extrínseca: este tipo de motivación hace referencia a mantener una conducta específica para responder a un impulso externo, es decir que en este caso la voluntad e inspiración de la persona se ven influenciadas por una recompensa externa (que puede ser algo físico, monetario o psicológico).
Según cómo se maneje la motivación en el equipo Scrum, eventualmente la motivación extrínseca tiende a convertirse en motivación intrínseca, pues los miembros del equipo van adaptando su conducta y mejorando su rendimiento para cumplir los objetivos sin necesidad de que todo el tiempo estén recibiendo recompensas o algo a cambio.
2. Simplicidad
Scrum no sería considerada una metodología ágil de no ser por su simplicidad, es por ello que se intenta al máximo reducir la burocracia en sus prácticas, se trabaja con los artefactos que son esenciales para el equipo y se sigue un flujo de prácticas simple, sin descuidar todos los elementos necesarios para la correcta gestión del producto, eliminando cualquier trabajo superfluo o que no aporte valor.
A través de la simplicidad, se puede acelerar la entrega, mejorar la comunicación y reducir los riesgos asociados con la complejidad.
Algunos elementos que hacen posible la Simplicidad en Scrum son:
Maximizar el trabajo no realizado
La simplicidad no solo trata de hacer las cosas de manera simple, sino también de identificar y eliminar cualquier tarea que no sea esencial para alcanzar los objetivos del producto. Es una forma de ser eficiente y focalizado, dedicando recursos solo a lo que realmente importa.
Clara definición de "Hecho" (terminado)
Una definición clara y concisa de lo que significa "hecho" para un elemento del producto ayuda a evitar el trabajo innecesario. Si el equipo entiende perfectamente cuándo un ítem está completo, se evita el esfuerzo extra y las revisiones innecesarias.
Priorización
La simplicidad se logra también a través de una adecuada priorización de las tareas. Al centrarse en lo que realmente aporta valor al cliente o usuario final, el equipo puede evitar la complejidad y concentrarse en lo esencial.
Comunicación efectiva
Las soluciones simples a menudo emergen de una comunicación clara y efectiva. Al fomentar un diálogo abierto y honesto entre los miembros del equipo y con los interesados, se pueden identificar y eliminar obstáculos, malentendidos y redundancias.
Refactorización continua
La simplicidad también está en el código. Refactorizar regularmente el código para mantenerlo limpio y manejable es esencial. Un código más simple es más fácil de entender, modificar y mantener.
Limitar el trabajo en progreso (WIP)
Al limitar la cantidad de trabajo en progreso, los equipos pueden centrarse en finalizar tareas antes de comenzar nuevas. Esto reduce la complejidad y facilita una entrega más rápida y eficiente.
Usar herramientas de software
Las herramientas de software para la gestión ágil se han convertido en un elemento indispensable para garantizar la simplicidad. Algunas de las ventajas de usar estas herramientas son:
- Centralizan la información de los proyectos, permitiendo un mejor control de la información.
- Permiten automatizar tareas, por ejemplo:
- Estimaciones basadas en históricos.
- Calcular la velocidad del equipo.
- Elaborar gráficos para el seguimiento del presupuesto, progreso del Sprint (Burndown), progreso del proyecto (Diagrama de flujo acumulado), etc.
- Generar actas de reuniones.
- Generan notificaciones sobre elementos del Product Backlog con atraso.
- Facilitan la interacción de los Equipos Distribuidos geográficamente.
- Si los proyectos son de desarrollo de software, permiten, además:
- Integración continua.
- Pruebas automatizadas.
- Trazabilidad bidireccional entre código e historias de usuario.
3.5.3 Enfoque en el valor para los interesados
En un equipo Scrum, la máxima prioridad es satisfacer al cliente desde el inicio y continuamente entregándole el máximo valor posible, para lo cual es importante considerar los siguientes aspectos:
- Es importante que en cada uno de los Sprints se generen incrementos de producto que entreguen valor para los interesados y estos a su vez estén “terminados (DoD)”.
- Para realizar la priorización de los elementos que hacen parte del Product Backlog los miembros del Equipo Scrum deberán considerar principalmente el valor que el elemento puede generar, para ello es importante el concepto de transparencia
- Es altamente importante que los interesados participen de las revisiones de los prototipos del producto antes de realizar cualquier desarrollo; incluso y según la naturaleza del producto, el cliente podrá participar en el diseño del producto.
- Cada incremento de producto “terminado” debe ser validado con el cliente para asegurar la recolección de retroalimentación.
3.5.4 Disciplina
Seguir los lineamientos establecidos por el negocio y los interesados es de vital importancia para garantizar una sana convivencia entre todos los miembros del Equipo Scrum y garantizar la satisfacción del cliente.
Lineamientos que forman parte de la disciplina del equipo:
- Lineamientos establecidos por el Equipo Scrum.
- Lineamientos establecidos por la organización (reglas de negocio).
- Bloques de tiempo asignados a los eventos Scrum (time-box).
- Definición de terminado (DoD) y criterios de aceptación.
Lineamientos del equipo
Gracias al pilar de la auto-gestión, son los miembros del Equipo Scrum, quienes establecen sus propios lineamientos, claro, considerando el cumplimiento de las reglas establecidas por la organización. Los lineamientos del equipo suelen registrarse en un “Plan de Colaboración del equipo Scrum”.
Como lineamientos del equipo se pueden definir:
- Herramientas de comunicación
- Horarios de las reuniones
- Penalizaciones por incumplimientos
- Valores del equipo
Bloques de tiempo (time-box)
Los bloques de tiempo asignados a los eventos Scrum, garantizan que no se desperdicia tiempo en los proyectos. Algunas ventajas de respetar los Bloques de Tiempo asignado son los siguientes:
- Se evita que el equipo pierda motivación.
- Menos gastos generales para el proyecto.
- Se garantiza una alta velocidad para los equipos.
- Las prácticas relacionadas con el desarrollo de entregables son más eficientes.
Recuerda los bloques de tiempo de los eventos de Scrum:
- Sprint: 1-4 Semanas
- Planificación: 8 Horas para sprints de 1 mes
- Daily: 15 Minutos máximo
- Revisión: 4 Horas para sprints de 1 mes
- Retrospectiva: 3 Horas para sprints de 1 mes
3.5.5 Desarrollo iterativo
Cuando Scrum se aplica en un equipo, el desarrollo del trabajo se debería realizar por iteraciones, también conocidas como Sprints.
El enfoque iterativo es flexible y abierto a los cambios, lo que permite adaptar nuestro trabajo a las necesidades cambiantes del mercado, del cliente o de la organización.
Algunas de las ventajas del desarrollo iterativo son:
- Permite realizar entregas incrementales del producto, permitiendo a los clientes/usuarios disfrutar del valor entregado desde etapas tempranas.
- Permite la adaptación continua del trabajo, ya que se puede recolectar retroalimentación de las partes interesadas en cada una de las iteraciones.
- La realización de las reuniones de retrospectiva de los distintos Sprint, permiten el aprendizaje continuo del equipo.
- Realizar Sprints agrega puntos de control al trabajo del equipo, además proporciona estabilidad a los equipos.
- Las reuniones de revisión del Sprint, se realizan frecuentemente, permitiendo reducir la incertidumbre de las partes interesadas respecto a los entregables de producto.
Scrum se basa en la transparencia. Las decisiones para optimizar el valor y controlar el riesgo se toman basadas en el estado percibido de los artefactos. En la medida en que la transparencia sea completa, estas decisiones tienen unas bases sólidas. En la medida en que los artefactos no son completamente transparentes, estas decisiones pueden ser erróneas, el valor puede disminuir y el riesgo puede aumentar.
El Scrum Master debe trabajar con el Product Owner, el Equipo de Desarrollo y otras partes interesadas para entender si los artefactos son completamente transparentes. Hay prácticas para hacer frente a la falta de transparencia; el Scrum Master debe ayudar a todos a aplicar las prácticas más apropiadas si no hay una transparencia completa.
Un Scrum Master puede detectar la falta de transparencia inspeccionando los artefactos, reconociendo patrones, escuchando atentamente lo que se dice y detectando diferencias entre los resultados esperados y los reales.
La labor del Scrum Master es trabajar con el Equipo Scrum y la organización para mejorar la transparencia de los artefactos. Este trabajo usualmente incluye aprendizaje, convicción y cambio. La transparencia no ocurre de la noche a la mañana, sino que es un camino.