Mi camino hacia la Agilidad…

¿Te has encontrado alguna vez en una situación como esta?

-Daniel, el cliente nos pide que demos prioridad a la corrección de estas fallas, así que pausa el desarrollo de la nueva funcionalidad y luego lo retomamos.

-¿Seguro? Yo podría finalizar el desarrollo esta misma tarde y luego tomo las correcciones…

-Definitivamente: interrumpe el desarrollo que ya lo retomaremos al finalizar las correcciones.

Viví esta conversación, o alguna similar, muchas veces en mi vida, y todas ellas estuvieron seguidas por otra conversación en la que me preguntaban la razón por la cual, si solo me faltaban un par de horas de desarrollo antes de cambiar de actividad, «ahora resulta que te estás tomando todo el día para finalizar el desarrollo».

Bueno, pues resulta que existe una explicación tan básica, que muchas veces es difícil de creer: las personas no somos multitareas (al menos a la hora de producir software).

El proceso necesario para almacenar un flujo de información en el cerebro de un desarrollador, requiere que se realice un paso a paso de todos los puntos de ejecución de un programa. Esta memoria no es permanente, si se interrumpe con otra actividad, con seguridad que se extraviarán algunas piezas críticas de información del flujo que se estaba analizando, lo que obligará a que se tenga que reiniciar la comprensión paso a paso de todos los puntos de ejecución (a veces desde cero).

Tomemos este ejemplo del flujo que podría llevarse en la mente de un desarrollador, el cual pudo haber tomado unos 30 o 40 minutos en construirse por medio de repetir varias veces un proceso paso a paso:

  • Ingresa un objeto de tipo Persona
  • Se valida el tipo de identificación
  • Si es una cédula (o DNI, dependiendo del país), implica que la persona tiene más de 18 años
  • Cuando se tiene un número de teléfono físico asignado, se puede realizar una consulta de las demás fuentes para saber si este teléfono cuenta con algún reporte.
  • Si el reporte sale de las fuentes A, B y C, entonces se puede tomar el número de documento, si y solo si se es mayor de edad
  • Si el reporte proviene de la fuente X, solo podríamos tomar el ID de búsqueda para realizar una nueva búsqueda en la fuente Y o Z y revisar si se cuenta con la autorización.
  • Pero si es un menor de edad, se toma la solo la fuente W y se debe almacenar el código de autorización

Si en este momento se llega a interrumpir el proceso, haciendo que el desarrollador realice un análisis similar a un proceso diferente, en el momento que retome este flujo, su mente habrá olvidado una buena porción del análisis que ya había realizado, comenzará a mezclar con los pasos del segundo flujo, y terminará posiblemente buscando una manera de validar si una persona es mayor de edad en los datos retornados desde la fuente A, B o C.

Lucho Salazar tiene un excelente gráfico que ilustra el costo de la multitarea respecto al porcentaje de tiempo/trabajo perdido debido al cambio de actividades. Las barras rojas corresponden precisamente a ese reproceso necesario en la mente de todo desarrollador para descartar el análisis de la tarea que acaba de terminar y retomar el análisis que ya se había logrado hacer de la presente tarea.

Y este efecto de cambio de tareas no solo obedece a cada vez que se cambia de una tarea de desarrollo a otra, cualquier cambio de actividad va a generar un deterioro en la productividad: llamadas, reuniones, interrupciones de compañeros o de superiores, entre otros. Mientras más demorada, con más contenido, o con mayor necesidad de análisis sea la interrupción, mayor será el desperdicio en la productividad de un desarrollador de software.

Así que piénsalo dos veces de ahora en adelante: ¿esa interrupción, o esa reunión que parte la jornada de trabajo en dos, es realmente necesaria? ¿O podría fácilmente ser reemplazada por un mensaje o por un correo que se pueda leer cuando no te encuentres en medio de un análisis complejo?

Si te agrada lo que encontraste aquí, ¡compártelo!

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.


Últimas Entradas

  • ¿Cuántas pizzas se dejaron de vender con DevOps?
    Recientemente estuve impartiendo un curso sobre DevOps en la universidad EAFIT y, mientras lo hacía, un pensamiento recurrente me acompañó: ¿cuántas pizzas se dejaron de vender ahora que las salidas a producción han cambiado? Durante muchos años fui parte de equipos que debían salir a producción en horario no laboral, para no afectar el servicio,… Leer más: ¿Cuántas pizzas se dejaron de vender con DevOps?
  • Entropía en los equipos
    Me encontré con un video sobre la Entropía La Entropía no es Desorden, con una excelente y sencilla explicación del concepto y su diferencia con el caos o desorden (conceptos con que es constantemente comparada), y no pude dejar de hacer una reflexión sobre la dinámica de los equipos de trabajo y su relación con… Leer más: Entropía en los equipos
  • La Nube
    En esta sesión de Castor sin filtro discutimos sobre ¿qué es La Nube y cómo le podemos sacar provecho?[1]Blog de Castor Referencias y Notas[+] Referencias y Notas ↑1 Blog de Castor Si te agrada lo que encontraste aquí, ¡compártelo!
  • Castor sin filtro
    Castor sin filtro es un espacio de discusión y aprendizaje abierto y gratuito, donde se discuten temas relacionados con Programación, Agilidad, Transformación Digital, TI, Desarrollo, etc. En este espacio no hay reglas, los único acuerdos son: Es una conversación abierta y gratuita No es una conferencia o un Webinar Es alegato puro y duro No… Leer más: Castor sin filtro
  • Contenedores
    En esta sesión de Castor sin filtro hablamos de lo que son los contenedores, sus ventajas y desventajas.[1]Blog de Castor Referencias y Notas[+] Referencias y Notas ↑1 Blog de Castor Si te agrada lo que encontraste aquí, ¡compártelo!