Slide 1

Slide 1 text

@aartiles24 #DevOpsDaysMadrid2023 Martillos y Clavos La ley del clavo de oro Alfredo Artiles

Slide 2

Slide 2 text

Lea las instrucciones de esta charla y consulte a su consultor de cabecera @aartiles24 #DevOpsDaysMadrid2023

Slide 3

Slide 3 text

“Supongo que es tentador pensar que, si la única herramienta que tienes es un martillo, puedes tratar cualquier cosa como si fuera un clavo.” Abraham Maslow @aartiles24 #DevOpsDaysMadrid2023

Slide 4

Slide 4 text

Martillo de Maslow Sesgo cognitivo Tendencia excesiva de utilizar una herramienta familiar para resolver un problema desconocido. @aartiles24 #DevOpsDaysMadrid2023

Slide 5

Slide 5 text

Ejemplos de caer el Martillo de Maslow • Uso excesivo de un lenguaje de programación • Aplicación de patrones de diseño inadecuados • Dependencia excesiva de ciertas librerías o frameworks • Fijación en una arquitectura especí fi ca • Ignorar nuevas tecnologías o enfoques @aartiles24 #DevOpsDaysMadrid2023

Slide 6

Slide 6 text

Martillakus @aartiles24 #DevOpsDaysMadrid2023

Slide 7

Slide 7 text

El Reto Integrar y el producto y equipo de una empresa adquirida @aartiles24 #DevOpsDaysMadrid2023

Slide 8

Slide 8 text

Estado del equipo Cultura de desarrollo de producto diferente a la nuestra. Sin embargo: • El equipo estaba motivado y orgulloso de su producto. • El mercado valoraba el producto. Por eso les adquirimos. • Entregaban valor incluso a mayor velocidad que nuestros equipos. @aartiles24 #DevOpsDaysMadrid2023

Slide 9

Slide 9 text

Despliegues manuales QA manual Sprints de 30 días No hacen pair programming Ramas que duran semanas Front y back waterfall TDD CI/CD T-Shaped Pair programming Sprints 15 de días TBD Vertical slicing Problemas del nuevo equipo Problemas del nuevo equipo @aartiles24 #DevOpsDaysMadrid2023

Slide 10

Slide 10 text

Despliegues manuales QA manual Sprints de 30 días No hacen pair programming Ramas que duran semanas Front y back waterfall Prácticas del nuevo equipo @aartiles24 #DevOpsDaysMadrid2023

Slide 11

Slide 11 text

¿Entonces dónde están mis clavos? … y tornillos, tuercas, etc. @aartiles24 #DevOpsDaysMadrid2023

Slide 12

Slide 12 text

The Product Development Triathlon Delay vs Friction @aartiles24 #DevOpsDaysMadrid2023

Slide 13

Slide 13 text

Las 4 etapas de la competencia ¿Y si no sabes qué problemas tienes? Incompetente Competente Consciente Nivel 2: Incompetente Consciente Nivel 3: Competente Consciente Inconsciente Nivel 1: Incompetente Inconsciente Nivel 4: Competente Inconsciente Four stages of competence @aartiles24 #DevOpsDaysMadrid2023

Slide 14

Slide 14 text

¿Por qué adoptamos ciertas prácticas? ¿Qué problemas nos resuelven? @aartiles24 #DevOpsDaysMadrid2023

Slide 15

Slide 15 text

Automatización de despliegues • Baja frecuencia de despliegues • Alto tiempo sin aportar valor a clientes • Errores humanos • Alto tiempo de recuperación ante fallas • Releases estresantes ¿Qué problemas soluciona? @aartiles24 #DevOpsDaysMadrid2023

Slide 16

Slide 16 text

Problemas de segundo orden • ¿Por qué constituyen un problema estos problemas? • ¿Qué impacto tienen en el negocio? @aartiles24 #DevOpsDaysMadrid2023

