3 de enero de 2016

Modelar tus intuiciones


Recientemente estoy tratando de modelar el negocio digital que queremos poner en marcha en PMPeople. Toda la literatura sobre la metodología Lean Startup aconseja plantear hipótesis y medir resultados. Si algo no se puede medir o validar cuantitativamente, ¿entonces es mejor no hacerlo?
Lo que no encontramos son herramientas para modelar de forma ágil el comportamiento de los usuarios cuando visitan la página, y así responder preguntas clave como ¿cuántos usuarios se registrarán como profesores, alumnos, consultores, patrocinadores, etc.? ¿Cuántos usuarios registrados como alumnos se matricularán en un determinado curso? ¿Cuántos profesores harán falta para atenderlos?

Esta necesidad me ha llevado a rescatar un viejo programa de simulación llamado i-Think, que yo usaba cuando me dedicaba a la consultoría en IT Governance. Yo tengo la versión del año 2005. La interfaz es muy mala, pero la verdad es que sirve para modelar sistemas lineales de manera muy efectiva. Es buena herramienta, no cabe duda, pero ¿no habrá por ahí algo más moderno? Os agradeceríamos si alguien nos puede compartir información en este sentido, por favor.

Yo conocí este programa en el libro de Tom DeMarco The Deadline: A novel about project management. A continuación pueden leer mi traducción de un fragmento del capítulo 10, donde los personajes hablan de una simulación más o menos realista.


[...]
–Abdul: Vamos a empezar con un ejemplo típico de la literatura de simulación. Supongamos que estás ejecutando un proyecto con 100 personas a comienzos de enero. Llevan en el proyecto un par de años y has observado una tasa consistente de salidas de 4 personas al mes. Cada vez que alguien sale del proyecto, contratas un reemplazo inmediatamente y le formas durante 2 meses, después de lo cual el nuevo miembro del equipo está perfectamente integrado en el proyecto.
–Webster: De acuerdo.
–Abdul: Ahora descubres, o sospechas, que la tasa de salidas va a subir como resultado de alguna nueva política de personal que entrará en vigor a partir de mayo. Digamos que piensas que subirá al doble.
–Webster: De acuerdo. Ahora esperamos perder 8 personas cada mes.
–Abdul: Eso es. ¿Qué dice tu intuición sobre cuánta gente vas a tener perfectamente integrada en el proyecto a principios de agosto?
–Webster: ¿Intuición? ¿No son 100?
–Abdul: ¿Seguro?
–Webster: Pensaba que habías dicho que tenía una situación estable de 100 personas, y contrato un nuevo trabajador inmediatamente que otro se va. Por tanto siempre tendré un equipo estable de 100. Formamos a los nuevos… ah, espera un momento, ya veo lo que quieres decir. Hay siempre gente en fase de formación. Y ahora tengo más personas formándose en media –pensó un momento-. Bien, ciertamente el primer mes tengo un descenso en el quipo integrado debido al crecimiento repentino de la tasa de salidas, así que ese mes he bajado de 100 a 92. ¿Pero no los recupero después? Yo creo que sí, ¿no? Y si he llegado a 100 en agosto, no lo sé, mi procesador interno no funciona muy bien en este ejemplo.
–Abdul: Pero es un ejemplo trivial, Webster, extraordinariamente trivial. Mucho menos complicado que la clase de simulación que tienes que hacer con tu procesador interno cada día. Veamos lo que el simulador nos dice en este caso particular.–Abdul comenzó a dibujar un modelo en la pantalla-. Uso un depósito para simbolizar tu equipo actual. Cuanto mayor sea el nivel del depósito, más gente tienes. Vamos a ponerle un valor inicial de 100.

–Abdul: Esto ya es un modelo, pero no es muy dinámico, ya que no hay flujo de personas saliendo del proyecto, ni nuevos contratados incorporándose. Si ejecutamos el simulador nos diría que el nivel de personas es una constante de 100 a lo largo del tiempo. Ahora añadimos una tubería para el flujo de personas que salen del proyecto y una válvula en el tubo cuyo valor determina lo rápido que salen. Ponemos el valor inicial de la válvula a una tasa de 4 personas al mes.

