La cuantificación del rendimiento de su aplicación puede ser difícil, pero es una parte importante de entender qué tan bien está sirviendo a los usuarios y cómo eso cambia con el tiempo.
Los puntajes de Apdex son una herramienta fantástica y simple que puede usar hoy para comprender mejor cómo se está desempeñando su equipo de desarrollo, cómo se puede mejorar y el impacto de casi todos los cambios en su servicio. Es probable que también formen parte de sus Acuerdos de Nivel de Servicio (SLA) con sus clientes, lo que les ayuda a comprender la disponibilidad de su plataforma.

¿Qué son las puntuaciones de Apdex?

Apdex es un estándar abierto, utilizado por plataformas y servicios para proporcionar una manera amigable para los humanos de interpretar la satisfacción y el rendimiento del usuario. Esencialmente, los puntajes de Apdex ponen un número en lo contentos que están los usuarios cuando usan su servicio, y ayudan a simplificar el seguimiento de cómo eso puede cambiar con el tiempo.
Su puntaje es una herramienta potente para obtener un alto nivel de comprensión de si sus usuarios pueden o no usar su servicio sin frustración, y si esa experiencia está empeorando (o mejorando) a medida que libera nuevo software y funciones en el mundo.
La escala es fraccional, de 0 (sus usuarios no están satisfechos) a 1 (todos sus usuarios están satisfechos), lo que facilita la comprensión de sus clientes como un agregado, en lugar de a nivel individual.

¿Cómo funciona Apdex?

La forma más sencilla de iniciar informes de rendimiento es usar una herramienta que admita Apdex, como Raygun. El producto Raygun APM genera automáticamente la puntuación basada en un algoritmo que determina la satisfacción en función de las tres zonas en las que se pueden clasificar los usuarios: satisfecho, tolerante y frustrado.
Estas zonas se basan en la simple idea de que cuanto más tiempo tenga que esperar un usuario, más frustrados estarán. Los puntajes de Apdex asumen que los usuarios eventualmente se vuelven impacientes, particularmente si la desaceleración ocurre regularmente.
Esto es lo que significa cada una de esas categorías en el contexto de Apdex:
Satisfecho significa que el usuario puede usar su aplicación sin frustraciones de rendimiento o ralentizaciones, lo que hace que sean completamente productivos.
Tolerar significa que el usuario puede notar pequeñas cantidades de demoras o ralentizaciones, pero es capaz de tolerarlos y continuar haciendo su trabajo.
Frustrado es el punto en el que los usuarios están considerando abandonar la espera, o incluso usar su herramienta, debido a los largos tiempos de espera de forma regular.

¿Por qué debería usar Apdex?

Si está creando una aplicación de software, grande o pequeña, sus usuarios serán el elemento vital de si sobrevive o no en el largo plazo, así como la forma en que crece orgánicamente. Comprender el impacto del rendimiento en la satisfacción y retención del usuario es una parte crucial de la construcción de un negocio en la nube que a menudo se descuida hasta que es demasiado tarde.
Soy un desarrollador de software independiente y uso los puntajes de Apdex en la herramienta APM de Raygun para ayudar a entender dónde debo concentrarme: mi tiempo es limitado, por lo que solo puedo concentrarme en las áreas que realmente ayudan a que mi negocio crezca.
Los puntajes de Apdex automatizados esencialmente me ayudan a identificar áreas problemáticas para mis usuarios y ver a través de sus ojos sin la escala que un equipo de desarrollo de software más grande tendría tradicionalmente para obtener ese contexto. Esencialmente, es una forma de entender el impacto invisible de mis cambios en la base de código a lo largo del tiempo, y si debo o no pausar el desarrollo de características para enfocarme en mejorar el rendimiento.

¿Cómo se ve Apdex en la práctica?

Aquí hay un ejemplo práctico: desarrollé una actualización importante para mi flujo de registro que requería una actualización de backend junto con la versión. Después de implementar los cambios en producción, mis puntuaciones de Apdex comenzaron a caer, lo que indica que mis usuarios existentes se estaban frustrando, a pesar de que no había cambios funcionales para ellos.
Debido a que el nuevo flujo de registro causó que la aplicación se ralentizara mientras el backend bloqueaba las solicitudes e intentaba completar una solicitud de Stripe API, la experiencia general se sentía menos receptiva. Esto identificó que el flujo de registro estaba afectando la satisfacción de mi cliente actual y me ayudó a priorizar la implementación de colas en mi aplicación para que las solicitudes de nuevos usuarios no afectaran a las existentes.
A medida que crece y escala su base de usuarios, el rendimiento se convierte más en un problema que debe ser seguido de cerca. Las aplicaciones complejas siempre tienen cuellos de botella ocultos, a menudo en rincones oscuros donde es posible que no pueda verlos usted mismo como desarrollador. Al convertir esas experiencias en una métrica, puedo monitorear todo lo que es más importante.

¿Qué es un buen puntaje de Apdex?

Los puntajes de Apdex se pueden usar en contexto con su propia industria, mercado objetivo y el problema que realmente está resolviendo. Los diferentes segmentos de usuarios tienen expectativas de rendimiento muy variadas, y es crucial para ajustar adecuadamente sus herramientas para crear puntuaciones útiles para las experiencias que sus usuarios esperan.
A menudo se reduce al valor percibido a cambio de esperar a que se complete una tarea. Los usuarios están más que dispuestos a esperar unos segundos si eso significa obtener algo deseable en el otro extremo, como un pedido que se procesa correctamente cuando se envía. Si están realizando una tarea que no disfrutan, o algo que parece que no vale la pena, los puntajes más altos son más importantes.
Las herramientas APM de Raygun proporcionan cinco grupos separados para el rendimiento que se muestran en un gráfico codificado por colores en su tablero. Estos se definen como grupos muy claros en Raygun y son una excelente manera de entender las áreas que necesitan atención inmediata o una solución a largo plazo:
Raygun muestra tu puntuación apdex.

