sábado, agosto 24, 2024

Registro de una conversación reveladora: características de los equipos y culturas de alto desempeño

Esta es una pequeña nota, donde dejo registro de una conversación reveladora que tuve con mi gran amigo Juan Andrés Ochoa, algoque hemos ido construyendo mutuamente:

Los equipos de alto desempeño cuentan con cuatro características:

  • Personas idóneas, es decir, son apropiadas para hacer la misión que se les va a encomendar.
  • Propósito.
  • Métricas que les muestren si están en el alto desempeño. Estas pueden ser tempranas y rezagadas, o un indice que combine ambas, es decir, en el caso de los equipos ágiles, soy un equipo ágil si impacto al negocio, entonces cuáles son las métricas que determinan que tengo agilidad (incluida, obviamente la excelencia técnica) y cuáles son las métricas que determinan que sí estoy impactando el negocio.
  • Una narrativa de cultura que proporcione un marco de actuación, que le cuente al equipo:
    • Lo que NO se espera del equipo, ejemplos: 
      • que no se gestione la deuda técnica, 
      • que no se asista a los eventos,
      • que no se respete a las personas.
    • Lo BÁSICO que se espera del equipo, ejemplos:
      • que cumpla sus compromisos,
      • entregue trabajo con excelencia,
      • se den retroalimentación mutua,
      • que reciban sin problema retroalimentación externa.
    • Lo EXTRAORDINARIO que se espera del equipo, ejemplos:
      • Investigar nuevas formas de hacer las cosas,
      • hacer de la innovación una forma de trabajo,
      • traer nuevos negocios a la empresa.
Lo anterior, se puede extrapolar al resto de la empresa cuando la vemos como un gran equipo conformado de equipos.

martes, agosto 13, 2024

Cómo las Crisis Económicas Impulsan Decisiones de Lean Portfolio Management en las Organizaciones

Imagen generada con Llama 3.1 de Whatsapp


Hola a todos

Hace un tiempo, un cliente me compartió una reflexión que me dejó pensando:


"Jorge, cuando estuvimos en crisis económica, la empresa avanzaba; ahora que todo volvió a la normalidad, los proyectos no se terminan nunca.🙀"

 

Contexto: Esta es una empresa con 90 colaboradores en TI y 120 proyectos en curso, lo que implica un promedio de 1.33 proyectos por persona.

Curioso por saber más, le pregunté qué habían hecho durante la crisis. Su respuesta fue reveladora:

  • Nos enfocamos en los 15 proyectos más importantes.
  • 80 personas se dedicaron exclusivamente a estos proyectos, es decir, un promedio de 5.3 personas por proyecto.
  • 10 personas se encargaban de atender correcciones urgentes.
  • No empezábamos un nuevo proyecto crítico hasta terminar el anterior.
  • Priorizamos y avanzamos solo en los proyectos estratégicos para la empresa.
  • Nos reuníamos dos veces a la semana para resolver temas críticos y dependencias, asegurando que ningún proyecto se retrasara.

¿Qué podemos aprender de esto?


Las decisiones tomadas durante la crisis reflejan varias prácticas clave de Lean Portfolio Management (LPM), que se pueden resumir en los siguientes puntos:

1. Limitación del trabajo en progreso (WIP):
  • Práctica: Nos enfocamos en los 15 proyectos principales.
  • Impacto: Limitar el WIP es un principio fundamental de Lean. Al reducir la cantidad de proyectos simultáneos, la empresa evitó la dispersión de esfuerzos, permitiendo que los equipos se concentren y completen los proyectos con mayor rapidez y calidad.

2. Asignación eficiente de recursos:
  • Práctica: 80 personas estaban dedicadas a los proyectos principales, con un promedio de 5.3 personas por proyecto.
  • Impacto: Esta estrategia de optimización de recursos asegura que los proyectos de mayor prioridad reciban la atención necesaria, maximizando el valor entregado y minimizando el desperdicio.

3. Enfoque en la finalización antes de iniciar nuevos proyectos y gestión de la capacidad:
  • Práctica: Hasta que no terminábamos un proyecto crítico, no comenzábamos el siguiente.
  • Impacto: Evitar el multitasking mejora el flujo de trabajo, reduce los tiempos de entrega, y previene la sobrecarga laboral. Es común ver en grandes organizaciones personas asignadas a múltiples proyectos, "tratando de avanzar en todos a la vez", lo cual es contraproducente.

4. Priorización basada en valor estratégico:
  • Práctica: Priorizamos los proyectos y solo avanzamos en los estratégicos para la empresa.
  • Impacto: Al alinear los esfuerzos con los objetivos estratégicos, se garantiza que los recursos se concentren en iniciativas que generan el mayor valor para la organización.

5. Reuniones frecuentes para resolver dependencias:
  • Práctica: Nos reuníamos dos veces por semana para resolver temas críticos y dependencias.
  • Impacto: La cadencia y sincronización son esenciales en LPM. Estas reuniones permiten eliminar impedimentos rápidamente, lo cual es crucial para mantener el flujo de trabajo y evitar retrasos.


En conclusión, estas prácticas traen consigo beneficios tangibles como:
  • Maximización del flujo de trabajo.
  • Eliminación del desperdicio.
  • Mayor enfoque y visibilidad.
  • Menor fricción y retroalimentación temprana.
Todo esto resulta en un mejor desempeño organizacional en la ejecución de proyectos de TI. Sin embargo, cuando la crisis pasa, es común que volvamos a las viejas prácticas de proyectos inacabados.