Slide 17

Slide 17 text

Problemas de segundo orden ¿Por qué constituyen un problema estos problemas? • Burnout • Riesgo de perder personas clave • Pérdida de conocimientos • Coste de oportunidad • Alto tiempo sin aportar valor a clientes • Frustración de clientes • Bajas • Baja reputación • Releases estresantes • Baja frecuencia de despliegues • Alto tiempo sin aportar valor a clientes • Errores humanos • Alto tiempo de recuperación ante fallas • Ramas de cambios que duran días o semanas • Dependencias desactualizadas por miedo a romper cosas • Tasa de errores por release alto @aartiles24 #DevOpsDaysMadrid2023

Slide 18

Slide 18 text

Identificando y priorizando problemas Encuestar al equipo para votar los problemas con los que se identi fi can y cuáles consideran más críticos @aartiles24 #DevOpsDaysMadrid2023

Slide 19

Slide 19 text

Los problemas a resolver • Releases estresantes • Burnout • Riesgo de perder personas clave • Pérdida de conocimientos • Coste de oportunidad • Alto tiempo sin aportar valor a clientes • Frustración de clientes • Bajas • Baja reputación Según la encuesta al equipo @aartiles24 #DevOpsDaysMadrid2023

Slide 20

Slide 20 text

¿Las soluciones? ¡Me las sé! ¿Ya puedo martillar? Despliegues manuales CI/CD @aartiles24 #DevOpsDaysMadrid2023

Slide 21

Slide 21 text

¿Cómo? ¿Qué implicaciones tiene? Automatizar Despliegues @aartiles24 #DevOpsDaysMadrid2023

Slide 22

Slide 22 text

Pensamiento Sistémico Enfoque holístico que se centra en entender cómo las partes de un sistema se interrelacionan dentro del contexto de un sistema más grande. @aartiles24 #DevOpsDaysMadrid2023

Slide 23

Slide 23 text

Sistemas complejos Un conjunto de elementos que están coherentemente organizados para conseguir algo. Compuesto por: • Elementos: reservas • Interconexiones: fl ujos • Propósito / objetivo Se caracterizan por: • Ser adaptativos • Ser dinámicos • Orientado a objetivos • Auto preservación • Comportamientos evolutivos Más que la suma de sus partes @aartiles24 #DevOpsDaysMadrid2023

Slide 24

Slide 24 text

Tráfico de una ciudad • Elementos interdependientes: automóviles, semáforos, señales de trá fi co, peatones, condiciones del clima • Factores in fl uyentes: accidentes, condiciones climáticas, decisiones de conductores • Comportamiento global impredecible y emergente • Di fi cultad en prever y controlar el comportamiento del sistema Ejemplo de sistema complejo @aartiles24 #DevOpsDaysMadrid2023

Slide 25

Slide 25 text

Bucle de causalidad @aartiles24 #DevOpsDaysMadrid2023

Slide 26

Slide 26 text

Bucles de retroalimentación Serie de conexiones causales entre eventos o acciones que forman un bucle cerrado. Pueden reforzar o balancear el comportamiento del sistema. Bucle de causalidad @aartiles24 #DevOpsDaysMadrid2023

Slide 27

Slide 27 text

¿Por qué es crucial el pensamiento sistémico para el desarrollo de producto? @aartiles24 #DevOpsDaysMadrid2023

Slide 28

Slide 28 text

Evolución de habilidades gracias al pensamiento sistémico Habilidad Iniciada Experimentada Enfoque de Pensamiento Pensamiento lineal, reacciona a eventos especí fi cos Comprende los bucles de retroalimentación, busca patrones y conexiones Resolución de Problemas Aplica parches a los síntomas de los problemas Identi fi ca las causas raíz y proporciona soluciones a largo plazo Gestión de Riesgos Puede tener di fi cultades para prever posibles problemas Anticipa riesgos y consecuencias debido a la comprensión de la dinámica del sistema E fi ciencia y Optimización Se enfoca en completar tareas Busca oportunidades de optimización y e fi ciencia del sistema completo Comunicación y Colaboración Puede tener di fi cultades para explicar las interacciones del sistema Comunica efectivamente sobre el comportamiento del sistema Diseño y Arquitectura Probablemente sigue diseños establecidos por otros Contribuye a las decisiones de diseño y arquitectura del sistema @aartiles24 #DevOpsDaysMadrid2023

