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, se determinan la ubicación de los miembros del Equipo:
-
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 dedicadas a la gestión de proyectos ágiles se han consolidado como elementos cruciales para simplificar procesos y tareas. Estas herramientas ofrecen diversas ventajas, entre las cuales destacan:
- Centralización de Datos: Agrupan toda la información de los proyectos en un solo lugar, lo que facilita el acceso, control y análisis de la información.
-
Automatización de Tareas: Las herramientas permiten la automatización de diversas actividades, tales como:
- Realizar estimaciones basadas en datos históricos.
- Calcular métricas como la velocidad del equipo.
- Generar gráficos que permiten el seguimiento del presupuesto, el progreso del Sprint (Burndown) y el avance global del proyecto (Diagrama de flujo acumulado), entre otros.
- Crear registros detallados de las reuniones.
- Alertas Proactivas: Envían notificaciones sobre elementos del Product Backlog que podrían estar retrasados o requieran atención.
- Colaboración Remota: Facilitan la coordinación y colaboración entre equipos que están distribuidos geográficamente, asegurando que todos estén alineados en sus objetivos y tareas.
-
Especialización en Desarrollo: Para proyectos específicos de desarrollo de software, estas herramientas ofrecen funciones adicionales como:
- La integración continua.
- Ejecución de pruebas automatizadas.
- Trazabilidad completa entre el código y las historias de usuario.
3. Enfoque en el valor para los interesados
Dentro del marco Scrum, centrarse en entregar valor constante y significativo para los interesados es primordial. Este pilar se fundamenta en la premisa de que la satisfacción del cliente debe ser prioritaria y continua. Para asegurarse de que el equipo está en la dirección correcta, es esencial tener en cuenta los siguientes puntos:
- Entregar incrementos "Terminados": Asegurarse de que cada incremento del producto cumpla con la Definición de Terminado (DoD) garantiza que los resultados no sólo son completos, sino que también son de alta calidad y aptos para su uso.
- Priorizar los elementos de mayor valor: La priorización efectiva del Product Backlog, garantiza que el equipo se enfoque en las características y funciones que ofrecen el mayor retorno de inversión y satisfacción para los interesados.
- Validar los prototipos con los interesados: Antes de iniciar el desarrollo completo, es crucial obtener feedback de los interesados sobre los prototipos. Esta práctica asegura que el producto esté alineado con las expectativas y necesidades del cliente desde una etapa temprana.
- Validación continua en la Revisión del Sprint: Presentar y validar cada incremento con los interesados durante la Revisión del Sprint permite recolectar retroalimentación directa y realizar ajustes en tiempo real, asegurando así que el producto final cumpla con sus expectativas.
4. Disciplina
La disciplina es esencial en Scrum para garantizar que el equipo trabaje armoniosamente y cumpla con los objetivos trazados. Esta rigurosidad no sólo asegura la satisfacción del cliente sino también el funcionamiento fluido del equipo.
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 establecidor por el equipo Scrum
Estos son los acuerdos o reglas internas que el Equipo Scrum define para garantizar una colaboración y comunicación eficaces entre sus miembros. Por ser autoimpuestos, estos lineamientos refuerzan el pilar de auto-gestión y aseguran que el equipo se adueñe de su proceso. 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”. Estos lineamientos pueden abordar aspectos como los métodos y herramientas de comunicación preferidos, los horarios de las reuniones, la asignación de roles específicos dentro del equipo, penalizaciones por incumplimientos, los valores del equipo, o las normas sobre cómo y cuándo se realizarán ciertas tareas.
Lineamientos establecidos por la organización (reglas de negocio):
Estas son las directrices o reglas que la organización establece, y que todos los equipos, incluidos los Equipos Scrum, deben seguir. Pueden abordar áreas como los estándares de codificación, las políticas de seguridad de la información, los procedimientos de aprobación y revisión, entre otros. Estas reglas aseguran que, aunque el equipo tenga autonomía, su trabajo sigue estando alineado con los objetivos y requisitos más amplios de la organización.
Bloques de tiempo (time-box)
El marco de Scrum hace un uso extensivo del concepto de time-boxing, donde cada evento tiene una duración máxima asignada. Este enfoque garantiza que las ceremonias o eventos no se prolonguen innecesariamente y que el trabajo se realice de manera puntual y eficiente. Respetar estos bloques de tiempo es crucial para mantener la disciplina y el ritmo del equipo.
Algunas ventajas de establecer y cumplir los Bloques de Tiempo asignado son los siguientes:
- Se evita que el equipo pierda motivación.
- Menos gastos generales en el equipo.
- 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
Definición de terminado (DoD) y criterios de aceptación
La Definición de Terminado es una lista acordada de criterios que deben cumplirse para que una tarea o característica se considere "terminada". Asegura que todo el trabajo cumpla con un estándar mínimo de calidad y esté listo para ser entregado al cliente o puesto en producción.
Los criterios de aceptación, por otro lado, son requisitos específicos que una tarea o característica debe cumplir para ser aceptada por el cliente. Estos criterios ayudan a aclarar las expectativas y garantizar que el equipo esté trabajando hacia el mismo objetivo.
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.