Mostrando las entradas con la etiqueta DevOps. Mostrar todas las entradas
Mostrando las entradas con la etiqueta DevOps. Mostrar todas las entradas

jueves, septiembre 03, 2026

EAFIT 2026-02: cuatro formas de repensar los Procesos Modernos de Desarrollo de Software - Trabajos de los estudiantes de la Especialización en Desarrollo de Software

Durante mucho tiempo, hablar de procesos modernos de desarrollo de software parecía reducirse a una discusión sobre Agile, Scrum, DevOps o alguna combinación de prácticas conocidas.

Pero la ingeniería de software está entrando en dominios donde esa respuesta ya no es suficiente.

¿Qué proceso se necesita para desarrollar un sistema que debe adaptarse autónomamente al entorno? ¿Cómo cambia la ingeniería cuando el software está compuesto por agentes de inteligencia artificial que toman decisiones? ¿Cómo se valida un sistema de realidad aumentada donde la experiencia del usuario, la latencia y los derechos sobre el contenido son parte del producto? ¿Y cómo se desarrolla un videojuego cuando una compilación exitosa no significa necesariamente que el juego sea divertido?

Estas fueron algunas de las preguntas abordadas por los estudiantes del curso Procesos Modernos de Desarrollo de Software de la Universidad EAFIT.

El reto no consistía simplemente en escoger una metodología existente. Los equipos debían estudiar un dominio, identificar sus problemas particulares, analizar diferentes enfoques de ingeniería de software y diseñar un modelo de proceso capaz de responder a esas características.

El resultado son cuatro propuestas que exploran sistemas ciberfísicos, aplicaciones agénticas, realidad aumentada y videojuegos.

Una idea atraviesa los cuatro trabajos:

un proceso moderno de desarrollo de software no debería comenzar preguntando “¿qué metodología vamos a usar?”, sino “¿qué características de este sistema hacen necesario diseñar una forma particular de construirlo, validarlo y operarlo?”

1. MDM: cuando el software debe coordinarse con el mundo físico

MAPE-Driven Methodology (MDM): Aplicación a un Sistema de Riego Inteligente para Cultivos de Café

Joan Sebastian Herrera M., Santiago Mesa V., Sergio Alfredo Juanca V., Tomas Echavarria G. y Mateo Muñoz B.

El primer trabajo se mueve hacia un territorio particularmente complejo: los sistemas ciberfísicos autoadaptables.

En ellos el software deja de vivir únicamente dentro de computadores y comienza a interactuar directamente con sensores, dispositivos físicos y condiciones cambiantes del mundo real.

El caso estudiado es un sistema inteligente de riego para cultivos de café mediante drones. La propuesta combina Spec-Driven Development, Domain-Driven Design, DevOps y MAPE-K.

Uno de los aspectos más interesantes del modelo es la separación entre los equipos de hardware y software. Ambos pueden avanzar en paralelo utilizando un principio de “contrato primero”, sincronizándose únicamente en puntos definidos del proceso.

La metodología se estructura en seis fases y utiliza simulación, ciclos de retroalimentación, especificaciones y trazabilidad para conectar las decisiones técnicas con las reglas del dominio agrícola.

La lección: cuando el software controla el mundo físico, integración continua ya no significa únicamente integrar código. También hay que integrar modelos, sensores, hardware, simulaciones y comportamiento físico.

Abrir MDM en Google Drive

2. AGORA: desarrollar agentes de IA no es simplemente escribir prompts

AGORA: Modelo de Procesos para el Desarrollo de Aplicaciones Agénticas

Juan José Henao Aristizábal, Ioav Mizrachi Muñoz, Juan Miguel Castro Martínez y Julián Giraldo Chica

Las aplicaciones agénticas introducen un cambio importante en la ingeniería de software.

Un sistema tradicional recibe una entrada, ejecuta una lógica relativamente determinada y produce un resultado. Un agente basado en modelos de lenguaje puede interpretar un objetivo, elaborar un plan, seleccionar herramientas, ejecutar acciones, observar sus resultados y modificar posteriormente su estrategia.

Eso cambia incluso la forma de probar software.

La pregunta deja de ser únicamente “¿la prueba pasa?” y comienza a convertirse en “¿con qué nivel de confiabilidad logra el agente el objetivo y qué evidencia tenemos de ello?”.

AGORA integra cuatro perspectivas: Desarrollo Dirigido por Objetivos, Diseño de Sistemas Multiagente, Spec-Driven Development y DevOps/DevSecOps complementado con AgentOps.

El modelo propone cinco fases: Iniciativa, Organización, Especificación, Realización y Despliegue, y las materializa mediante ocho roles, catorce artefactos, treinta y una tareas y veintiséis productos de trabajo.

Una de sus ideas centrales es particularmente relevante para la ingeniería de agentes: la autonomía no debería descubrirse accidentalmente en producción; debe diseñarse explícitamente.

También propone que cada objetivo pueda rastrearse hasta criterios de evaluación y posteriormente hasta evidencia obtenida durante la operación.

La lección: cuando construimos agentes inteligentes, gobernanza, observabilidad, evaluación, autonomía y trazabilidad dejan de ser preocupaciones secundarias. Se convierten en parte del proceso de desarrollo.

Abrir AGORA en Google Drive

3. ARCA: en realidad aumentada, la experiencia también forma parte de la ingeniería

ARCA: un modelo de proceso para el desarrollo de software en realidad aumentada con aseguramiento continuo de experiencia, rendimiento y derechos

Quinnie Villarreal Aragón, José Manuel Carvajal, Jonathan Sandoval, Lina Ballesteros y Alejandro Ríos

La realidad aumentada combina software, dispositivos, sensores, contenido gráfico, interacción humana y representación del entorno físico.

Por eso una entrega técnicamente correcta puede seguir siendo una mala solución: puede tener problemas de latencia, usabilidad, registro espacial, experiencia de usuario, privacidad o derechos sobre el contenido.

ARCA —Augmented Reality Continuous Assurance— combina Human-Centered Design, DevOps, Event-Driven Architecture e Inteligencia Artificial Generativa.

La metodología propone siete fases y distingue explícitamente dos cadenas de construcción: una para software y otra para contenido.

También introduce tres cadencias anidadas, compuertas de retorno cuando una validación falla y responsabilidades específicas sobre producto, decisiones técnicas, derechos, licencias y responsabilidad social.

Esta última característica es especialmente interesante: privacidad, procedencia del contenido y responsabilidad social no aparecen simplemente como recomendaciones éticas al final del proyecto, sino como condiciones verificables dentro del proceso.