Mi invitación es a que generemos una "crisis controlada":
  • Enfoquemos nuestros portafolios y limitemos el WIP a pocos proyectos para permitirnos entregar más rápido.
  • Priorizemos; solo hagamos lo que realmente aporte valor.
  • Gestionemos la capacidad, y aprendamos a decir "No" cuando sea necesario. A veces, la mejor respuesta organizacional es un "No".
  • Resolvámos las dependencias de manera proactiva.


¿En qué modo prefieren vivir: con muchos proyectos en curso y poca entrega, o con mucha entrega y pocos proyectos en curso?



¡Saludos ágiles!

Jorge Abad


Referencias:

lunes, mayo 13, 2024

¿La IA decretó el fin del Pair Programming y el Pair Review?

 



El mundo del desarrollo de software está en ebullición gracias a la inteligencia artificial (IA). Herramientas como Copilot, Gemini, ChatGPT o las integraciones de IA en IDEs como GitHub, reportan mejoras en tiempos, calidad y productividad de hasta un 40% o más (1)(2). Esto sugiere que la IA puede potenciar nuestra capacidad para crear código de calidad, transformando equipos de 8 personas (como propone Scrum) en parejas hiperproductivas (3). Un ejemplo: un arquitecto de software en una fintech comentaba que la IA le permite crear funciones complejas con solo solicitarlas, realizando luego pequeñas modificaciones si es necesario. Esto ha reducido significativamente su carga de trabajo, su forma de colaborar y la calidad de su código.


Un cambio radical en las reglas del juego

Este cambio radical en las prácticas de desarrollo nos lleva a preguntarnos: ¿marca el fin de la programación en pareja (pair programming) y la revisión de código (pair review)?


¿El fin de la pair programming?

La IA puede realizar: la detección de errores, la revisión de código y la optimización (refactorización) de funciones; lo que implica el pareto del valor de esta práctica, hiriendo casi de muerte a la pair programming, pues su parte vital se automatizó completamente.

Siendo honestos, la programación en pareja es de difícil adopción por parte de los equipos, muchos gerentes y programadores la veían como desperdicio, ahora con esta innovación, emergerá a lo sumo, como un momento específico, más que algo procedimental o de acuerdo de equipo.


Lo irremplazable (por ahora):

Lo que la IA aún no pordrá reemplazar (por ahora), son otros beneficios clave del pair programming:

  • Integración rápida de nuevos miembros al equipo a través de la colaboración con miembros experimentados.
  • Mejora del enfoque del programador al evitar distracciones gracias a la presencia de un compañero.
  • Mentoría (tutoría) que facilita el intercambio de conocimiento entre programadores de diferentes niveles.
  • Mejora en la toma de decisiones (por ahora). La programación en pareja, al tener un contexto más amplio, genera mejores decisiones sistémicas a medida que los desarrolladores conocen más el producto y su arquitectura. Esta capacidad puede ser absorbida por la IA en el futuro a medida que gane importancia en el desarrollo del producto.


El pair review aún tiene futuro

La revisión de código (pair review) tiene un papel crucial que la IA no puede reemplazar. Si bien la IA puede identificar errores en el código, no puede sustituir la discusión y el intercambio de ideas que se produce en un pair review. Además, esta práctica es una excelente manera de compartir conocimientos y experiencia entre los miembros del equipo, y de mejorar la arquitectura del producto.


Riesgos y desafíos

Un riesgo asociado a la IA es la generación de grandes volúmenes de código sin supervisión, lo que puede crear brechas de seguridad y rendimiento. Si la cantidad de código es demasiado grande para que un humano lo revise a fondo, se podrían generar riesgos que no se detectan.

Otro riesgo es la reducción de la mentoría y la gestión del conocimiento. Al "delegar" en la IA, los nuevos desarrolladores pueden no comprender el porqué de ciertas decisiones y se reduce la interacción y el intercambio de conocimiento entre los miembros del equipo.


El futuro de la colaboración en el desarrollo de software

En el futuro, indiscutiblemente veremos una combinación de IA y colaboración humana en el desarrollo de software. La IA se utilizará para automatizar tareas repetitivas, detectar errores, mejorar código, elaborar módulos o fuciones similares, mientras que los humanos, por su parte, se centrarán en tareas más creativas y estratégicas, asumiendo la responsabilidad de revisar grandes volúmenes de código, manteniendo la comunicación y la mentoría para los nuevos miembros del equipo.


¿Que opinan? Bienvenidos sus comentarios.


Saludos ágiles,

Jorge Abad.


Notas y Referencias

  1. AI impact in software development - Jeff Sutherland linkedin post: https://www.linkedin.com/feed/update/urn:li:activity:7184280772273434625/ .
  2. How People Can Create—and Destroy—Value with Generative AI. BCG Sep 2023. https://www.bcg.com/publications/2023/how-people-create-and-destroy-value-with-gen-ai
  3. Agile in the Age of AI - Henrik Kniberg. https://hups.com/blog/agile-in-the-age-of-ai?trk=public_post_embed_feed-article-content
  4. (Este artículo fue ideado por mí y luego curado con inteligencia artificial, también se encuentra publicado en linkedin en: https://www.linkedin.com/pulse/la-ia-decret%2525C3%2525B3-el-fin-del-pair-programming-y-review-jorge-abad-43hze/ )