Excelente: 0.94 - 1 (verde oscuro)

El usuario es completamente productivo y sus usuarios no se ven impedidos por el tiempo de respuesta de su aplicación.

Bueno: 0.85 - 0.93 (verde claro)

El usuario es generalmente productivo y sus usuarios no se ven impedidos por el tiempo de respuesta de su aplicación.

Regular: 0,70 - 0,84 (amarillo)

El usuario nota algún retraso en el rendimiento pero continúa el proceso.

Malo: 0,50 - 0,69 (naranja)

El usuario nota un retraso moderado en el rendimiento, pero continúa el proceso.

Inaceptable: 0.0 - 0.49 (Rojo)

El rendimiento es inaceptable y el usuario puede abandonar el proceso.
En mi experiencia con los puntajes de Apdex, tanto en mi propio ciclo de vida de desarrollo de software independiente como en organizaciones más grandes, mantener su puntaje de Apdex en el segmento "bueno" o por encima de 0.85 es la mejor manera de asegurarse de que sus usuarios no consideren el rendimiento como un problema tu solicitud.
El problema es que esto no siempre es realista para toda la pila: algunas tareas llevan más tiempo, pueden tener consultas de base de datos bloqueadas o requieren tareas intensivas de CPU que solo requieren que el usuario espere. Imprimir una página en un PDF, por ejemplo, es una tarea que puede bloquear al usuario o pedirle que espere, reduciendo su puntaje general de Apdex, pero al final proporciona más valor para el usuario, lo que le permite tolerar un "justo" Puntuación en algunos casos.

¿Cómo puedes mejorar tu puntaje de Apdex?

La realidad de cualquier equipo de desarrollo de software es que a menudo existe una tensión entre la obtención de una puntuación Apdex muy alta y las características de envío, las actualizaciones o la satisfacción de los usuarios. Es difícil saber cuándo concentrarse en los puntajes de Apdex o cuándo desviar su energía hacia la mejora de su producto.
Una buena regla general es usar las puntuaciones de Apdex como una métrica para el éxito de cada lanzamiento que realice; ¿El envío de una característica particular baja la puntuación? ¿Puede mitigar ese impacto en el proceso de desarrollo o mejorarlo en un futuro sprint? A menudo es más fácil abordarlos en la fuente, a medida que se desarrolla la función, o mediante el uso de sprints dedicados que abordan los problemas de Apdex de mayor impacto.
Para muchos equipos de desarrollo, los resultados clave están vinculados a la funcionalidad de envío, lo que hace difícil justificar el gasto de horas en la mejora de la puntuación cuando no son fundamentales para sus propios objetivos de rendimiento. Esto hace que mantener el puntaje en una parte central de las consideraciones de su ciclo de desarrollo sea aún más importante, ya que puede ser más difícil justificar enfocar un futuro sprint para mejorarlos.

Las herramientas pueden ayudarte a mejorar tu puntaje de Apdex

En el producto Application Performance Monitoring (APM) de Raygun , puede ver las consultas de mayor impacto y la forma en que afectan a sus usuarios. Esta es una forma personal favorita de centrarse en las "ganancias fáciles" que puedo lograr para mis usuarios entre el envío de nuevas funciones y me ayuda a priorizar si vale la pena centrarse en el rendimiento antes de continuar con nuevas ideas.
Utilizo una combinación de consultas lentas, rastreos lentos y llamadas lentas de API en el panel de APM para determinar si un problema tendrá un impacto significativo en mi puntuación de Apdex. Si una consulta se ejecuta durante 3-5 segundos a la vez, probablemente valdrá la pena investigar, ya que ayudará a que el número vuelva a aumentar.
Este es un proceso continuo que debe considerarse de forma continua. Si está utilizando procesos de implementación continua y está introduciendo el código en el mundo a diario, es más fácil medirlo con el tiempo. Para ciclos de publicación más lentos, es más difícil concentrarse en los cambios que afectan la experiencia del usuario, ya que se incluye una gran cantidad de cambios en una sola versión.

El problema con las puntuaciones de Apdex.

Al igual que con todas las métricas, Apdex debe usarse como parte de una pila de monitoreo más amplia y debe aplicarse a los problemas correctos, no a nivel general como una medida de éxito. Usados ​​correctamente, los puntajes de Apdex son una manera fantástica de conocer las tendencias de toda la plataforma, pero no deben usarse de forma aislada.
Es cierto que el mayor defecto de Apdex es que es un cálculo general que dificulta ver dónde se encuentran los problemas específicos y dolorosos, pero eso es parte de la razón por la que es tan atractivo. Está diseñado como una visión general de alto nivel del rendimiento de su plataforma, no como un examen de una sola página que está causando problemas en una escala micro para sus usuarios.

¿Entonces, Qué esperas?

Cuando piense en los puntajes de Apdex, lo aliento a que los considere como una importante métrica de negocios que puede ayudarlo a acercarse más a sus usuarios y sus propios resultados. Pagar a los clientes, y su experiencia con su producto determina si se quedarán o no por mucho tiempo, y las puntuaciones de Apdex son una herramienta poderosa para ver más allá de su propia pantalla.
Personalmente, disfruto mucho al usar las herramientas APM de Raygun, que ofrece una visión sobrehumana de la pila de aplicaciones y revela áreas de mejora sin la necesidad de excavar. Si aún no lo ha probado, transformará su forma de pensar acerca del desarrollo de software para la web.