La lección: la calidad de un producto digital no siempre está contenida completamente en su código. En algunos dominios, experiencia, contenido, contexto de uso y responsabilidad también necesitan sus propios mecanismos de aseguramiento.

Abrir ARCA en Google Drive

4. Videojuegos: una build que compila no necesariamente es un buen juego

Metodología integrada para la ingeniería de software de videojuegos

Angélica María Martínez Carmona, Ángel David Martínez Doria, David Gustavo Moreno Morán, Diego Mauricio Sánchez Buitrago y Tomás Olarte Hernández

El desarrollo de videojuegos muestra con claridad los límites de pensar únicamente en requisitos funcionales.

Un videojuego puede compilar correctamente, superar sus pruebas unitarias y aun así no ser divertido, tener una mala experiencia de juego o producir comportamientos emergentes no previstos.

La propuesta utiliza como unidad fundamental el incremento jugable verificable: una porción integrada de código y contenido que permite comprobar una hipótesis sobre la experiencia.

El modelo combina DevOps, BDD complementado con aprendizaje por refuerzo e imitación, Sistemas Multiagente e Inteligencia Artificial Generativa.

Los ciclos de los incrementos oscilan entre una y dos semanas, pero diferentes actividades —integración continua, entrenamiento de agentes o playtesting— pueden tener cadencias distintas.

La metodología se formaliza mediante SPEM 2.0 en siete fases, doce roles y treinta y dos productos de trabajo. Sin embargo, establece un límite importante a la automatización: solo las personas pueden cerrar determinadas compuertas de decisión.

El playtesting humano conserva así la responsabilidad sobre algo que ningún pipeline puede determinar completamente: la experiencia del jugador.

La lección: automatizar más no siempre significa delegar más. En sistemas donde existe creatividad, comportamiento emergente o experiencia humana, automatización y autoridad son dos decisiones diferentes.

Abrir metodología de videojuegos en Google Drive


La principal lección aprendida

Después de revisar los cuatro trabajos aparece una conclusión que considero especialmente valiosa para quienes estudiamos ingeniería de software:

No existe un proceso moderno universal.

DevOps, Agile, Spec-Driven Development, Domain-Driven Design, BDD, sistemas multiagente, GenAI o diseño centrado en el humano no deberían entenderse como metodologías que compiten por ser “la correcta”.

Son conjuntos de principios, prácticas y mecanismos que responden a problemas diferentes.

El verdadero trabajo de ingeniería consiste en entender primero la naturaleza del sistema y después diseñar la manera en que debe construirse.

Los cuatro trabajos muestran precisamente eso.

- Un sistema ciberfísico necesita sincronizar software y hardware.
- Un agente necesita gobernar su autonomía y demostrar que alcanza - objetivos.
- Una aplicación de realidad aumentada necesita validar simultáneamente tecnología y experiencia.
- Un videojuego necesita verificar comportamiento sin eliminar la creatividad ni el juicio humano.

Quizá esa sea una buena definición de lo que significa estudiar Procesos Modernos de Desarrollo de Software:

no aprender cuál metodología utilizar, sino desarrollar el criterio necesario para comprender por qué, cuándo y bajo qué condiciones utilizar —o incluso diseñar— una forma determinada de desarrollar software.

Estos documentos son entregables académicos desarrollados por estudiantes de la Universidad EAFIT y se publican aquí como material de aprendizaje, discusión y consulta.



Saludos ágiles
Jorge Abad


sábado, febrero 10, 2024

El email de Jeff Bezos - que dió origen a la nube, a la apificación y a los microservicios - El correo electrónico que cambió la historia de la tecnología

 Dejo este post como como referencia inicial, prometo escribir sobre este en el futuro

--

En 2002, según la leyenda tecnológica, el fundador de Amazon, Jeff Bezos, emitió un mandato. Este mandato, también conocido como “Mandato API de Bezos” o “Mandato API de Amazon”, serviría para formar la columna vertebral de Amazon en el espacio web moderno, informando tanto el paradigma de desarrollo de API en la mentalidad corporativa como un enfoque general mejorado para la externalización, fue un mail que en su momento envió a sus 150 empleados en Amazon

--

  1. De ahora en adelante, todos los equipos expondrán sus datos y funcionalidades a través de interfaces de servicio.
  2. Los equipos deben comunicarse entre sí a través de estas interfaces.\
  3. No se permitirá ninguna otra forma de comunicación entre procesos: ni enlaces directos, ni lecturas directas del almacén de datos de otro equipo, ni modelo de memoria compartida, ni puertas traseras de ningún tipo. La única comunicación permitida es a través de llamadas de interfaz de servicio a través de la red.\
  4. No importa qué tecnología utilicen. HTTP, Corba, Pubsub, protocolos personalizados, no importa. A Bezos no le importa.
  5. Todas las interfaces de servicio, sin excepción, deben diseñarse desde cero para que sean externalizables. Es decir, el equipo debe planificar y diseñar para poder exponer la interfaz a desarrolladores en el mundo exterior. Sin excepciones.\
  6. Quien no haga esto será despedido.\
  7. Gracias; ¡que tenga un lindo día!

---
El original en inglés

  1. All teams will henceforth expose their data and functionality through service interfaces.\
  2. Teams must communicate with each other through these interfaces.\
  3. There will be no other form of interprocess communication allowed: no direct linking, no direct reads of another team’s data store, no shared-memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network.\
  4. It doesn’t matter what technology they use. HTTP, Corba, Pubsub, custom protocols — doesn’t matter. Bezos doesn’t care.\
  5. All service interfaces, without exception, must be designed from the ground up to be externalizable. That is to say, the team must plan and design to be able to expose the interface to developers in the outside world. No exceptions.\
  6. Anyone who doesn’t do this will be fired.\
  7. Thank you; have a nice day!


domingo, octubre 22, 2023

Leído y Recomendado: To Build a Top Performing Team, Ask for 85% Effort / Para formar un equipo de alto rendimiento, pida un 85% de esfuerzo

 Excelente Artículo: To Build a Top Performing Team, Ask for 85% Effort - https://hbr.org/2023/06/to-build-a-top-performing-team-ask-for-85-effort







A continuación el resumen realizado por Bardhttps://g.co/bard/share/614d8956a19c:

Resumen del artículo "Para crear un equipo de alto rendimiento, pida un 85% de esfuerzo"

El artículo "Para crear un equipo de alto rendimiento, pida un 85% de esfuerzo" de Ben Horowitz, publicado en la revista Harvard Business Review en junio de 2023, sostiene que la clave para crear un equipo de alto rendimiento es pedir a los miembros del equipo que se esfuercen al 85%.