Slide 29

Slide 29 text

Enrico Zaninotto, 2002 “La irreversibilidad es uno de los principales impulsores de la complejidad” FROM X PROGRAMMING TO THE X ORGANISATION @aartiles24 #DevOpsDaysMadrid2023

Slide 30

Slide 30 text

Flujos de sistemas de producción adaptable y flexible • Flujo de trabajo • Flujo conocimiento • Flujo de decisión • Flujo de información Enrico Zaninotto en The XP 2002 Conference @aartiles24 #DevOpsDaysMadrid2023

Slide 31

Slide 31 text

Las 3 vías de la cultura DevOps • 1ra: Flujo/Pensamiento Sistémico • 2da: Ampli fi car Bucles de Retroalimentación • 3ra: Cultura de Experimentación Continua y Aprendizaje Flujo de valor tecnológico: hipótesis de negocio → servicio habilitado por tecnología que entrega valor al cliente The Three Ways: The Principles Underpinning DevOps @aartiles24 #DevOpsDaysMadrid2023

Slide 32

Slide 32 text

Bucles de retroalimentación presentes en el desarrollo de producto Bucle de retroalimentación Baja E fi cacia Alta E fi cacia Validar que un cambio de código local funciona 2 minutos 5-15 segundos (dependiendo de la elección tecnológica) Encontrar la causa raíz de un defecto 4-7 días 1 día Validar que un componente se integra con otros componentes 3 días - 2 semanas 2 horas Validar que un cambio cumple con los requisitos no funcionales 3 meses 1 día - 1 semana (dependiendo del alcance del cambio) Ser productivo en un nuevo equipo 2 meses 4 semanas Obtener respuestas a una consulta técnica interna 1-2 semanas 30 minutos Lanzar un nuevo servicio en producción 2-4 meses 3 días Validar que un cambio fue útil para el cliente 6 meses o nunca 1 - 4 semanas (dependiendo del alcance del cambio) Maximizing Developer Effectiveness @aartiles24 #DevOpsDaysMadrid2023

Slide 33

Slide 33 text

¿Cómo aplicar el pensamiento sistémico al reto de cambiar la cultura de desarrollo de un equipo? • Entender el sistema: sus reservas, fl ujos, sus cuellos de botella, sus bucles de retroalimentación • Entender identi fi car y anticipar posibles comportamientos emergentes • Entender posibles resistencias al cambio debido a las interacciones y la retroalimentación entre sus componentes. • Minimizar riesgos. @aartiles24 #DevOpsDaysMadrid2023

Slide 34

Slide 34 text

Entendiendo el flujo de valor Diagrama y simulación @aartiles24 #DevOpsDaysMadrid2023

Slide 35

Slide 35 text

Entendiendo el flujo de valor Flujo de desarrollo local Diagrama y simulación @aartiles24 #DevOpsDaysMadrid2023

Slide 36

Slide 36 text

Entendiendo el flujo de valor Feature branching Diagrama y simulación @aartiles24 #DevOpsDaysMadrid2023

Slide 37

Slide 37 text

Entendiendo el flujo de valor Ratio de defectos detectados en QA Diagrama y simulación @aartiles24 #DevOpsDaysMadrid2023

Slide 38

Slide 38 text

Entendiendo el flujo de valor Esfuerzo de QA manual Diagrama y simulación @aartiles24 #DevOpsDaysMadrid2023

Slide 39

