Small Safe Steps: El secreto de la agilidad
ESDescription
Esta charla presenta el enfoque Small Safe Steps (3S), demostrando cómo el slicing despiadado de producto y técnico minimiza riesgos y acelera el aprendizaje mediante deployments frecuentes y rapid feedback.
🎯 Key Learning
Lograr verdadera agilidad depende del enfoque Small Safe Steps (3S), que se centra en dividir despiadadamente tanto el trabajo de producto como técnico en los incrementos más pequeños posibles para habilitar deployments frecuentes. Esta estrategia reduce riesgo y acelera el aprendizaje proporcionando ciclos de feedback cortos que validan valor de negocio y estabilidad del sistema en entornos de producción reales.
En esencia, navegar el desarrollo de software complejo usando este enfoque es como cruzar un río caudaloso pisando solo piedras pequeñas y estables—te permite probar tu apoyo y cambiar de dirección frecuentemente en lugar de arriesgar todo en un único salto masivo.
📋 Key Points
- Agilidad mediante feedback: La verdadera agilidad se basa en inspección y adaptación frecuentes vía ciclos de feedback cortos tanto para negocio (el "qué") como para tecnología (el "cómo").
- Producción como valor: El código tiene cero valor y solo representa riesgo y coste hasta que se hace deploy a producción; el aprendizaje real solo ocurre en un entorno live.
- Small Safe Steps (3S): La estrategia core implica hacer transiciones como una secuencia de small, verifiable y reversible steps para minimizar riesgo.
- Built-in Quality: La seguridad se logra integrando calidad en el proceso desde el inicio usando prácticas XP (TDD, ATDD) y optimizando para un fast time to recover (MTTR) en lugar de intentar prevenir todos los fallos.
- Psychological Safety: La seguridad del equipo no es solo cultural sino también técnica; requiere testing robusto, observability y la confianza de que los deployments no causarán escenarios de "firefighting".
- Merciless Slicing:
- Product/Vertical Slicing: Dividir user stories en los incrementos end-to-end más pequeños para validar hipótesis rápidamente y maximizar la cantidad de trabajo no hecho.
- Technical Slicing: Descomponer cambios técnicos (arquitectura, persistencia) para habilitar continuous integration y trunk-based development diario.
- Desacoplar Deployment de Release: Separar el acto de poner código en producción de hacerlo visible a los usuarios (usando feature toggles o dark launching) permite validación técnica sin riesgo de negocio.
- Optimización de Small Batch: Reducir batch size minimiza "transaction costs" (esfuerzo de deployment) y "holding costs" (valor retrasado). Los small batches hacen significativamente más fácil identificar y arreglar bugs.
- Continuous Delivery: El objetivo principal de continuous delivery es hacer que trabajar en small batches sea seguro y económicamente viable.
- Estrategias técnicas: Usar técnicas como Dark Launching, Branch by Abstraction y el patrón "Expand and Contract" para manejar migraciones complejas e implementaciones paralelas de forma segura.