Horowitz argumenta que pedir a los miembros del equipo que se esfuercen al 100% todo el tiempo es contraproducente. Esto se debe a que el agotamiento y el estrés que resultan de operar al máximo nivel pueden conducir a errores, decisiones pobres y, en última instancia, a un rendimiento inferior.

En cambio, Horowitz sostiene que pedir a los miembros del equipo que se esfuercen al 85% permite a los individuos y al equipo en su conjunto rendir de manera óptima a largo plazo. Esto se debe a que deja espacio para la creatividad, el aprendizaje y la recuperación.

Horowitz ofrece varios consejos para ayudar a los líderes a implementar la regla del 85% en sus equipos:

  • Establezca expectativas claras. Los miembros del equipo deben saber qué se espera de ellos en términos de rendimiento y esfuerzo.
  • Cree un entorno de confianza y apoyo. Los miembros del equipo deben sentirse cómodos para admitir cuando necesitan ayuda o descanso.
  • Facilite el aprendizaje y el crecimiento. Los miembros del equipo deben tener oportunidades para aprender y desarrollarse en sus roles.
  • Horowitz concluye que la regla del 85% es una forma efectiva de crear equipos de alto rendimiento que sean productivos, innovadores y sostenibles.


Algunos ejemplos de cómo implementar la regla del 85%:

  • En lugar de exigir que los miembros del equipo trabajen horas extras, ofrezca flexibilidad para que trabajen desde casa o en horarios flexibles.
  • En lugar de esperar la perfección, acepte que habrá errores.
  • En lugar de centrarse en la cantidad de trabajo realizado, concentre su atención en la calidad del trabajo.

La regla del 85% es un enfoque simple pero poderoso para crear equipos de alto rendimiento. Al pedir a los miembros del equipo que se esfuercen al 85%, los líderes pueden ayudar a sus equipos a rendir de manera óptima a largo plazo.


Muy relacionado con este que escribí hace un tiempo: Exigir el 100% de ocupación de las personas esta destruyendo la eficiencia de tu equipo y organización -  http://www.lecciones-aprendidas.info/2020/12/de-coleccion-exigir-el-100-de-ocupacion.html


Saludos ágiles,

Jorge Abad.



lunes, julio 24, 2023

¿Y qué pasó con la Definition of Ready y la Definition of Done?¿Pasaron de moda?

 





Hola a todos,

Hace rato no escribía, lo cierto es que sigo avanzando en diferentes proyectos con mi gran amigo Lucho Salazar, pero si algunos me siguen asiduamente, saben que continúo compartiendo notas, podcast y videos; pues este aprender y compartir es en doble vía, y siento un deber trabajar con la comunidad ágil para crecer y progresar juntos.

Bueno, quiero compartirles una disfunción que he visto emerger en muchos equipos Scrum y organizaciones ágiles, que uno supondría que está mitigada, pues en ellas se insiste insistentemente en los entrenamientos de Scrum y en los diferentes marcos de escalamiento que lo usan (y que también existe en el mundo Kanban (1)), y que por lo que estoy observando esta siendo ignorada o minimizada su importancia por los Scrum Masters, Facilitadores, Agile Coaches; y como lo "spoilié" con el título del artículo es: el no cumplir con la Definition of Ready (DoR) y la Definition of Done (DoD).

Continuamente en diversos escenarios, Product Owners y gerentes de área se me quejan de que sus equipos scrum no están funcionando, y para entender el contexto hago unas preguntas de rigor, como las del litmus test de la agilidad, y adicional incluyo estas cinco (entre muchas otras según me va llevando la conversación):
  1. ¿Tienen Definition of Ready?
  2. ¿La están cumpliendo?
  3. ¿Tienen Definition of Done?
  4. ¿La están cumpliendo?
  5. ¿Y cada cuánto actualizan la Definition of Done? 
Siendo estas últimas en las que estoy encontrando mayor reincidencia, y casi todas teniendo como causa raiz la presión del negocio por entregar a como de lugar. Como se pueden imaginar, en estos escenarios de falla y queja, si se incumple en cualquiera de las primeras cuatro preguntas se esta incurriendo en errores de calidad que terminan pagando el producto, el cliente, el equipo y toda la organización, generando retrasos y reprocesos e inconformidad en todos los involucrados en el proceso Scrum; y si se incurre en la última pregunta, se tiene un equipo que no mejora sus estándares con el tiempo y en consecuencia se está desactualizando.


 



A continuación, comparto un listado de consecuencias de fallar en estos cinco aspectos:


Consecuencias de no tener o no cumplir la Definition of Ready

En Scrum, "Definition of Ready" (Definición de Listo) (2) es un criterio utilizado para determinar si un elemento del Backlog del Producto está en un estado adecuado para ser planificado y abordado en una próxima iteración o Sprint. Aunque ni en tradicional, ni en cascada, ni en ágil, Scrum o Kanban, etc., se recomienda trabajar con requisitos inestables o no definidos, pues¡No tiene sentido! ¡Es desperdicio de comienzo a fin!, veamos algunas consecuencias de no contar ni cumplir con la DoR


"Caminar sobre el agua y desarrollar software basado en especificaciones es fácil si ambos están congelados" - Edward V. Berard

  • Entregas inconsistentes: El equipo puede encontrarse trabajando en elementos que no están bien preparados, lo que lleva a resultados inconsistentes y posiblemente de baja calidad.
  • Ambigüedad en las expectativas: Si los elementos del Backlog del Producto no están claramente definidos antes de comenzar el trabajo, puede haber confusión en cuanto a las expectativas y los criterios de finalización, lo que puede llevar a malentendidos y retrabajos.
  • Mayor tiempo de Sprint Planning: La falta de definición puede conducir a discusiones prolongadas durante la planificación del Sprint, ya que el equipo debe aclarar los requisitos y detalles de cada elemento.
  • Riesgo de incluir elementos poco relevantes: Si los elementos no están bien definidos, existe la posibilidad de que se planifiquen tareas que no aporten un valor significativo al producto final.
  • Acumulación de elementos no terminados: Si el equipo acepta elementos no preparados en el Sprint, existe una mayor probabilidad de que no puedan completarlos dentro del marco de tiempo del Sprint, lo que resulta en elementos no terminados y afecta la capacidad de entrega. Es frecuente ver que el Product Owner resuelve las inconsistencias o dudas durante el sprint y el equipo al estimarlas o trabajar desbordan la capacidad del equipo impactando otros elementos del sprint backlog o incluso el objetivo del sprint..
  • Desperdicio de tiempo y esfuerzo: Trabajar en elementos no preparados puede dar lugar a un desperdicio de tiempo y esfuerzo, ya que el equipo podría descubrir problemas o requisitos faltantes durante el Sprint.
  • Falta de transparencia: Una Definition of Ready clara es esencial para mantener la transparencia en el proceso de desarrollo. Sin ella, puede ser difícil para las partes interesadas y el equipo comprender el progreso y el estado del proyecto.
  • Frustración y desmotivación del equipo: Si el equipo se ve constantemente lidiando con elementos mal definidos, esto puede llevar a la frustración y la desmotivación, lo que afecta negativamente la moral y la productividad.
  • Frustración de los interesados: Se genera un producto de baja calidad y no se tienen claras las reglas de interacción con el equipo, generando expectativas que no son cumplidas frecuentemente.
