TEMA 2.3 | Metod. Ágiles
Metodologías Ágiles
- Se han convertido en “mainstream”.
- Se logra una mayor productividad, lanzamientos más rápidos, y experiencias mejoradas de los clientes.
- Las metodologías ligeras aparecen para sustituir a las metodologías pesadas gracias a su capacidad de adaptación y orientación al público.
- Las metodologías ágiles permiten realizar proyectos más eficientemente que con procesos tradicionales.
- Una de las cualidades más significativas de estas metodologías es su sencillez.
- Los managers que dirigen proyectos complejos a menudo combinan ambos métodos para darles más flexibilidad y mejores resultados.
Programación Extrema - XP
- Creada por Kent Beck.
- El problema de los proyectos de desarrollo de software no es el cambio, sino la incapacidad de afrontar el cambio cuando se produce.
Ciclo de Vida Iterativo
- Sustituye al ciclo de vida en cascada.
- El ciclo iterativo se adapta más a los proyectos con requisitos muy cambiantes en todo momento, mientras que en el ciclo en cascada no.
- Las metodologías ágiles utilizan ciclos iterativos e incrementales.
Manifiesto Agile
- Establece los valores y principios que permiten a los equipos desarrollar software rápidamente, respondiendo a los cambios que puedan surgir.
- Cuatro Valores Ágiles:
- Valorar a los individuos y las interacciones del equipo de desarrollo sobre el proceso y las herramientas.
- Desarrollar software que funciona más que conseguir una documentación exhaustiva: Documentos cortos y centrados en lo fundamental.
- La colaboración con el cliente más que la negociación de un contrato:Tener buena relación y confianza con el cliente. Interacción constante.
- Responder a los cambios más que seguir estrictamente un plan.
- Doce Principios del Manifiesto:
- La prioridad es satisfacer al cliente mediante entregas tempranas y continuas de software que le aporten valor.
- Dar la bienvenida a los cambios para que el cliente tenga una ventaja competitiva.
- Entregar frecuentemente software que funcione desde 2 semanas a 2 de meses con el menor intervalo de tiempo posible entre entregas.
- La gente del negocio y los desarrolladores deben trabajar juntos a lo largo del proyecto. Negocio y tecnología coordinados.
- Construir el proyecto en torno a individuos motivados. Darles el entorno, el apoyo necesario y confiar en ellos para finalizar el trabajo.
- El diálogo cara a cara es el método más eficiente y efectivo para comunicar información dentro de un equipo de desarrollo.
- El software que funciona es la medida fundamental de progreso. Ver el software funcionando, como me haría sentir como usuario.
- Los promotores, desarrolladores y usuarios deberían ser capaces de mantener una paz constante. Descansar.
- La atención continúa a la calidad técnica y al buen diseño mejora la agilidad.
- La simplicidad es esencial. Minimizar lo accesorio.
- Las mejores arquitecturas, requisitos y diseños surgen de los equipos organizados por sí mismos.
- En intervalos regulares, el equipo se reúne y reflexiona respecto a cómo llegar a ser más efectivo. Según esto, ajusta su comportamiento.
Scrum
- Marco de trabajo de carácter empírico.
- El empirismo defiende que el conocimiento procede de la experiencia.
- Fundado por Schwaber y Beedle en 2002.
- Emplea un enfoque iterativo e incremental para optimizar la predictibilidad y el control del riesgo.
- Ken Schwaber y Jeff Sutherland desarrollaron “La Guía Definitiva de Scrum: Las Reglas del Juego”.
- Scrum tiene tres pilares fundamentales que articulan los procesos: transparencia, inspección y adaptación.
- Transparencia: Los aspectos significativos del proceso deben ser visibles para aquellos que son responsables del resultado.
- Inspección: Los usuarios de Scrum deben inspeccionar los artefactos de Scrum y el progreso para detectar variaciones indeseadas.
- Adaptación: Si se detecta uno o más aspectos de un proceso como inaceptables, el proceso o el material debe adaptarse.
¿Quién forma un Equipo Scrum?
- Product Owner: Responsable de maximizar el valor del producto y el trabajo del equipo de desarrollo.
- Development Team: Profesionales que realizan el trabajo de entregar un “incremento” de producto “terminado” al final de cada Sprint.
- Scrum Master: Responsable de asegurar que Scrum se entienda y adopte una especie de “coach” del grupo.
Los Scrum Team son autoorganizados y multifuncionales.
- Los equipos multifuncionales tienen todas las competencias necesarias para llevar a cabo el trabajo sin depender de agentes externos.
- El modelo de equipo en Scrum está diseñado para optimizar la flexibilidad, la creatividad y la productividad.
- Las entregas incrementales de producto terminado aseguran que siempre estará disponible una versión potencialmente útil y funcional.
- Sprint:
- Importante: El término Sprint significa lo mismo que el término Iteración.
- Bloqueo de tiempo de un mes o menos durante el cual se crea un incremento de producto “terminado” utilizable y desplegable.
- Product BackLog:
- Lista ordenada de los requisitos.
- Nunca está completa.
- Es dinámica debido a los cambios de requisitos de negocio, condiciones de mercado, etc.
- Sprint Planning:
- Reunión donde se crea el BackLog del sprint.
- Sprint Backlog:
- Conjunto de elementos de la Lista de Producto seleccionados para el Sprint.
- Plan para entregar el Incremento de producto y conseguir el Objetivo del Sprint.
- Sprint Review:
- Reunión con el cliente en la que se recibe su feedback.
- Sprint Retrospective:
- Retrospectiva del Sprint en la que se seleccionan las mejoras pequeñas.
Definiciones
- Cambio Continuo: Programa usado en un entorno real, que debe necesariamente cambiar o se volverá menos útil en ese entorno.
- Complejidad Creciente: La estructura de un programa tiende a ser cada vez más compleja y se deben dedicar recursos extras.
- Evolución Prolongada del Programa:
- La evolución de los programas es un proceso autorregulativo.
- Los atributos de los sistemas (tamaño, tiempo y errores documentados) son aproximadamente invariantes para cada entrega.
- Estabilidad Organizacional: La velocidad de desarrollo es aproximadamente constante e independiente de los recursos dedicados al desarrollo.
- Conservación de la Familiaridad: El cambio incremental en cada entrega es casi constante durante el tiempo de vida del programa.
- Crecimiento Continuado: La funcionalidad ofrecida por los sistemas tiene que crecer continuamente para la satisfacción de los usuarios.
- Decremento de la Calidad: La calidad de los sistemas software comenzará a disminuir a menos que se adapten a los cambios de su entorno.
- Realimentación del Sistema:
- Sistemas de realimentación multiagente.
- Sistemas de realimentación multibucle.
- Deben ser tratados como sistemas de realimentación para lograr una mejora del producto.
Método Lean StartUp
- Moderna lógica que guía todo proceso de investigación aplicado al mundo de los negocios.
- La necesidad de investigar comienza por la existencia de problemas.
- Los problemas generan una sensación de malestar o incomodidad de la que queremos salir.
- La investigación busca transformar esa situación incierta mediante la búsqueda del conocimiento.
- Las Startups son mecanismos catalizadores de ideas en productos.
- Normalmente suele utilizarse para aquellas que tienen un fuerte componente tecnológico.
- El método Lean Startup pide:
- Un pequeño producto que se va a probar si funciona, aunque tenga poca capacidad predictiva o prospectiva.
- Predominan más las ideas “a posteriori”, que las ideas “a priori”.
- Se diferencia de otros métodos (Lean manufacturing) en que se desconocen los atributos del producto que el consumidor considera valioso.
Eric Ries - Aprendizaje Validado
- Método riguroso empleado para demostrar empíricamente que un equipo ha descubierto información valiosa sobre posibilidades del negocio.
- Mantiene relación con el Lean Startup en que la idea hipotética debe ser tenida en cuenta por el cliente, experimentarla y darnos feedback.
- A partir de la observación y experimentación podremos valorar nuestras hipótesis, y tomar decisiones.
- La experimentación es fundamental para probar las hipótesis claves del negocio:
- Las startups todavía no saben quiénes serán sus consumidores o cuáles serán sus productos.
- A medida que el mundo se vuelve más incierto, cada vez es más difícil predecir el futuro.
- Las planificaciones y previsiones sólo son precisas si se basan en una historia de funcionamiento larga y estable (entorno estático).
Eric Ries - Idea de Pivotar
- Consiste en probar una hipótesis diferente porque el cliente no está satisfecho con el producto mínimo viable.
- Imaginemos que el cliente no está dispuesto a pagar la cantidad planteada o el segmento de edad no es el adecuado.
- El objetivo del producto mínimo viable (PMV) es probar la hipótesis del negocio:
- No es necesariamente el producto más pequeño que se pueda imaginar.
- Es la forma más rápida de entrar en el circuito de feedback de Crear-Medir-Aprender con el mínimo esfuerzo.
- Al contrario que con el tradicional desarrollo de productos, el objetivo del PMV es empezar el proceso de aprendizaje, no acabarlo.
Enfoque Lean
- Las personas no estamos acostumbradas a razonar de esta manera, creemos tener a priori, antes de la experimentación.
- Partimos de un ideal, de una idea perfecta, acabada, completa, que nos hace generalizar y pensar que tiene capacidad de prospección.
- Método del ensayo y error.
- Tenemos que aprender a equivocarnos, y a que equivocarse no es fracasar.
- El Lean Start-up modifica la forma en que accedemos al conocimiento.
- Las mejores soluciones y las decisiones adecuadas nacen de la colaboración. Inteligencia colaborativa.
- Las startups no pueden estar centradas en sí mismas, sino que deben escuchar al cliente y elaborar sus productos, prestándoles atención.
- Debemos cambiar la ruta si el feedback nos dice que estamos equivocados.
Conclusión
- El método Lean Startup puede resumirse en los siguientes elementos clave:
- Ideación: Importancia de la creación de ideas nuevas, hipótesis o conjeturas.
- Experimentación: Comprobación de ideas-producto hipotéticas mediante datos y feedback.
- Pivotación: Capacidad para reajustar el producto a las necesidades del cliente, reelaborando el PMV y cambiando la hipótesis de partida.
- Iteración: Necesidad de repetir el proceso, reconociendo la existencia de errores y dificultades como parte del camino.
- El método Lean Startup nos obliga a afrontar la dura realidad que propone un entorno de extrema incertidumbre.
- El optimismo es uno de los valores clave de los integrantes de una startup.
- También es clave la toma de decisiones.