1. ¿Qué es SCRUM y el desarrollo ágil?
SCRUM es un marco que ayuda a las personas, los equipos y las organizaciones a generar valor a través de soluciones adaptativas para problemas complejos. En lugar de proporcionar a las personas instrucciones detalladas, las reglas de SCRUM guían sus relaciones e interacciones. SCRUM se basa en el empirismo y el pensamiento ajustado. El empirismo afirma que el conocimiento proviene de la experiencia y de la toma de decisiones basada en lo que se observa. El pensamiento ajustado reduce los residuos y se centra en lo esencial.
SCRUM emplea un enfoque iterativo e incremental para optimizar la previsibilidad y controlar el riesgo, involucra a grupos de personas que colectivamente tienen todas las habilidades y la experiencia para hacer el trabajo y comparten o adquieren dichas habilidades según sea necesario. SCRUM se basa en los siguientes valores:
Compromiso, concentración, apertura, respeto y coraje
Los pilares de SCRUM son:
- Transparencia: el proceso y el trabajo deben ser visibles tanto para los que realizan el trabajo como para los que lo reciben. La transparencia permite la inspección. La inspección sin transparencia es engañosa y derrochadora.
- Inspección: los artefactos y el progreso hacia los objetivos acordados deben ser inspeccionados con frecuencia y diligencia para detectar desviaciones o problemas potencialmente indeseables.
- Adaptación: Si algún aspecto de un proceso se desvía fuera de los límites aceptables o si el producto resultante es inaceptable, hay que ajustar el proceso aplicado o los materiales producidos. El ajuste debe realizarse lo antes posible para minimizar más desviaciones.
Las prácticas ágiles incluyen el descubrimiento de requisitos y la mejora de soluciones a través del esfuerzo de colaboración de equipos autoorganizados y multifuncionales con sus clientes/usuarios finales, la planificación adaptativa, el desarrollo evolutivo, la entrega temprana, la mejora continua y las respuestas flexibles a los cambios en los requisitos, la capacidad y la comprensión de los problemas a resolver.
Los valores del manifiesto ágil son:
- Las personas y las interacciones por encima de los procesos y las herramientas. Las herramientas y los procesos son importantes, pero es más importante contar con personas competentes que trabajen juntas de forma eficaz.
- Las soluciones que funcionan están por encima de la documentación exhaustiva. Una buena documentación es útil para ayudar a las personas a entender cómo se construye la solución y cómo utilizarla, pero el objetivo principal del desarrollo es crear soluciones, no documentación.
- La colaboración con el cliente por encima de la negociación del contrato. Un contrato es importante, pero no sustituye a la colaboración con los clientes para descubrir lo que necesitan.
- Responder a los cambios en lugar de seguir un plan. Un plan de proyecto es importante, pero no debe ser demasiado rígido para adaptarse a los cambios en la tecnología o el entorno, las prioridades de las partes interesadas y la comprensión del problema y su solución por parte de las personas.
La mayoría de los métodos de desarrollo ágil dividen el trabajo de desarrollo de productos en pequeños incrementos que minimizan la cantidad de planificación y diseño por adelantado. Las iteraciones, o sprints, son marcos de tiempo cortos, también llamados cajas de tiempo. El equipo trabaja en todas las funciones: análisis, planificación, diseño, codificación y pruebas. Al final de la iteración se demuestra a los interesados un producto que funciona. Esto minimiza el riesgo global y permite que el producto se adapte rápidamente a los cambios. Una regla importante es «fallar a menudo y pronto», ya que en las primeras fases suele ser mucho más barato que cuando se acerca la fecha de lanzamiento final. El objetivo es, por supuesto, tener éxito al final. Pero los fallos tempranos, como los malentendidos en una fase muy temprana, pueden resolverse mejor mediante la participación constante de las partes interesadas, y el coste y el riesgo de los fallos en un estadio temprano del prototipo es menos crucial que en una solución ya desarrollada.
Las principales ventajas de las metodologías ágiles son la velocidad de comercialización, la mitigación de riesgos y la mayor satisfacción del cliente. La estrecha colaboración con las partes interesadas y los usuarios reduce el tiempo y el coste, así como los riesgos de diseñar un producto que no cumpla los requisitos del usuario.
Los sprints son el corazón de SCRUM, donde las ideas se convierten en valor. Son eventos que garantizan la inspección y la adaptación del progreso hacia el objetivo del producto. Cuando el horizonte de un sprint es demasiado largo, el objetivo del sprint puede perder validez, la complejidad puede aumentar y el riesgo puede incrementarse. Se pueden emplear sprints más cortos para generar más ciclos de aprendizaje y limitar el riesgo de coste y esfuerzo a un marco temporal más pequeño. Cada sprint puede considerarse un proyecto corto.
Los temas de cada sprint son:
- ¿Por qué es valioso este Sprint? El propietario del producto propone cómo el producto podría aumentar su valor y utilidad en el sprint actual. El equipo Scrum colabora para definir un objetivo del sprint y por qué el sprint es valioso para los interesados.
- ¿Qué se puede hacer en este sprint? A través de la discusión con el propietario del producto, los desarrolladores seleccionan los elementos del backlog del producto (básicamente una lista de tareas prioritarias que deben realizarse en un proyecto) para incluirlos en el Sprint actual. La selección puede ser un reto, pero cuanto más conozcan los desarrolladores su rendimiento pasado, su capacidad próxima y su definición de hecho, más seguros estarán de sus previsiones de Sprint.
- ¿Cómo se realizará el trabajo elegido? Para cada elemento del backlog del producto seleccionado, los desarrolladores planifican el trabajo necesario para crear un incremento que cumpla con la definición de hecho. Esto se suele hacer descomponiendo los elementos del backlog del producto en elementos de trabajo más pequeños.
El equipo SCRUM está formado por un SCRUM Master, un Product Owner, y los desarrolladores. Dentro de un Equipo Scrum, no hay sub-equipos o jerarquías. Es una unidad cohesionada de profesionales centrados en un objetivo a la vez, el Objetivo del Producto. Los equipos son interfuncionales y se autogestionan. El equipo es responsable de todas las actividades relacionadas con el producto, desde la colaboración con las partes interesadas, la verificación, el mantenimiento, el funcionamiento, la experimentación, la investigación y el desarrollo, y cualquier otra cosa que pueda ser necesaria.
El SCRUM Master ayuda a todos a entender la teoría y la práctica de SCRUM, tanto dentro del equipo SCRUM como de la organización. Es responsable de la eficacia del equipo SCRUM, permitiendo que el equipo SCRUM mejore sus prácticas, dentro del marco SCRUM. Por lo general, lo hará entrenando a los miembros del equipo en la autogestión y la interfuncionalidad, ayudando al equipo SCRUM a centrarse en la creación de incrementos de alto valor que cumplan con la Definición de Hecho, la eliminación de impedimentos y asegurando un campo de trabajo positivo y productivo manteniéndolo dentro del presupuesto y el plazo.
El SCRUM Master ayuda al Product Owner en la definición efectiva de los objetivos del producto y la gestión del backlog del producto y el Equipo Scrum entiende la necesidad de elementos claros y concisos del Backlog del Producto. Él / ella ayuda a establecer una planificación empírica del producto para un entorno complejo y facilita la colaboración de las partes interesadas.
Los SCRUM Masters también lideran, forman y entrenan a la organización en su adopción de SCRUM, planifican y asesoran las implementaciones de SCRUM dentro de la organización, ayudan a los empleados y a las partes interesadas a entender SCRUM y a eliminar las barreras.
El Product Owner es responsable de maximizar el valor del producto resultante del trabajo del Equipo Scrum. También es responsable de la gestión eficaz del Backlog del Producto, que incluye el desarrollo y la comunicación explícita del objetivo del producto, la creación, el orden y la comunicación clara de los elementos del backlog del producto, y asegurar que el backlog del producto es transparente, visible y entendido. Para que los Product Owners tengan éxito, toda la organización debe respetar sus decisiones.
El Product Owner es una persona, no un comité.
Los desarrolladores son las personas del equipo SCRUM que crean el resultado. A menudo, las habilidades específicas necesarias son amplias y, por lo tanto, la multi o transdisciplinariedad es una necesidad. Los desarrolladores son siempre responsables de crear un plan para el sprint, inculcar la calidad, adaptar sus planes hacia el objetivo del sprint; y responsabilizarse mutuamente como profesionales.