–Abdul: El icono de la nube indica que están saliendo, es decir, salen fuera del contexto de nuestro modelo. Finalmente añadimos otra tubería para las nuevas personas entrando al proyecto a través del flujo “Hiring”. Vamos a conectar el valor de la válvula directamente a la válvula de salida, de manera que sea cual sea la gente que salga un determinado mes, nosotros contratamos exactamente el mismo número. Ponemos un decalaje de 2 meses de “Training of New Team Members” entre la válvula de contratación y el equipo integrado. Aquí tenemos el modelo resultante:

Webster observaba fascinado cómo en la pantalla iba cambiando con el tiempo el depósito del equipo integrado. Cuando se estabilizó, Abdul paró la simulación y con un par de pulsaciones del ratón hizo que la aplicación mostrase un gráfico con el nivel de personas a lo largo del tiempo.


–Webster: Bien, no es exactamente lo que yo esperaba –admitió-. Decrece linealmente unos meses y luego se estabiliza en julio, pero nunca vuelve a subir. Me pregunto por qué.
–Abdul: Tampoco es evidente para mí. ¿Quizá porque hay más personas en formación? Lo que quiero decir es que aunque sea trivial la red de efectos conectados, es bastante difícil concluir algo sin ayuda. El simulador hace las conexiones por nosotros, simplificando el esfuerzo de análisis aritmético que el problema requiere.
–Webster: Esa clase de análisis que no hacemos bien con nuestro procesador interno. Ya veo a qué te refieres.

Abdul guardó silencio por un momento. Webster se apartó de la pantalla y se puso a reflexionar. ¿Qué tenía todo esto que ver con su trabajo en Morovia dirigiendo proyectos para rediseñar productos software? ¿Qué tenía que ver esto con sacar el trabajo adelante? No estaba totalmente seguro, pero estaba empezando a sospechar que los modelos y la simulación podrían ser de utilidad.

Se volvió a su nuevo amigo:
–Webster: Digamos que me has convencido completamente, Abdul. ¿Qué quieres que haga? ¿Cómo puedo usar lo que has compartido conmigo hoy?
–Abdul: Bien, lo que tenemos que hacer es tomar elementos de tu base de intuiciones. Una forma fácil de encontrar una buena base que resulte útil para gestionar es tensionando un poco. Así que voy a decir cosas exageradas y después te voy a preguntar por qué te parecen exageradas.
–Webster: Está bien, adelante.
–Abdul: Imagina que yo soy tu jefe. Tú me dices que 10 personas trabajando un año pueden hacer una cantidad de trabajo. Pero yo tengo prisa, así que te digo que uses 10 personas para terminar en 6 meses.
–Webster: Te diría que es imposible.
–Abdul: Tú tienes la intuición de que 20 personas durante 6 meses no es lo mismo que 10 personas durante 12 meses.
–Webster: Es más que una intuición. Es una convicción.

Adbul empezó a pintar en su bloc de notas algo parecido a esto:

