Lean Software Development: Un Agile más efectivo
ESDescription
Esta charla explora cómo los incentivos desalineados y la hero culture llevan a los equipos a la trampa de la complejidad, abogando por Lean Software Development y simplificación proactiva para reducir el coste basal y la complejidad accidental del software.
🎯 Key Learning
Las organizaciones deben escapar de la "trampa de la complejidad" realineando incentivos lejos de la "hero culture" hacia la simplificación proactiva, reconociendo que todo el código existente conlleva un coste basal continuo que eventualmente puede consumir toda la capacidad de innovación del equipo. El éxito sostenible requiere la eliminación continua de desperdicio y complejidad accidental mediante principios Lean y small, safe steps, asegurando que el software siga siendo un activo profesional en lugar de un pasivo en putrefacción.
📋 Key Points
- Realidad del Software: El desarrollo de software es una actividad de equipo y un medio para un fin, no un fin en sí mismo.
- Coste Basal: Cada línea de código añadida tiene un coste basal continuo (mantenimiento, carga cognitiva e impacto en features futuras) que existe hasta que ese código se elimina.
- La falacia de la construcción: A diferencia de la construcción física, la evolución del software es constante; si no se gestiona, el coste acumulativo de las features existentes eventualmente consumirá toda la capacidad de innovación del equipo.
- Complejidad esencial vs. accidental: La complejidad esencial representa reglas de negocio, mientras que la complejidad accidental es desperdicio que surge de efectos secundarios de implementación que deberían minimizarse proactivamente.
- Desalineación de incentivos: Las culturas que recompensan "coleccionar tecnologías", "resume-driven development" o "hero culture" (celebrar firefighting de último minuto) incentivan complejidad innecesaria y comportamiento reactivo.
- Obsolescencia del software: El software envejece como la leche, no como el vino; requiere actualizaciones constantes porque su entorno y dependencias cambian a un ritmo que el equipo no controla.
- Cuatro dimensiones del valor: El valor profesional incluye incrementar ingresos, proteger ingresos, reducir costes y —más crucial— evitar costes futuros.
- Principios Lean: Los equipos de alto rendimiento utilizan Lean software development para reducir desperdicio, amplificar aprendizaje y entregar en small, safe steps.
- Decidir lo más tarde posible: Retrasar decisiones irreversibles permite a los equipos mantener opciones y actuar con mejor información una vez que la "siguiente pieza del puzzle" es visible.
- Simplificación proactiva: La profesionalidad implica simplificar proactivamente y eliminar código o features innecesarias para reducir tech debt y drama.
- Calidad y velocidad: No existe trade-off entre calidad y velocidad a medio plazo; integrar calidad desde el inicio es la única forma de mantener un flujo de entrega sostenible.
- Mitigación de hero culture: Las organizaciones deben reemplazar la hero culture con prácticas sostenibles como pairing, blameless post-mortems y knowledge sharing para evitar single points of failure.