Para evitar estas consecuencias, se sugiere:
  • que el equipo Scrum y los interesados trabajen juntos para establecer una Definition of Ready 
  • cumplir estrictamente la DoR y actualizarla cuando se observe pertinente.
  • que los próximos elementos candidatos a ser sumados al sprint backlog se encuentren correctamente refinados y definidos.
  • se realicen sesiones de refinamiento previas a la sprint planning.
  • las dependencias con otros componentes sean resueltas y construidas al menos con un sprint de antelación.
  • se trabajen en ítems de backlog pequeños (historias de usuario), pues esto permite la fácil identificación de áreas, escenarios, o criterios de aceptación, evitando áreas grises o no resueltas en el sprint planning.
  • no incluir historias por presión del negocio que no complan la DoR.

Consecuencias de no tener o no cumplir con la Definition of Done

 La "Definición de Terminado" (3)(4) es un conjunto de criterios acordados que establece cuándo un incremento del producto se considera terminado y listo para ser entregado. Algunas de las consecuencias de no tener o no cumplir con esta definición son las siguientes:

"Cuando algo esta DONE, no me tengo que volver a preocupar de ello" - Alan Cyment

  • Entregas de baja calidad: Si el equipo no cumple con los criterios de la "Definición de Terminado", es probable que los incrementos entregados no cumplan con los estándares de calidad requeridos. Esto puede llevar a problemas de funcionamiento, errores y dificultades para el usuario final.
  • Acumulación de deuda técnica (6): Si se permite que el equipo entregue incrementos que no están completamente terminados, es probable que se acumule deuda técnica. La deuda técnica representa trabajo adicional que se requerirá más adelante para resolver problemas y mejorar la calidad del producto.
  • Retraso en la entrega: La falta de cumplimiento con la "Definición de Terminado" puede llevar a retrasos en la entrega de incrementos completos y funcionales. Esto puede afectar la confianza del cliente y la capacidad del equipo para cumplir con los plazos establecidos.
  • Dificultades en la planificación: Si el equipo no puede estimar con precisión el tiempo necesario para completar los incrementos debido a la falta de una "Definición de Terminado" clara, la planificación de futuros Sprints puede volverse complicada y menos confiable.
  • Dificultades en la revisión del Sprint: Durante la revisión del Sprint, los incrementos se evalúan para determinar si cumplen con los criterios de la "Definición de Terminado". Si no se cumple, se pueden generar discusiones y conflictos innecesarios entre los interesados.
  • Falta de transparencia: Una "Definición de Terminado" clara es esencial para mantener la transparencia en el proceso de desarrollo. Sin ella, puede ser difícil para las partes interesadas y el equipo comprender el progreso y el estado real del producto.
  • Desmotivación del equipo: Si el equipo se ve obligado a entregar incrementos que no cumplen con los estándares de calidad, es probable que se sientan desmotivados y frustrados por no poder ofrecer un trabajo de alto nivel.
  • Problemas de integración: Incrementos que no cumplen con la "Definición de Terminado" pueden generar problemas de integración con otros componentes del sistema, lo que dificulta el progreso general del desarrollo.
  • Desconfianza de los interesados en el equipo y en el proceso Scrum: Al observar que el equipo Scrum no cumple entregando con calidad, se pierde confianza en el equipo y el proceso Scrum.
Para evitar estas consecuencias, se sugiere:
  • que el equipo Scrum adopte y cumpla la DoD de la organización.
  • en su defecto, el equipo Scrum la defina y todos responsablemente la promuevan, comenzando por el Scrum Master como agente de cambio.
  • no contar como Done, algo que no fue finalizado.
  • usar la retrospectiva como fuente de indagación para comprender por qué no se cumplió la DoD.
  • por presión de agenda o del negocio, evitar a toda costa declarar como DONE algo que no lo es. 

Consecuencias de no actualizar la Definition of Done