–Abdul: Así pues, ¿estos dos esquemas de esfuerzo no producen el mismo trabajo?
–Webster: Por supuesto que no.
–Abdul: ¿La capacidad de producción de uno es diferente a la del otro?
–Webster: Bastante diferente.
–Abdul: ¿Diferente pero cuánto?
–Webster: ¿Perdona?
–Abdul: ¿Cuánto hay de diferencia? Asumamos 10 personas un año pueden construir un producto software de tamaño 1000 lo que sea, por ejemplo. No te preocupes por las unidades ahora, solo asume que tengo una forma razonable de medir el tamaño del software. Si esos 10 pueden completar un producto de 1000 unidades en un año, ¿cuánto producto podríamos esperar que razonablemente produjeran 20 personas en 6 meses, suponiendo que son igual de capaces?
–Webster: Menos de 1000.
–Abdul: ¿Cuánto menos?
–Webster: Mucho menos.
–Abdul: ¿Cuánto es mucho?
–Webster: Un montón. Esas 20 personas están apiñadas unas contra otras. No van a ser capaces de hacer lo mismo que un equipo más pequeño durante más tiempo. ¿No te das cuenta?
–Abdul: Claro que me doy cuenta, por supuesto. No estoy en desacuerdo con tu intuición, Webster, solo estoy tratando de que la cuantifiques. ¿Cuánto menos el equipo más grande será capaz de completar en 6 meses?
–Webster: La mitad, quizá un cuarto, no sé.
–Abdul: En serio.
–Webster: Supongo que no lo sé. No exactamente.
–Abdul: Pero tienes saberlo. El equilibrio entre personas y tiempo es algo que te concierne como gestor casi todos los días. Siempre estás haciendo ese tipo de equilibrios. ¿Cómo lo haces?
–Webster: Supongo que tengo una intuición sobre ello.
–Abdul: Esa intuición es tu modelo. Tú ya tienes un modelo, pero ahora está en tu procesador interno. Está tan enterrado que no puedes observarlo cuando lo necesitas. Vamos a sacarlo a la luz. Vamos a recrearlo en forma de un modelo con el que te sientas a gusto para ver cómo afecta añadir más gente a la tasa de producción.
–Webster: De acuerdo.
–Abdul: Háblame de ello, y yo podré reducirlo a términos que podamos introducir en el paquete de simulación. ¿Qué pasa cuando añades una persona a un equipo?
–Webster: El impacto inicial es siempre negativo. Él o ella no hacen nada útil el primer día, y consumen el tiempo de los demás para aprender. Así que la tasa de producción del equipo decae.

Abdul empezó a modelar en su portátil mientras escuchaba.
–Webster: Entonces, poco a poco pasa a ser un miembro del equipo totalmente integrado.
–Abdul: ¿Algo así? –Abdul pintó esto en su bloc de notas:
–Webster: Sí, solo que se gana más productividad cuando la persona añadida es la sexta, que cuando es la séptima, por ejemplo. Creo que hay una penalización que es función del tamaño del equipo. Cuanta más gente hay en el equipo, más interacciones y por tanto más tiempo perdido.
–Abdul: Venga, mójate. Hazme un gráfico.
–Webster: Bien, veamos. Si vemos la tasa de producción total del equipo en función del tamaño del equipo, entonces una línea de 45º representaría lo ideal. Estar en esa línea significaría que cada persona añadida contribuye tanto como la persona anterior. Al duplicar el tamaño del equipo se duplicaría su capacidad, si no hubiera penalización por interacción. La realidad es algo menor que lo ideal. Algo parecido a esto.

–Abdul: La diferencia entre la línea ideal y la real es la penalización por interacción. Puedo replicar la forma de tu gráfico en el modelo, más o menos. Dime cuál es el tamaño del equipo antes de que la penalización por iteración sea de un tercio.
–Webster: ¿Cómo?
–Abdul: Estoy señalando un punto en tu curva en el que la penalización por iteración es más o menos la mitad del valor real. Esto significa que en este punto se pierde un tercio de capacidad ideal.
–Webster: Hasta ahora te sigo.
–Abdul: ¿Qué tamaño tiene el equipo en este punto?
–Webster: No lo sé.
–Abdul: Ya sé que no lo sabes. No estamos representando lo que sabes, sino lo que intuyes. Pregunta a tu intuición. ¿Cuál es el tamaño de un equipo para que un tercio de capacidad se desperdicie por la interacción?
–Webster: La mejor respuesta que puedo darte es de un rango muy amplio.
–Abdul: Mójate, ¿qué tamaño?
–Webster: Diría que sobre 4.
–Abdul: Así pues, ¿la capacidad neta de 4 personas trabajando juntas es un 33% inferior a 4 veces la de una persona que tuviera que hacer el trabajo ella sola?
–Webster: Por supuesto no estoy seguro, pero me parece razonable esa respuesta.
–Abdul: Estupendo –introdujo más datos en su portátil. Cuando hubo terminado mostró la pantalla a Webster-. Aquí tenemos nuestro modelo sobre tu intuición sobre el tamaño del equipo.

