Scrum es la metodología de desarrollo ágil más utilizada en proyectos tecnológicos hoy en día por eso es obligatorio una introducción a scrum y sus principios pero de donde viene? ,cuando fue creada ?te preguntaras, pues para eso tenemos que comenzar hablando de JIT.
JIT
JIT o produccion justo a tiempo o como seria en inglés Toyota Production System se implanto en Japón en la segunda guerra mundial para optimizar los tiempo de la cadena de montaje de los coches que fabricaba Toyota y porque te hablo de esto ?pues porque es una de las bases de Scrum.
Aparición de la palabra Scrum
Sabes cuando fue la primera vez que se utilizo la palabra Scrum? ,pues fue en 1986 en un articulo llamado The new product developement game en el diario de la famosa universidad americana Harvard llamado Harvard Business Review y las personas que lo escribieron fueron Hirotake Takeuchi y Ikujiro Nonaka.
Lean manufacturing
Otro concepto importante para entender los orígenes de Scrum es el concepto de Lean manufacturing que consiste en mejorar la productividad eliminando aquello que no sirve y solo estorba ;esta técnica se utilizaba en la fabricación de productos a finales de los 80 y fue algo que ayudo a los creadores de Scrum junto al concepto de JIT y el manifiesto ágil a crear la guía de Scrum.
Manifiesto ágil
Pero que es el manifiesto ágil?,pues es una guía que es la base de metodologías ágiles como XP,Scrum o Kanban;este manifiesto ágil se firmo en Utah en EEUU en 2001 y tiene hasta su propia página web ,aquí podemos ver los 12 principios del manifiesto ágil y los firmantes.
Los creadores de Scrum son Jeff Shuterland y Ken Shwaber y tambien son los que crearon la guía de Scrum;las las dos ultimas guías son la del 2020 y antes la del 2017 pero la primera guía oficial fue en el año 2010.
El manifiesto ágil esta formado por 4 valores y 12 principios y os voy hablar primero de estos 4 valores.
Las personas son lo mas importante, por encima de procesos y herramientas
Si una herramienta no es la adecuada puede provocar retrasos por lo tanto lo primero son las personas .
Lo más importante no es la documentación sino el incremento funcional.
Por encima de una documentación completa de hecho no debería ser asi sino una documentación ágil es que este incremento funcional sea de valor y totalmente funcional.
Tercer valor
Lo mas importante es colaborar con el cliente por encima de lo que se definió en el contrato.
Se debe estar abierto a los cambios y si el contrato debe cambiarse pues se hace.
Cuarto valor
Lo mas importante es generar valor
Las empresas deben adaptarse por encima del plan estratégico que se tenga,de hecho ya hay un marco de scrum para empresas .
Como bien comente el manifiesto ágil tiene 12 principios que pasare a describir para completar este articulo de introduccion a scrum
Principios del manifiesto ágil
Primer principio
Nuestra principal prioridad es satisfacer al cliente a traves de la entrega temprana y continua del software con valor.
Aquí se habla realmente de la satisfacción del cliente y como entregar rapido y de manera frecuente ayuda a esa satisfacción ademas en entornos VUCA que son aquellos muy cambiantes los cambios deben realizarse muy rapido o no satisfarán la demanda actual del mercado.
Segundo principio
Aceptamos que los requisitos cambien ,incluso en etapas tardías de desarrollo.Los procesos ágiles aprovechan el cambio para proporcionar una ventaja competitiva al cliente.
Las metodologías ágiles sacan provecho del cambio para generar una ventaja competitiva al sacar un producto mejor y antes que la competencia ademas al permitir cambios de los requisitos incluso en las fases finales de un proyecto apoyan la mejora continua en cualquier momento ,esto con las metodologías clásicas no pasaba por el alto coste económico que traían los cambios pero con metodologías como Scrum eso no pasa.
Hoy en dia con la competencia que hay en los mercados si tu competencia saca una mejora rápidamente tienes que sacarla tu para que no pierdas nicho de mercado.
Tercer principio
Entregar software funcional frecuentemente ,desde cada dos semanas hasta cada dos meses,con preferencia al periodo de tiempo mas corto posible.
Este principio indica que hay que entregar software continuamente que ya lo hablaba el primer principio ,de hecho,se refiere a realizar pequeñas entregas que aporten valor cada poco tiempo.
Estas entregas pequeñas nos permiten tener un feddback continuo del cliente y permite que se encuentren errores mas facilmente ademas grandes empresas como Amazon hacen cambios cada dia con sus correspondientes release.
Cuarto principio
Los responsables del negocio(product owner) y los desarrolladores deben trabajar juntos de forma cotidiana durante todo el proyecto.
Este principio dice que tiene que haber una colaboración y comprensión mutua entre estos dos roles para que se consigan mejores resultados .
Esto se puede conseguir mediante un feedback diario y utilizando un lenguaje común que bien pueden ser las historias de usuario
Quinto principio
Construir proyectos en torno a individuos motivados.Hay que darles el entorno y el apoyo que necesitan y confiar en ellos para la ejecución del trabajo.
La empresa debe darles el apoyo y el entorno tecnológico que necesitan para motivar a los miembros del equipo.
El equipo debe de participar en las decisiones del proyecto para que vean que son importantes en él y que se identifiquen con los objetivos de la organización y asi se conseguirá más compromiso , que se impliquen mucho más y den lo mejor de ellos.
Sexto principio
El método más eficiente y efectivo de comunicar información al equipo es la conversación cara a cara.
De todas las formas de comunicacion las reuniones cara a cara son las mas efectivas porque reducen los tiempos de respuestas y malentendidos.
Debido al COVID se adelanto la implantación del teletrabajo unos años y hoy en dia muchos equipos están en ubicaciones diferentes y las reuniones son a distancia a traves de herramientas de comunicacion como Teams,Skype o Google chat ;es muy importante crear un documento donde se indiquen los pactos a los que se ha llegado en la reunión.
Séptimo principio
El software funcionando es la medida del progreso.
La única manera que el cliente sepa el progreso de un producto es que lo pueda probar y utilizar para que de feedback y saber si satisface las necesidades del cliente.
Ya vamos a por el octavo principio en esta introduccion a Scrum y los 5 restantes son tan importantes como los demás.
Octavo principio
Los procesos ágiles promueven un desarrollo sostenible.Los promotores,desarrolladores y usuarios deben ser capaces de mantener un ritmo constante de forma indefinida.
Este principio habla que el equipo debe mantener un ritmo que permita un incremento del producto que sea útil pero sin que el equipo se estrese,debe ser un ritmo mantenible en el tiempo y que a medio o largo plazo no genera baja productividad o problemas de salud mental.
Noveno principio
La atencion continua a la excelencia tecnica y al buen diseño mejora la agilidad.
Cuidar los aspectos técnicos del código cuando se esta desarrollando un producto aporta agilidad a corto,medio y largo plazo ,de hecho si no se utiliza herramientas como SonarQube al final a la larga el diseño sera bueno y tendrá un código limpio y re-utilizable.
A largo plazo si el diseño del producto y el código no es bueno el cliente lo percibirá en el rendimiento del producto ,los tiempos de entrega de nuevas características y en la capacidad de mejorar el producto y esto precisamente es lo que aumentara la deuda técnica en el proyecto.
Decimo principio
La simplicidad ,o el arte de maximizar la cantidad de trabajo no realizado ,es esencial.
Hay que actuar de la manera mas simple posible ,el cliente no paga por el esfuerzo sino por satisfacer sus necesidades y eso conlleva entregar una solucion que satisfaga sus necesidades.
Como serian formas de evitar trabajo extra:
Automatizar pruebas y procesos
Automatizar tareas
Eliminar procesos innecesarios
Utilizar librerías y API´s
Crear manuales con lo fundamental
Onceavo principio
Las mejores arquitecturas ,requisitos y diseños emergen de equipos autoorganizados.
Este principio habla que a los equipos que se les da mas libertad y confianza son los que consiguen mejores resultados.
Es fundamental tener un equipo autoorganizado,motivado y no controlado porque esto precisamente puede provocar que tengan miedo para ser creativos y a dar opiniones.
Doceavo principio
A intervalos regulares,el equipo reflexiona sobre como ser más eficaz,para,a continuación,ajustar perfeccionar su comportamiento en consecuencia.
Este último principio es fundamental porque hace referencia a la mejora continua.Los equipos deben estar revisando continuamente,en cada sprint realmente ,para perfeccionarlo y mejorar su rendimiento .
Este concepto es muy importante porque es lo que hace que un equipo con el tiempo tenga un funcionamiento que les lleve al éxito del proyecto actual o futuros proyectos.
Que te ha parecido mi artículo?,ha sido de valor?Déjame en los comentarios cualquier aportación que quieras comentar y si realmente te interesa realmente conocer más en profundidad Scrum te dejo abajo enlace a dos libros, uno para que entiendas los conceptos fundamentales y puedas certificarte en Scrum Foundation Professional Certificate,el certificado básico que cualquiera tiene que tener para trabajar en esta metodología ágil y otro por si te interesa certificarte en Scrum master .