"Entre más maduro y DevOps sea un equipo, más robusta es su Definition of Done" - Jorge Abad

    No revisar y mejorar con cierta frecuencia la "Definición de Terminado" como lo sugiere la guía de Scrum puede tener varias consecuencias negativas que afectan al equipo de desarrollo y al producto final a lo largo del tiempo. Aquí están algunas de las consecuencias de no realizar revisiones y mejoras periódicas:

    • Estancamiento de la calidad: Si la DoD no se revisa y actualiza regularmente, es probable que la calidad del producto se estanque. Los criterios pueden volverse obsoletos o insuficientes para mantener el nivel de calidad deseado.
    • Deuda técnica: La falta de revisión puede conducir a la acumulación gradual de deuda técnica. A medida que el producto se desarrolla sin mejoras en la DoD, es más probable que se tomen atajos y se sacrifique la calidad para cumplir con los plazos, lo que crea deuda técnica que debe abordarse más adelante.
    • Mayor incidencia de errores: Si la DoD no se ajusta a las necesidades cambiantes del producto o del cliente, es más probable que se produzcan errores y problemas que afecten negativamente la experiencia del usuario.
    • Dificultades en la entrega: Si la DoD no se actualiza para reflejar las nuevas expectativas o requisitos del cliente, el equipo puede tener dificultades para cumplir con las demandas cambiantes del mercado.
    • Conflictos con los interesados: Si la DoD no se revisa en función del feedback de los interesados, puede haber conflictos y desacuerdos sobre el nivel de calidad aceptable para el producto.
    • Pérdida de transparencia: Si la DoD no se revisa y comunica de manera efectiva, puede haber una falta de transparencia en el proceso de desarrollo, lo que dificulta que los interesados comprendan el estado real del producto.
    • Desmotivación del equipo: La falta de revisión y mejora puede llevar a que el equipo se sienta frustrado y desmotivado, ya que pueden enfrentar problemas recurrentes y dificultades para cumplir con los objetivos de calidad.
    • Estancamiento en la mejora continua: La revisión y mejora de la DoD son esenciales para la mejora continua del equipo. Sin esta práctica, el equipo puede dejar de buscar oportunidades para optimizar su proceso de desarrollo y entregar un producto de mayor calidad.
    • Trabajar en un producto obsoleto: Sin el ejercicio de revisión frecuente de la DoD, se puede incurrir en trabajar en un producto que se va desactualizando y quedando obsoleto con el tiempo.
    Para evitar estas consecuencias, se sugiere:
    • que el equipo Scrum revise con cierta cadencia su DoD, al menos una vez cada trimestre en una retrospectiva.
    • revisar el entorno del mercado (realizar vigilancia tecnológica) para identificar mejoras al producto, prácticas o proceso que deban ser incluidas en la DoD.
    • identificar qué prácticas de calidad se encuentran al final del proceso de desarrollo (por ejemplo: prebas especializadas previos a la salida a producción) que puedan ser includias tempranamente (shift-left) para mejorar la velocidaddel equipo y del producto.


    Cerrando

    Scrum tiene dos puntos de control de calidad clave, que son: la entrada de lo que se quiere construir y la salida o increments; el compromiso del equipo Scrum en hacer cumplir la DoR y la DoD, garantizan la calidad del producto, menos errores, mayor velocidad, más transparencia, menos deuda técnica, mejor satisfacción de todos los involucrados, planeaciones y ejecuciones más efectivas, en consecuencia un mejor Scrum y una entrega de calidad de impacta positivamente la generación de valor.

    Deteriorar el cumplimiento de la DoR y la DoD generará, como lo vimos, desconfianza en el producto, el equipo y el proceso; consecuentemente deteriora el entorno de agilidad que se quiere construir.

    "Agilidad sin calidad, son incrementos de desperdicio entregados en ciclos cortos" - Jorge Abad
    Volver a lo básico e insitir sobre lo esencial, garantizará una mejor agilidad y desempeño de los equipos construyendo productos exitosos.


    Saludos ágiles.

    Jorge Abad.



    Referencias, notas, aclaraciones y comentarios

    1. En el mundo Kanban, la Definition of Ready y la Definition of Done conocen como Politicas y consiste en que una tarjeta no mueve hacia la derecha (o en la dirección del flujo) si las políticas no se cumplen.
    2. Definition of ready (scrumbook) - https://scrumbook.org/value-stream/product-backlog/definition-of-ready.html
    3. Definition of done (scrumbook) - https://scrumbook.org/value-stream/definition-of-done.html
    4. Definition of done (Scrum guide)- https://scrumguides.org/scrum-guide.html.
    5. Deuda Técnica - http://www.lecciones-aprendidas.info/search/label/deuda%20t%C3%A9cnica
    6. Algunos textos acá presentados fueron curados utilizando IA.

    sábado, octubre 08, 2022

    La Excusa SOX

    Constantemente en procesos de Transformación Agile-DevOps me encuentro con lo que he llamado: “La Excusa SOX*”, es decir, me objetan alivianar los procesos diciendo: - “el proceso no puede ser más liviano porque SOX no lo permite”, a lo que respondo:


    “Si tu freno para tener procesos más livianos (LEAN-Agile-DevOps) son todos los formatos de SOX ¿Cómo hacen en AMAZON, NETFLIX, etc., para salir a producción CIENTOS de veces al día, sabiendo que son empresas mucho más reguladas, tienen SOX y están en la bolsa de Nueva York?”


    Siempre concluyo que el problema no es la regulación, sino la mentalidad en áreas de riesgos y procesos al implementarla; y su falta de mejora continua buscando simplificar y automatizar cada vez más el proceso. 

    *SOX: Ley Sarbanes-Oxley - https://es.wikipedia.org/wiki/Ley_Sarbanes-Oxley




    martes, mayo 18, 2021

    100% de CPU es lento en nuestras máquinas, ahora llévalo a un 100% de ocupación tuyo de forma constante

    Todos reconocemos y experimentamos que el 100% de CPU constate en nuestra máquina la relentiza y la hace ineficiente; me impacta es que no podamos reconocerlo en nosotros mismos y en nuestros colaboradores, y los/nos terminemos quemando.

    Te invito a leer este artículo, donde está el sustento científico de esta "ineficiencia" en los humanos y una sugerencia para solucionarlo: "Exigir el 100% de ocupación de las personas esta destruyendo la eficiencia de tu equipo y organización" 



    lunes, abril 19, 2021

    Cómo evaluar a un Líder de Transformación Ágil y Un Agile Coach



    Hola a todos

    Hace poco un amigo me preguntó ¿Qué métricas usaría evaluar a un Líder de Transformación Ágil? o ¿Cómo le evaluaría? A continuación, les comparto mi respuesta.

    En mi criterio se deben evaluar tres dimensiones:

    • Mejora de la agilidad de los equipos a cargo
      • Madurez ágil.: ¿Qué tanto han madurado los equipos ágiles a cargo respecto al último periodo? Para esta métrica se requiere un modelo de madurez instaurado en la organización para evaluación de la agilidad de equipos ágiles, y como se puede observar la idea es que es líder mejore la agilidad de esos equipos, es decir, su madurez en términos de uso de principios, marcos ágiles, prácticas ágiles de desarrollo y DevOps.
      • Número de releases: Incremento del número de releases respecto al último periodo. Esta métrica tiene como propósito determinar si el líder ha incrementado la cantidad de salidas a producción, lo que implica, que hay  uso de conceptos de Mínimo Producto Viable, y salidas a producción incrementales. Otra métrica posible a adicionar de este mismo tipo sobre la cual el líder tiene influencia directa es el Time to Market, medido desde que nace la inciativa hasta el primer release.
    • Resultados de Negocio
      • Satisfacción del cliente: ¿Qué tanto ha mejorado la satisfacción del cliente desde el último periodo?, El propósito de esta métrica es hacer al líder responsable de lograr que se mueva esta importante métrica de negocio, de forma que se haga cargo de que los releases a producción sean de valor y se esté evaluando constantemente la satisfacción del cliente, ya sea con métricas directas como el NPS o encuestas, o indirectas derivadas del uso del sistema, tales como recomendación de las soluciones hacia otros usuarios, incremento de intalaciones, aumento de uso de las plataformas, tiempo de uso la solución más altos, entre otras.
    • Agente de Cambio
      • Calidad de sus interacciones: Evaluación 360 de las personas con las que interactúa. El propósito de esta métrica es identificar cómo es la relación con su entorno y cómo ejerce su liderazgo de agente de cambio. 

    Notas Finales
    • El peso de cada medida lo decidirá el contexto, yo recomiendo el mismo para las tres dimensiones.
    • Este tipo de evaluaciones también servirían para un Agile Coach
    • Estas dimensiones son las que usamos para evaluar Agile Coaches y Líderes de Transformación en mi entorno y nos han dado buenos resultados, es decir, hablo de ellas con conocimiento de causa.
    Bienvenidos sus comentarios.


    Saludos ágiles

    Jorge Abad

    lunes, diciembre 28, 2020

    De Colección: Exigir el 100% de ocupación de las personas esta destruyendo la eficiencia de tu equipo y organización

     


    Hola a todos,

    Con frecuencia me encuentro dentro de las organizaciones ya sean clientes o proveedores, expresiones en los gestores del personal, tales como:

    "La ocupación de las personas debe ser del 100%, para eso se les paga"

    o esta otra

    "Exíjanles el 120% para que den el 100%"

    Luego de esto, se activa el liderazgo egipcio, los látigos, las zanahorias, la microgestión, las acusaciones de distracción, el estrés, la sensación de esclavismo, el inflar las tareas para poder tener espacios para descansar, el ambiente se vuelve tóxico, y cualquier sentido de pertenencia se convierte en desvinculación y ganas de renunciar.

    Como te puedes dar cuenta esto termina degradando el sistema, en vez de mejorarlo. El objetivo de este artículo es llevarte a que comprendas que:

    "Una persona o un equipo con una asignación del 70% al 80% es mucho más productivo y eficiente que uno con una ocupación del 100%"

    Debido a que las personas y equipos tienen espacios para:
    • la mejora continua individual
    • la mejora continua grupal
    • para aceptar la variabilidad
    • hacer con mejor concentración las tareas
    • mejora colaborativa
    • eliminar desperdicios
    • innovar
    • agregarle valor a lo que hacen
    Si lo deseas puedes terminar acá de leer, pues lo que sigue es una larga justificación del por qué de esta afirmación, así que comencemos:


    No podemos tratar a las personas como máquinas

    En esta parte no voy a apelar a la evidencia científica sino a la experiencia personal, actualmente estamos en el 2020, el año en que estalló la pandemia del COVID-19 y muchos de nosotros nos hemos movido al trabajo virtual, adicional al impacto de esto en nuestras vidas,
    • ¿no han sentido lo pesado de tener una agenda completa 100% todos los días, por varias semanas?
    • ¿al final de día no terminan sintiéndose exhaustos y quemados?
    • ¿no les ha hecho falta espacios para café y conversar e interactuar con sus compañeros? ¿tener conversaciones interesantes y conversaciones triviales?
    al menos yo sí, llevándome al punto que he tenido que insertar en mi agenda espacios para descansar, pararme, tomarme un café, y estos descansos han permitido que refresque mis ideas, que tenga más fluencia y mejor concentración, que trabajar 100% todos los días.

    Ahora, no niego que hay días de sobrecarga y se asumen, pero un ritmo sobrecargado de forma constante termina yendo en contra de las personas y de los equipos.


    Dice Sun Tzu en el Arte de la Guerra:
    "Las armas son instrumentos de mala suerte; emplearlas por mucho tiempo producirá calamidades. Como se ha dicho: "Los que a hierro matan, a hierro mueren." Cuando tus tropas están desanimadas, tu espada embotada, agotadas tus fuerzas y tus suministros son escasos, hasta los tuyos se aprovecharán de tu debilidad para sublevarse. Entonces, aunque tengas consejeros sabios, al final no podrás hacer que las cosas salgan bien."

    Te recomiendo estos dos artículos:
    • Ritmo Sostenible sobre Ritmo Insostenible - (clic aquí)
    • Recomendaciones sobre el sobreesfuerzo del equipo en un proyecto - (clic aquí)

    En el trabajo de conocimiento nuestra aproximación es diferente

    En el mundo de la fabricación de objetos físicos, las tareas son repetitivas, las actividades son razonablemente predecibles y los elementos que se crean pueden estar en un solo lugar a la vez. En el desarrollo de productos, muchas tareas son únicas, los requisitos del proyecto cambian constantemente y el resultado, gracias, en parte, al uso generalizado de diseño y simulación avanzados asistidos por computadora y a la incorporación de software en productos físicos, es información que puede residir en varios lugares al mismo tiempo, o que puede ser construida de forma eficiente o ineficiente, generando alta variación en las tareas, las estimaciones y los compromisos. Creer que un grupo de ingenieros de software expertos garantizará el cumplimiento de un cronograma detallado de varios cientos de filas y meses de planeación es cada vez más irreal, los enfoques ágiles permiten validar rápidamente los resultados obtenidos y navegar exitosamente en estos escenarios de incertidumbre. Pero para que esto se lleve a cabo de forma exitosa es necesario que tanto gestores, gerentes de área, gerentes de proyectos directores, líderes, agile coaches, scrum masters, product owners y product managers, comprendan el pensamiento lean-agile, para que cultiven y permitan que funcionen muchas prácticas que van en contrasentido de la gestión tradicional, sin esto, cualquier esfuerzo de cambio será en vano.






    100% de la utilización es un desastre económico

    Es normal pensar que los proyectos toman más tiempo cuando las personas no están trabajando el 100% de su capacidad, y, por lo tanto, una organización de desarrollo ocupada será más rápida y eficiente que una que no sea tan buena en utilizar a su gente, pero en el mundo Lean y en la práctica eso no es cierto, cuando la ocupación o utilización del tiempo de las personas se aproxima al 100% la eficiencia, la calidad y la velocidad disminuyen (2), existen varias razones:

    No se considera la variabilidad de procesos de trabajadores de conocimiento

    Los trabajadores de conocimiento no hacen tareas estandarizadas, en un mundo estandarizado un cambio del 7% en el trabajo generará un 7% más en completarlo, algo que no ocurren procesos de TI. En general existen tres fuentes de variación (3) en los procesos:
    • Recursos: 
      • Ejemplos: unas máquinas son lentas y otras rápidas, los expertos realizan las tareas más eficientemente que los novatos.
    • Unidades de flujo (o elementos que fluyen): 
      • Ejemplos: en una fábrica de autos personalizados los vehículos tendrán diferentes características. 
    • Factores externos
      • Ejemplos: los pacientes en una sala de urgencias no llegan de forma fluida, a un equipo comercial la solicitud de propuestas no es un flujo constante.
    En el mundo de TI donde a pesar de usar la misma estrategia de construcción de software puede cambiar:
    • la persona que los realiza (incluso la misma persona en distinto tiempo)
    • el estado de ánimo de la persona
    • disponibilidades tanto de personas, áreas, recursos (servidores, comunicaciones, componentes)
    • los requerimientos
    • insumos
    • la calidad de la documentación
    • resultados esperados
    • dependencias
    • transacciones
    • complejidad técnica
    • supuestos y premisas
    • entre otros
    se constituyen en fuentes de variación del proceso, y estas fuentes de variación generan un tiempo de flujo diferente según el porcentaje de utilización de los recursos, tal como lo formuló Sir John Kingman, el cual desarrolló la fórmula de teoría de colas que relaciona la variación, eficiencia de recursos y tiempo de travesía (16). Ver gráfica a continuación:

    Relación entre variación, eficiencia de recursos y tiempo de travesía - Gráfica de Sir John Kingman (3)


    Por lo tanto:
    • entre más cercanos estemos al 100% de utilización del tiempo de las personas más tiempo tomará la travesía del proceso
    • ampliar la utilización del 90 % al 95 % aumenta el tiempo de travesía en un nivel mayor, que el de aumentar la utilización del 80 % al 85 % (3)
    • agregar un 5% más de trabajo puede llevar un 100% más de tiempo (2)
    • cuando el tiempo de travesía aumenta, el flujo (la cantidad de ítems, requerimientos, tickets por unidad de tiempo) disminuye

    Es importante anotar que, para TI aplica más la curva fucsia que la gris.

    Por lo tanto:
    "Cuanto mayor sea la utilización de tu equipo, más largo será el tiempo de travesía, es decir, si tienen un ciclo fijo de trabajo, menos cosas lograrán terminar"

     ----- 

    "Cuanto mayor sea la variación en el proceso, más largo será el tiempo de travesía (3)"

    Relación el Tiempo de Ciclo, la Utilización y el Tamaño de los Lotes

    "Reduzca el tamaño de lote para: reducir la variabilidad e incrementar la predictibilidad"



    Es por eso que en Scrum se insiste
    ¿Qué ocurre si el equipo es completamente Nuevo y no tienes ninguna estadística? Mira al factor de dedicación de otros equipos en circunstancias similares. ¿Qué pasa si no tienes otros equipos en los que fijarte? Adivina un factor de dedicación. Las buenas noticias son que sólo deberás adivinar para el primer Sprint. Después, tendrás estadísticas que podrás ir midiendo continuamente para aproximar mejor el factor de dedicación y la velocidad estimada. El factor de dedicación “por defecto” que usamos para equipos nuevos es habitualmente el 70%, dado que es ahí donde terminan la mayoría de nuestros otros equipos con el tiempo.
    Tomado de: Scrum y XP desde las trincheras por Henrik Kniberg (4).



    Digamos que determinamos que el factor de dedicación del equipo es del 50% (bastante bajo, normalmente oscilamos en torno al 70%).
    Tomado de: Scrum y XP desde las trincheras por Henrik Kniberg (4).


    "Operar un proceso de desarrollo de productos cerca de su plena utilización es un desastre económico" ― Donald G. Reinertsen, The Principles of Product Development Flow: Second Generation Lean Product Development

    --

     "100% de utilización conduce a la no predictibilidad" ― Donald G. Reinertsen


    No permite la atención de imprevistos

    El tener un equipo o personas al 100% de su capacidad y con compromisos en ciclos cortos, no permite aceptar la atención a imprevistos, pues cualquier imprevisto afectará el compromiso. En entregas largas la aceptación de imprevistos es tomada más como un favor, pues no se visualiza el impacto del tiempo de desenfoque, pero ya hemos aprendido que las entregas largas no son exitosas en el mundo del software, es por eso que enfoques como Scrum o XP son exitosos hoy en día. Por lo tanto, una estrategia usada por equipos scrum para aceptar los imprevistos es usar el patrón: Illegitimus Non Interruptus (clic aquí), el cual consiste en reservar de la capacidad del equipo un porcentaje para atención de imprevistos en caso de que estos se presenten.

    Tomado de (6)




    Inhibe la colaboración y la innovación

    Frases que nos decimos o nos dicen como:
    • "Te ayudaría, pero ahora no tengo tiempo"
    • "Esto se podría mejorar de esta manera, pero no tengo tiempo"
    • "Cuando tenga tiempo te voy a enseñar a ___________"
    Con seguridad lo haríamos, pero estar 100% enfocados no permite ir más alla; es un enfoque del 100% en la tarea encomendada, que ahoga espacios de interacción y mejora que emergen al poder colaborar o al tener una carga menor de trabajo. La mejora y la innovación no ocurren fuera del horario laboral (de 6 pm a 10 pm), tal vez, vengan ideas fuera de este horario, pero la implementación requiere de tiempo laboral.


    Tomado de (7)



    Tomado de (10)

    Una experiencia observable en talleres (y en la realidad)

    En talleres donde se ejemplifica como es el mundo Lean y Kanban, se realizan varias iteraciones con equipos constituidos entre 5 y 8 personas, en los cuales construimos hamburguesas ficticias, o pizzas, o retratos o cualquier proceso organizacional, se realizan varias iteraciones del proceso con diferentes porcentajes de utilización y limitando el WIP, una y otra vez demostramos que la utilización cercana o igual al 100% genera desperdicio.

    Tomado de (11)



    Tomado de (11)
    Para este ejemplo tener utilizaciones del 98% produjo: 
    • 7 hamburguesas, 
    • -1170 unidades de valor y 
    • 7 defectos, 
    mientras que con utilizaciones del 74% se lograron:
    • 15 hamburguesas,
    • 1340 unidades de valor y
    • 0 defectos
    Una y otra vez, concluimos que como gestores nuestro trabajo es maximizar el flujo de valor, no la utilización del recurso tiempo de las personas. Y esto se debe a la paradoja explicada en "Esto es Lean" (3), en la cual muestra que en el flujo de procesos esté en uno de los siguientes cuatro estados:
    1. Baja eficiencia de flujo y baja utilización: desperdiciolandia
    2. Alta eficiencia de utilización y baja flujo: islas eficientes
    3. Alto flujo y baja utilización: océano eficiente
    4. Alta eficiencia y alta utilización: el estado perfecto
    Tomado de (3)

    Lo cierto es que la perfección no va a ser posible alcanzarla debido a:

    Tomado de (3)
    variaciones en
    • lo que es solicitado
    • las variaciones en el proceso de lo que es solicitado
    • cuándo es solicitado
    • y la cantidad solicitada
    Por lo que siempre estaremos rondando lo que se llama "Frontera de la Eficiencia"




    Para llegar a esa frontera, tanto la literatura como la experiencia nos recomiendan
    1. Identificar si estas en el estado de Islas Eficientes o Desperdiciolandia (por lo general estas allí)
    2. buscar primero la eficiencia de flujo
    3. y luego la eficiencia de utilización 
    Tomado de (3)

    Para esto debes de valerte de:
    • Gestión visual del trabajo
    • Crear ambientes de colaboración
    • Tener una cultura de experimentación y aprendizaje (Toyota Kata (12) puede ser una gran herramienta en este escenario)
    • Visión Sistémica
    • Una cultura con seguridad sicológica en la que no exista temor a fallar
    • Una obsesión por la mejora continua (Kaizen)
    Adaptado de (11)

    Te invito a ver el siguiente video imperdible de Henrik Kniberg @HenrikKniberg, donde podrás ver el paradigma Lean, en donde se prioriza la generación de valor sobre la "utilización de los recursos" (pongo paréntesis pues constantemente los gestores denominan a sus colaboradores como "recursos", término que termina más destruyendo que ayudando, ver referencia (13)).




    El perfil "T" ayuda a lo anterior

    Imagina que tu trabajo fuera solo operativo y te dedicaras a hacer lo mismo en una hamburguesería: picar tomates, si picas tomates y estas al 100% dedicado a esa tarea (podemos decir que estas siendo 100% eficiente en tu tarea), pero solo el 60% de los tomates que picas son usados y el resto se echan a la basura pues no hubo hamburguesas a ser consumidas (solo el 60% de tu trabajo agregó valor). Similar a esto ocurre en un equipo donde todos son especialistas: los desarrolladores no pueden estar 100% desarrollando, los tester 100% probando o haciendo casos de prueba, y de igual forma con frontend, backend, automatización, etc., se generará desperdicio, y el flujo de valor estará limitado a la capacidad más pequeña, en el caso de la imagen inferior, en el "Caso 1" corresponderá al especialista 2.


    Explicación de mayor flujo de valor con Perfil "T"


    Pero si en vez de tener especialistas, existen generalistas (o perfiles T -ver más en (15)-) que son más expertos en unas áreas y en otras tienen suficiente conocimiento y experiencia para apoyar de forma valiosa, el flujo se aumenta, pues todos van a ayudar a los generalistas 2 y 4, como se observa en el "Caso 2" de la imagen superior.

    Nota: La práctica de Pair Programming de XP (17), ayuda en la distribución de conocimiento y en asegurar la calidad de lo que se construye.

     

    Cerrando 

    Muchas de las prácticas de Lean parecen un contrasentido, pero al aplicarlas permiten a las organizaciones, a los equipos y a las personas alcanzar estados de alto desempeño, generación de valor con menor esfuerzo, por lo tanto, cierro este largo artículo con una serie de recomendaciones:
    • Tu trabajo como gestor no es micromanejar a las personas o equipos para que estén al 100% ocupados, tu trabajo es poner un objetivo, proveer los recursos para lograrlo, limitar el WIP, y maximizar el flujo.
    • Prioriza la eficiencia de flujo
    • Prioriza el aprendizaje continuo
    • Luego prioriza la utilización del recurso tiempo
    • Toma métricas y sigue experimentando
    • No satures a las personas o a los equipos de trabajo
    • Planea por debajo del 100% de la utilización crea un ambiente de innovación, colaboración y que permite aceptar la variabilidad
    • Te sugiero realizar una asignación de una persona o equipo del 70% al 80% para lograr altos índices de generación de valor y fluencia
    • Si va a existir sobreesfuerzo que sea por corto tiempo y acordado con el equipo (14) 
    • Reduzca el tamaño de lote o elementos del backlog 
      • para:reducir la variabilidad e
      • incrementar la predictibilidad

    ahora que comprendes como maximizar el flujo, la pregunta es:
    ¿En qué cosas de valor vas a poner a trabajar a tus equipos de desarrollo de productos?



    Saludos ágiles

    Jorge Abad


    (de este artículo se realizó una conferencia, la cual puedes consultar aquí: http://www.lecciones-aprendidas.info/2021/02/de-coleccion-exigir-el-100-de-ocupacion-video-conferencia.html )


    -

    Notas, Referencias, Aclaraciones, Comentarios, Observaciones y Agradecimientos

    1. Agradecimientos a mi compañero y amigo Roberto Moraga, Daniel Ramírez y a Adrián Hurtado por sus comentarios y sugerencias
    2. Six Myths of Product Development by Stefan Thomke and Donald Reinertsen https://hbr.org/2012/05/six-myths-of-product-development
    3. Esto es lean: Resolviendo la paradoja de eficiencia - https://www.amazon.com/-/es/Niklas-Modig-ebook/dp/B019E91600
    4. Scrum y XP desde las trincheras por Henrik Knibnerg. (http://www.proyectalis.com/wp-content/uploads/2008/02/scrum-y-xp-desde-las-trincheras.pdf )
    5. Illegitimus Non Interruptus (clic aquí)
    6. Interrupt Pattern (clic aquí) 
    7. Flow Thinking @ Ericsson 3G - https://es.slideshare.net/erikschon/flow-thinking-ericsson-3g 
    8. La cita original decía "operating a product development process near full utilization is an economic disaster"
    9. La cita original decía: 100% utilization drives unpredictability - https://www.scaledagileframework.com/innovation-and-planning-iteration/
    10. 2 Second Lean Book - https://paulakers.net/books/2-second-lean
    11. Fuente Roberto Moraga @RMoraga
    12. Excelente presentación sobre Toyota Kata de Hiroshi Hiromoto (@hhiroshi) (clic aquí)
    13. Diatriba: El tema recurrente de llamar "RECURSOS" a las personas que trabajan en un proyecto (clic aquí)
    14. Recomendaciones sobre el sobreesfuerzo del equipo en un proyecto - (clic aquí)
    15. T-shaped skills (clic aquí)
    16. Fórmula de Kingman - https://es.wikipedia.org/wiki/F%C3%B3rmula_de_Kingman
    17. Programación en pareja o en pares- https://es.wikipedia.org/wiki/Programaci%C3%B3n_en_pareja