–Abdul: El proyecto completo está representado como un esfuerzo que consiste en mover trabajo de un depósito a otro. Comenzamos con un depósito lleno de “trabajo pendiente” y un depósito vacío de “trabajo completado”. Las unidades de trabajo deben expresarse en alguna métrica de tamaño…
–Webster: ¿Líneas de código? ¿Algo así?
–Abdul: Bien, podría ser eso si no encontramos nada mejor. La capacidad de hacer el trabajo se modela con una válvula llamada “tasa de producción total”. Cuanto mayor es su valor, más rápido el trabajo se mueve de trabajo pendiente a trabajo completado. Obviamente los valores de producción deben expresarse en las mismas unidades.
–Webster: Ya veo.
–Abdul: Por último, las líneas claras son dependencias. Nos dicen, por ejemplo, que la tasa de producción total depende de 4 factores: el tamaño del equipo intregrado, el número de nuevos miembros todavía en fase de formación, la penalización de interacción y el coste de integración.
–Webster: ¿El coste de integración podría ser la proporción de errores introducidos por los nuevos miembros?
–Abdul: Sí. Ahora escribo una ecuación para cada métrica. Por ejemplo, así es cómo he definido la métrica de penalización por interacción. Como puedes ver, comienza en cero y sube al 33% cuando tenemos un equipo de 4 personas. He supuesto que querías que el resto de la curva sea más o menos así.


Webster miró al gráfico. ¿Representaba realmente su mejor intuición sobre la penalización por interacción a medida que el equipo incrementaba el número de miembros?

Abdul parecía leer su mente:
–Abdul: Cuando empieces a usar el modelo podrás ir ajustando esta curva, igual que las otras. O puede que tengas que cambiar el modelo mismo.
–Webster: Para ajustarlo a mis intuiciones.
–Abdul: Exacto.
–Webster: Bien, por el momento mis intuiciones me dicen que hace falta un cambio. No estoy satisfecho con el valor estático de la penalización por interacción. Quizá la penalización tendría que ser una función dependiente del tiempo. Después de todo, la gente aprende a trabajar en equipo.
–Abdul: Cuéntame.
–Webster: Los equipos, en mi opinión, tienen un potencial de llegar a una penalización negativa con el tiempo. Algo ocurre y la dinámica de equipo se hace tan fuerte que compensa la penalización por interacción. El todo puede ser más que la suma de las partes. El equipo se unifica.

En un momento le mostró de nuevo la pantalla.
–Abdul: ¿Así?

Webster estudió la pantalla largo rato.
–Webster: Creo que sí. Pienso que este es mi modelo. Se parece mucho a lo que yo pienso cuando trato de saber cuál será el desempeño del equipo. Por supuesto, puede estar muy equivocado, no siempre los equipos reales se comportan así…
–Abdul: Por supuesto. Pero ahora por lo menos tienes una forma de medirlo. Puedes simular para ver lo que predicen tus intuiciones de forma combinada, y después hacer que el proyecto real avance un tiempo para recopilar información de ajuste y mejorar el modelo.
–Webster: Ya veo.
–Abdul: Poco a poco ajustas a partir de los datos de desempeño del trabajo hasta que…
–Webster: … hasta que la predicción en la pantalla sea mejor que la mía.
–Abdul: Precisamente.
[...]

Traducción del capítulo 10 del libro:
The Deadline: A Novel About Project Management
Tom DeMarco
Dorset House Publishing, 1997

No hay comentarios:

Publicar un comentario