Diagnosticando la caída de una métrica
Desarrollamos un modelo mental a partir de un caso práctico para ayudarnos a encontrar la causa raíz de la caída de una métrica en nuestro producto.
Hace unas semanas observamos un descenso consistente de tres puntos en una métrica clave de nuestro funnel de activación en Voicemod. Resultó ser una movida bastante curiosa que nos terminó llevando locos unos cuantos días.
Para resolverlo y encontrar la causa raíz del problema aplicamos una serie de pasos que he pensado podría ser útil compartir para cuando os encontréis en una de estas situaciones en vuestro día a día.
Situación de partida: Contar con una buena instrumentación
En primer lugar, decir lo obvio. Este modelo sólo lo puedes aplicar si te has preocupado de instrumentar tu sistema de forma que sea observable. Por instrumentar me refiero a volcar las principales métricas de tu negocio a un sistema que te permita controlar su evolución. Ya sea con herramientas a más alto nivel como Amplitude o Mixpanel, a otras a más bajo como New Relic o Datadog, el primer paso es tenerlas accesibles en tiempo real.
Una vez tienes visibilidad sobre lo que pasa en tu sistema, lo normal es que generes paneles de control, alertas e informes sobre cada una de tus métricas clave. En el caso de Voicemod por ejemplo, el proceso de registro y acceso al sistema son críticos, por los que todo lo relacionado con cuentas de usuario lo tenemos instrumentado al minuto para detectar posibles incidentes. El objetivo es ser proactivos detectando errores antes de que sean nuestros usuarios los que lo hagan.
Después de establecer las alertas, el siguiente paso es tener la información importante a un vistazo. Un panel de control, o dashboard, no es más que un interfaz en el que reunimos las gráficas más importantes de nuestra aplicación. Estas generalmente representarán las métricas que compongan el user journey del usuario de tu producto o área de responsabilidad.
Si por ejemplo fueras responsable del funnel de activación, probablemente (y a modo simplificado), tu panel de control contendría gráficas sobre:
Número de visitas a tu landing page
% de conversión de visitas a registros
% de conversión en cada uno de los pasos del funnel
% de usuarios que inician sesión
% de usuarios que llegan al aha moment
Una vez tienes tu panel de control principal creado, lo que recomiendo es que te lo envíes por correo electrónico todos los días para que sea lo primero que revises cada mañana.
Es en una de estas revisiones matinales, cuando hace unas semanas encontré el problema del que os voy a hablar.
Buscando la causa raíz de la caída de una métrica
Sucedió al volver de un fin de semana en Navidades. En el resumen diario de ese día tenía graficada la evolución de los usuarios que completaban un paso crítico en el proceso de activación a 30 días. Y unos días atrás se apreciaba un pequeño descenso. De una gráfica que se mantenía habitualmente al 90%, había habido un pequeño bajón consistente al 87%.
Tocaba arremangarse y ponerse a investigar.
Buscando factores intrínsecos
Lo primero que hago cuando sucede algo así es averiguar si la caída se debe a algo interno que hayamos podido hacer, como un cambio en el código, un experimento o un fallo en la infraestructura.
Para empezar, comprobé si había habido algún despliegue en producción previo al descenso en la métrica. En este caso no lo había habido, por lo que descarté que se tratara de un incidente relacionado con un cambio en el código.
Aprovecho para dejaros un consejo. Lo ideal es que los despliegues queden marcados en vuestra herramienta de instrumentación. Se puede hacer manualmente, pero también automáticamente de forma que cada vez que haya uno aparezca una línea vertical en vuestras gráficas. Esto facilita mucho cualquier investigación posterior.
El siguiente paso era revisar que se hubiera lanzado o modificado algún experimento que pudiera haber afectado a la métrica. Para hacerlo, entré en el panel de control de la herramienta que utilizamos para gestionar los experimentos y revisé el historial de cambios. Tampoco encontré nada relevante.
Para concluir esta fase revisé posibles errores a nivel de infraestructura. Aquí parto con la ventaja de que tengo experiencia en ese ámbito y puedo hacerlo autónomamente, pero para PMs con perfiles menos técnicos lo normal es pedir a vuestros responsables de sistemas y datos que revisen por si fueran capaces de detectar algún incidente alrededor de la fecha en la que comienza la caída. En este caso, tampoco pudimos encontrar nada a lo que poder atribuir el descenso aquí.
En este punto ya tenía bastante claro que no el descenso en la métrica no parecía venir por ningún cambio por nuestra parte. Tocaba pasar al siguiente paso del análisis.
Buscando factores extrínsecos
Por factores extrínsecos entendemos aquellos que son externos a nuestro sistema. Para analizarnos, nos apoyamos de nuevo en nuestra herramienta de instrumentación.
De hecho, comenzamos descartando que pudieran haber errores en la propia herramienta. Y es que a veces, estas sufren caídas en la ingesta de datos que pueden afectar a las gráficas. Esto suele ser fácil de descartar porque cuando sucede el descenso no se da únicamente en una en concreto como en nuestro caso, si no en todas a la vez.
A continuación pasamos a investigar si el descenso era global o afectaba sólo a un segmento de usuarios concreto. Lo primero que hice fue segmentar por país para comprobar si el descenso en la métrica era consistente en todas las regiones, o se concentraba en algún país concreto. En nuestro caso era consistente.
A continuación bajé a nivel de tecnología. Aquí puedes segmentar en base a tipo de dispositivo (móvil/ordenador de escritorio), sistema operativo, o navegador entre otros. En este caso en concreto, el problema estaba localizado en nuestro producto principal, nuestra aplicación Windows de escritorio.
En este punto, contacté con nuestro equipo de atención al cliente para preguntarles si habían notado algún incremento de contactos relacionados con el problema que estábamos investigando a partir del día del incidente. No parecía haber habido un incremento significativo de tickets, pero salió a la luz un reporte de un usuario que decía que su antivirus le estaba impidiendo acceder a nuestra aplicación.
Teníamos algo. Tres personas instalamos el antivirus en cuestión, pero ninguno fue capaz de reproducir el problema. Quizás era algo localizado del propio usuario. Proseguimos la investigación sin quitar un ojo de encima de otros posibles tickets que pudieran aparecer al respecto.
Otro aspecto tradicional a considerar es la estacionalidad. ¿Estamos en alguna época en concreto que implique que más gente pueda llegar a nuestro funnel y cambiar el comportamiento de una gráfica? Esto suele suceder cuando medimos visitas o número de conversiones, pero aquí estábamos midiendo directamente un ratio que en principio no estaba influido por este tipo de factores externos.
Igual que la estacionalidad, una nueva promoción o cambio en nuestros precios pueden afectar a la pinta que presentan nuestras métricas. También hay que tener en cuenta si podemos haber tenido un aumento de exposición inesperado, como podría ser una aparición en televisión o un influencer que haya podido mencionar tu servicio a sus fans. Por la naturaleza de nuestra métrica en este caso no aplicaban, pero lo comento a modo de referencia para completar el modelo.
Por supuesto, si operamos en Internet y estamos analizando una caída a nivel de adquisición o activación, nuestro posicionamiento en buscadores y campañas de marketing serán factores extrínsecos a comprobar. ¿Ha habido algún cambio que nos haya podido afectar negativamente? ¿Están funcionando todas las campañas como esperamos? ¿Hemos activado/desactivado alguna que haya podido ser la causante? En nuestro caso tampoco podían ser la causa de nuestro descenso.
Otro factor externo a considerar podrían ser la aparición o acciones de un competidor. Todos competimos en un juego de suma cero por la atención de nuestros usuarios. Si aparece un nuevo competidor, o uno ya existente mejora significativamente su oferta, puede ser el causante de un descenso en nuestras gráficas. Siempre hay que tener un ojo en el mercado. De nuevo, en nuestro caso particular no aplicaba.
También conviene analizar el entorno macro. ¿Está pasando algo a nivel global, o de forma local si operas sólo en una región, que pueda estar afectando a nuestra métrica? Por ejemplo, estoy seguro que el día del asalto al Capitolio en EEUU las métricas de los servicios de streaming se fueron al suelo porque todo el planeta estaba mirando las noticias de lo que ocurría allí. En nuestro caso, nada significativo había pasado durante esas fechas.
Tras analizar factores intrínsecos y extrínsecos, la realidad es que en ese momento no fuimos capaces de averiguar cuál podía ser el origen de la caída en la métrica. Para seguir descartando, hicimos rollback de un experimento que terminamos de desplegar alrededor de esa fecha, pero no cambió significativamente las cosas. Lo más parecido que teníamos a la causa raíz era el incidente del antivirus, pero con una base de millones de usuarios, cada uno con su propia configuración de PC, tampoco era extraño recibir estos reportes ocasionalmente.
Y así estuvimos rompiéndonos la cabeza durante unos días hasta que en una reunión con un compañero de marketing nos avisó de que Voicemod había aparecido listado en una base de datos de antivirus. Revisamos la base de datos, y efectivamente, había un servicio de unos 100 listados que había decidido marcarnos como software malicioso, lo que hacía que aquellos antivirus que utilizaban esas definiciones bloquearan el acceso al programa.
Contactamos con esa base de datos y al día siguiente nos retiraron de la lista. En poco tiempo comenzamos a ver cómo nuestra métrica comenzó a recuperarse y volver al punto inicial. Nos había llevado más de lo habitual, pero finalmente habíamos encontrado la causa raíz y solucionado el problema.
Diagnosticando la caída de una métrica paso a paso
A modo de resumen, un modelo estructurado para buscar la causa raíz al descenso de una métrica podría ser algo así:
Buscar factores intrínsecos
Cambios en el código
Experimentos
Problemas en la infraestructura
Buscar factores extrínsecos
Fallos en la propia herramienta de instrumentación
Averiguar si el problema afecta a todos los usuarios o sólo a una parte de ellos
Segmentando por país/región
Segmentando por tecnología
Descartar factores estacionales
Descartar factores competitivos
Descartar factores macro
Descartar otros factores extrínsecos específicos del funnel que estuviéramos analizando
Como podría ser una caída de posicionamiento en buscadores o el impacto de una campaña de marketing de pago
En base a este análisis, iremos extrayendo hipótesis que igualmente tendremos que ir descartando. En nuestro caso una vez tuvimos el problema localizado, consultamos a nuestro equipo de atención al cliente, el cual nos dio la pista del antivirus.
Y con esto ya lo tendríamos. Espero que os sirva de ayuda. Desde luego no hemos descubierto América, pero por lo menos a mí me ha servido para documentar el proceso y estoy seguro de que volveré a él en el próximo incidente. Con suerte vosotros también lo encontraréis útil y, si pensáis que se puede mejorar o que me he dejado algo importante, no dudéis en comentar. ¡Gracias!
Fantástico post. Es poco frecuente compartir casos reales de manera tan detallada.