Slide 39 text

Entendiendo el flujo de valor Frecuencia de despliegue Diagrama y simulación @aartiles24 #DevOpsDaysMadrid2023

Slide 40

Slide 40 text

Entendiendo el flujo de valor Ratio de fallos por despliegue Diagrama y simulación @aartiles24 #DevOpsDaysMadrid2023

Slide 41

Slide 41 text

Entendiendo el flujo de valor Solución: Automatización de despliegues Diagrama y simulación @aartiles24 #DevOpsDaysMadrid2023

Slide 42

Slide 42 text

Ciclo vicioso Burnout y fallos Bucle de causalidad @aartiles24 #DevOpsDaysMadrid2023

Slide 43

Slide 43 text

Alimentando el Ciclo vicioso Los despliegues manuales alimentan el bucle de burnout y fallos Bucle de causalidad @aartiles24 #DevOpsDaysMadrid2023

Slide 44

Slide 44 text

Rompiendo el ciclo vicioso Automatización de despliegue como clave para romper el bucle de burnout y fallos Bucle de causalidad @aartiles24 #DevOpsDaysMadrid2023

Slide 45

Slide 45 text

Entendiendo el flujo de valor Solución: Automatización de despliegues Diagrama y simulación @aartiles24 #DevOpsDaysMadrid2023

Slide 46

Slide 46 text

Entendiendo el flujo de valor Flujo del backlog a producción si el ratio de fallos fuese cero Diagrama y simulación @aartiles24 #DevOpsDaysMadrid2023

Slide 47

Slide 47 text

Automatización de pruebas Otra clave para romper el ciclo de burnout y fallos Bucle de causalidad @aartiles24 #DevOpsDaysMadrid2023

Slide 48

Slide 48 text

Entendiendo el flujo de valor Ciclo vicioso de fallos y burnout Diagrama y simulación Ω @aartiles24 #DevOpsDaysMadrid2023

Slide 49

Slide 49 text

Entendiendo el flujo de valor Flujo del backlog a producción si 4 de cada 10 cambios desplegados son bugs Diagrama y simulación @aartiles24 #DevOpsDaysMadrid2023

Slide 50

Slide 50 text

https://bit.ly/systems-thinking-dev @aartiles24 #DevOpsDaysMadrid2023

Slide 51

Slide 51 text

Conclusiones • Evita confundir los problemas con las soluciones y viceversa. • Enfócate intensamente en los problemas, no en las soluciones. • Asegúrate de entender qué problemas están destinadas a resolver tus prácticas. • A veces no sabemos lo que no sabemos. • Expón a tus compañeros a esos escenarios y desafíos potenciales. • Evita implementar soluciones sin entender primero sus implicaciones: es fundamental comprender el sistema. • El modelado de sistemas es una herramienta valiosa para comunicar y educar. @aartiles24 #DevOpsDaysMadrid2023

Slide 52

Slide 52 text

“Si necesitas clavar un clavo, toda solución te parecerá un martillo.” Ley del clavo de oro @aartiles24 #DevOpsDaysMadrid2023

Slide 53

Slide 53 text

Bibliografía • Thinking in Systems • The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations • The Project Phoenix • Accelerate and DORA Reports • Antifragile: Things that Gain from Disorder • SystemsThinking.dev @aartiles24 #DevOpsDaysMadrid2023

Slide 54

Slide 54 text

Herramientas • Insights Maker: Free modeling and simulation tool • LOOPY: Free and open source causal loops and simulation diagraming tool • System Mapping Toolkit: Miro template • kumu.io: Systems mapping • Stella by iseesystems: Expensive modeling and simulation tool • Systems tools by Will Larson, free and open source @aartiles24 #DevOpsDaysMadrid2023

Slide 55

Slide 55 text

Gracias alfredoartiles.com ¿Workshop? 👇 @aartiles24 #DevOpsDaysMadrid2023