Ahora viene el concepto de desarrollo Lean. El lean manufacturing (también conocido como ‘producción apretada’, ‘manufactura esbelta’, ‘producción limpia’ o ‘producción sin desperdicios’) es un modelo de gestión de origen japonés que se enfoca en minimizar las pérdidas de los sistemas de manufactura al mismo tiempo que maximiza la creación de valor para el cliente final.
Para ello utiliza la mínima cantidad de recursos, es decir, los estrictamente necesarios para el crecimiento. La creación de flujo se focaliza en la reducción de los ocho tipos de "desperdicios" en productos manufacturados:
Sobreproducción
Tiempo de espera
Transporte
Exceso de procedimientos
Inventario
Movimientos
Defectos
No utilizar la creatividad de la gente
Lean Startup, o el proceso de desarrollo tecnologico Lean es una filosofia que combina elementos de Lean y Agile para desarrollar productos y servicios de manera rápida y eficiente, centrándose en la creación de valor para los clientes y la maximización de la eficiencia operativa.
El enfoque Lean se basa en los principios desarrollados en Toyota Production System, que busca eliminar el desperdicio y optimizar los procesos. Se centra en la reducción de tiempos de espera, inventarios y actividades que no agregan valor. El objetivo principal del enfoque Lean es eliminar todo lo que no sea esencial y mejorar continuamente la calidad y eficiencia del proceso.
Pero por otro lado y mucho mas alla de verdad, se basa en el Manifiesto Ágil, que valora la interacción humana, la colaboración y la adaptabilidad a los cambios. Los métodos ágiles se centran en desarrollar productos en incrementos pequeños y entregas frecuentes, permitiendo una rápida retroalimentación y adaptación a medida que se aprende más sobre las necesidades de los usuarios.
En el contexto de Lean Startup, se toman elementos de ambos enfoques, pero se pone mayor énfasis en el enfoque ágil. La principal diferencia radica en el objetivo final de cada enfoque. Mientras que el enfoque Lean se centra en la optimización de los procesos y la reducción de desperdicio, el enfoque ágil se centra en la entrega rápida y continua de valor para los usuarios.
En Lean Startup, se aplican principios ágiles, como el desarrollo iterativo e incremental, la retroalimentación continua de los usuarios y la experimentación rápida, para validar hipótesis y aprender sobre las necesidades y preferencias del mercado. Se enfoca en crear un MVP y luego iterar y pivotar según los comentarios y los datos obtenidos de los usuarios.
Se basa en la idea de realizar iteraciones rápidas y constantes para mejorar continuamente el producto y adaptarse a las necesidades cambiantes del mercado. En lugar de buscar la perfección desde el principio, se prioriza el lanzamiento temprano de un MVP y se recopila retroalimentación de los usuarios de manera temprana y frecuente. Esto permite obtener información valiosa sobre cómo mejorar y ajustar el producto en futuras iteraciones.
En el desarrollo Lean, se reconoce que es más perjudicial quedarse paralizado por la indecisión que tomar decisiones erróneas. Se fomenta la toma de decisiones basada en datos y evidencia, pero también se acepta que es natural cometer errores y que es mejor aprender de ellos rápidamente y corregir el rumbo en lugar de quedar atrapado en la inacción.
Otro principio clave del desarrollo Lean es medir y adaptar. Se pone énfasis en la recopilación de datos y métricas relevantes para evaluar el desempeño del producto y la satisfacción de los usuarios. Estas métricas se utilizan para tomar decisiones informadas sobre qué mejoras y ajustes son necesarios en el producto. La retroalimentación continua de los usuarios y el análisis de datos permiten identificar oportunidades de mejora y optimización en cada iteración.
Entonces, el proceso de desarrollo Lean se basa en la realización de muchas iteraciones rápidas, la toma de decisiones basada en datos y la adaptación constante del producto. Se busca eliminar el desperdicio y maximizar el valor para el cliente a través de mejoras continuas.
La medición y adaptación son componentes esenciales para guiar las decisiones y asegurar que el producto evolucione de manera efectiva y satisfactoria para los usuarios.
Por lo tanto, la filosofia LEAN puede crear desperdicios y problemas que vamos a ver ahora
El proceso de desarrollo lean, con su enfoque en iteraciones rápidas y constantes, puede aumentar la posibilidad de encontrar más bugs o errores en el producto. Eso lo llamo yo: del concepto al defecto. Esta mayor incidencia de bugs puede atribuirse a varios factores inherentes al enfoque ágil y a la velocidad del proceso.
La naturaleza del enfoque Lean implica iteraciones rápidas y frecuentes cambios en el producto. Esto puede generar un ritmo acelerado de desarrollo que, en ocasiones, puede dejar margen para la introducción de errores. La rapidez con la que se realizan los cambios y las iteraciones puede resultar en la falta de tiempo suficiente para una exhaustiva verificación y validación del código, lo que puede dar lugar a la aparición de bugs.
En el desarrollo Lean, se pone un mayor énfasis en la adaptación y la respuesta rápida a los cambios en comparación con la planificación exhaustiva y detallada de antemano. Si bien esto puede permitir una mayor flexibilidad y agilidad, también implica que los requisitos y las especificaciones del producto pueden estar menos definidos desde el principio. Esta falta de claridad inicial puede llevar a una mayor probabilidad de errores en las etapas iniciales del desarrollo.
En algunos casos, el enfoque Lean puede llevar a una mayor complejidad en el desarrollo del producto. La búsqueda de soluciones rápidas y la implementación de cambios frecuentes pueden dar lugar a la aparición de interdependencias y complicaciones no previstas, lo que aumenta el riesgo de introducir bugs en el proceso.
Honestemente, ¿Quién puede imaginar un coche que se para cada 3 km porque hay un problema en el motor porque el volante se quebró porque hay un error tipográfico en el tablero? Ahora, no estoy aqui para decir que las metodologias agiles y la filosofia ágil no sirven o son malas. Es obvio que su valor sobrepasa por muchos los problemas pero agil tiene el problema inherente de la calidad.
E echo existe un libro muy bueno que aborda el tema de la calidad en el contexto de metodologías ágiles. Se trata de Agile Testing: A Practical Guide for Testers and Agile Teams de Lisa Crispin y Janet Gregory. Este libro proporciona orientación práctica sobre cómo abordar la calidad en proyectos ágiles y cómo integrar las actividades de prueba en los ciclos de desarrollo ágil.
Agile Testing cubre diversos temas relacionados con la calidad en el desarrollo ágil, como la planificación y diseño de pruebas, la automatización de pruebas, la gestión de defectos, la colaboración entre los miembros del equipo ágil y los roles y responsabilidades de los testers en un entorno ágil.
El libro explora en detalle cómo las metodologías ágiles, como Scrum y XP (Extreme Programming), influyen en la forma en que se lleva a cabo el testing y cómo se puede lograr una calidad sólida en un entorno ágil. Además, proporciona consejos prácticos, ejemplos y estudios de casos que ilustran cómo aplicar los principios de testing ágil en situaciones reales.
"Agile Testing" es ampliamente reconocido como un recurso valioso para aquellos que buscan comprender cómo manejar los problemas de calidad en proyectos ágiles y cómo integrar eficazmente las actividades de prueba en un enfoque ágil.
Le voy a dar una representacion grafica de los problemas de calidad de una metodologia Agil mal manejada, como un SCRUM mal manejado.
Un enfoque mal gestionado de las iteraciones en Scrum puede resultar en la construcción de un producto final desordenado, lleno de bugs y con una estructura deficiente, similar a un rascacielos mal construido.
Si no se siguen correctamente los principios y las prácticas de Scrum, pueden surgir varios problemas que afectarán la calidad del producto.
Falta de planificación adecuada: Una planificación deficiente de las iteraciones puede llevar a la falta de claridad sobre los objetivos y las tareas a realizar en cada iteración. Esto puede resultar en una construcción desordenada y caótica del producto, con características mal implementadas y funcionalidades inconsistentes.
Falta de priorización efectiva: En Scrum, la priorización adecuada de los elementos del backlog es esencial para asegurar que las funcionalidades más importantes y de mayor valor para el cliente se aborden primero.
Si no se realiza una correcta priorización, es posible que se construyan características irrelevantes o de menor importancia, dejando de lado las más cruciales. Esto puede llevar a un producto final mal estructurado y con falta de utilidad para los usuarios.
Deficiente gestión de dependencias: En proyectos complejos, puede haber dependencias entre diferentes elementos del backlog o entre diferentes equipos de desarrollo. Si no se manejan adecuadamente estas dependencias y se coordina el trabajo entre los equipos, se corre el riesgo de construir un producto con inconsistencias y problemas de integración. Estas deficiencias pueden manifestarse en forma de bugs, funcionalidades que no funcionan correctamente o falta de coherencia en la experiencia del usuario.
Escasa atención a la calidad y las pruebas: Si las iteraciones en Scrum se centran únicamente en cumplir con los plazos y entregar nuevas funcionalidades sin prestar suficiente atención a la calidad y las pruebas, es probable que se construya un producto lleno de bugs y problemas. La falta de tiempo dedicado a realizar pruebas exhaustivas, tanto de unidad como de integración, puede resultar en un producto final inestable y propenso a errores.
Aqui esta una pequeña historia: imaginense: Una empresa constructora que decidió construir un rascacielos utilizando la metodología de SCRUM.
El equipo de construcción comenzó a trabajar en la base del edificio y, después de la primera iteración, se dieron cuenta de que el edificio parecía más bien una choza que un rascacielos
Sin embargo, no perdieron el ánimo y continuaron construyendo. Cada vez que terminaban una iteración, el equipo celebraba con fiestas y bebidas, aunque la altura del edificio seguía siendo desalentadora. A medida que el proyecto avanzaba, la calidad del edificio se volvía cada vez más cuestionable. En lugar de ser un rascacielos elegante y moderno, parecía más bien una pila de ladrillos mal colocados.
Finalmente, después de muchos meses, el equipo de construcción se dio cuenta de que no estaban avanzando lo suficientemente rápido y que el edificio era un fracaso total. Decidieron abandonar la metodología de pequeñas iteraciones y contrataron a un arquitecto para terminar el proyectoEso es mi recomendacion para ti, gerente de producto. Usa Agil. Usa Lean. Usalos. Pero ten cuidado del rascacielos SCRUM
Comentarios