¿Qué es Lean?
La metodología Lean tiene como principio en la eliminación de todo gasto innecesario para poder centrarse en maximizar la creación de valor. Para ello hay que deshacerse de:- La variación: Es cualquier irregularidad, incumplimiento o interrupción en los procesos por falta de estandarización.
- El desperdicio: Es la actividad inútil, como la sobre producción, la mala gestión del tiempo o los defectos en la cadena de trabajo.
- La sobrecarga: se produce por las malas gestiones de las irregularidades y el desperdicio.
- Identificar el valor. El producto / servicio debe ser algo que el cliente este dispuesto a pagar.
- Mapear el flujo de trabajo. Hay que realizar un análisis de la estructura de todas las fases del proceso de producción.
- Mantener el flujo continuo. Para ello hay que detectar los cuellos de botellas, dividir el trabajo, y eliminar obstáculos.
- Aplicar el sistema pull (solo se inicia una nueva tarea cuando haya una demanda que lo justifique).
- Buscar la mejora continua. (Repetir el proceso).
¿Qué es Agile?
Por definición, las metodologías ágiles son aquellas que permiten adaptar la forma de trabajo a las condiciones del proyecto, consiguiendo flexibilidad e inmediatez en la respuesta para amoldar el proyecto y su desarrollo a las circunstancias específicas del entorno. Esto es posible gracias a los 12 Principios de las Metodologías Agiles, los cuales se basan en la Metodología Lean, estos son:
- Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana y continua de software con valor (dinero).
- Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos Ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.
- Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con preferencia al periodo de tiempo más corto posible
- Los responsables de negocio y los desarrolladores trabajamos juntos de forma cotidiana durante todo el proyecto.
- Los proyectos se desarrollan en torno a individuos motivados. Hay que darles el entorno y el apoyo que necesitan, y confiarles la ejecución del trabajo.
- El método más eficiente y efectivo de comunicar información al equipo de desarrollo y entre sus miembros es la conversación cara a cara.
- El software funcionando es la medida principal de progreso.
- Los procesos Ágiles promueven el desarrollo sostenible. Los promotores, desarrolladores y usuarios debemos ser capaces de mantener un ritmo constante de forma indefinida.
- La atención continua a la excelencia técnica y al buen diseño mejora la Agilidad.
- La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial.
- Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-organizados.
- A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo para, a continuación, ajustar y perfeccionar su comportamiento en consecuencia.
Entonces ¿Qué es Scrum?
Podemos decir que es un framework de trabajo que describe un proceso de estrategia de desarrollo incremental, basado en los principios del Manifiesto Agil y que hace uso del empirismo, qué es un proceso que se basa en tomar decisiones en base al conocimiento que tenemos sobre la información que nos da la observación.
Asimismo, se apoya en tres pilares esenciales que son: inspección, transparencia y adaptación.¿Cómo recolectamos esa información para poder seguir la Metodología Scrum?
Acá es donde aparecen los Artefactos y Eventos de Scrum. Primero desarrollaremos los Artefactos, los cuales son:
El Product Backlog, el cual es una lista ordenada que contiene todo lo que podría ser necesario en el producto y es la única fuente de requisitos para hacer cambios en el producto. El Product Owner es el encargado de ordenar y añadir ítems en el y por definición la lista nunca está completa, sino que es un ente vivo y dinámico, que va cambiando según lo hace el entorno y el propio producto para ser adecuado, competitivo y útil. Cada ítem que aparece en él tiene los siguientes atributos: Descripción, Ordenación, Estimación y Valor. A medida que el produco va siendo utilizado y recibe feedback, la lista se va haciendo más detallada (principio de iterativo incremental y repetir el proceso).
El Sprint Backlog son los items del Product Backlog seleccionados para ser ejecutados durante el Sprint en curso. Así pues el Sprint Backlog es un plan para entregar un Incremento de producto "Terminado" al final del Sprint. A medida que se va trabajando sobre el producto, va apareciendo nuevo trabajo, que el Equipo de Desarrollo va añadiendo al Sprint Backlog. El Sprint Backlog solo lo pueden modificar durante el Sprint, el Equipo de Desarrollo, así como eliminarlo.
El Incremento es la suma de todos los elementos del Sprint Backlog "Terminados" más los Incrementos de Sprints anteriores. Por "Terminado" podemos entender que puede ser utilizado y que además cumple con la "Definición de Terminado", es decir, lo que todo el equipo entiende por terminado.
Por último explicaremos las cinco (5) Ceremonias de Scrum, las cuales se definen como principales para cumplir con el control de sus procesos y que son imprescindibles para esta metodología. Asimismo, debemos hacer mención de lo que es el contenedor de dichas ceremonías, el Sprint.
Sprint:
Es continuo y se puede interpretar como una medida de ritmo constante a lo largo del tiempo, permitiéndonos reducir complejidad y comparar resultados a lo largo de diferentes Sprints. Nos brinda Transparencia, Inspección y nos permite adaptar los otros eventos de Scrum.
Puede durar 4 semanas aproximadamente, aunque es bastante habitual que distintos equipos Scrum sigan distintas duraciones, dependiendo la finalidad perseguida. Estos pueden ser de:
- 2 semanas
- 3 semanas
- 4 semanas
- 5 semanas
La duración del Sprint se determina por un horizonte de planning aceptable y contiene los siguientes eventos de Scrum:
Sprint Planning: Es una reunión que se realiza al comienzo de cada Sprint donde participa el equipo Scrum completo, dado que sirve para inspeccionar el Backlog del Producto y que el equipo de desarrollo seleccione los ítems a trabajar en el siguiente Sprint.
Daily: Es una reunión diaria de 15 minutos de duración en la que participa exclusivamente el equipo de Desarrollo para poder hablar de lo desarrollado, si están persiguiendo el objetivo de las HU abordadas y permite la inspección y adaptación a través de la auto-organización del equipo.
Sprint Review: Es la reunión que ocurre al final de Sprint, en ella se encuentra el PO y el equipo de Desarrollo para presentarles a los stakeholders (partes interesadas) el incremento terminado para su inspeccipon y adaptación correspondientes. Asimismo, se muestra el software en funcionamiento. Está reunión nos beneficia para tener feedback inmediato de las partes interesadas y las preguntas que surjan de ellos puedan ser respondidas en el momento para asegurar la calidad de lo desarrollado durante el sprint.
Sprint Retrospective ( Retrospectiva ): Esta reunión ocurre al final del Sprint, luego de terminar la Sprint Review y tiene como objetivo la de reflexionar sobre el último Sprint e identificar posibles mejoras para el próximo.
Refinamiento: Es una práctica recomendada para asegurar que éste siempre preparado el Product Backlog. Sigue un patrón similar al resto y tiene una agenda fija especifica en cada Sprint. Los participantes de esta reunión es todo el equipo Scrum para que, entre todos los miembros, puedan aclarar los requerimientos.