Publicado por Mauricio Vergara, Gerente de Marketing de Producto, con aportes de Mil Ant.
Lyft se esfuerza individualmente por la excelencia de la aplicación. Como empresa de viajes compartidos, que brinda un servicio vital y oportuno a decenas de millones de motociclistas y cientos de miles de conductores, debe serlo. En esa escala, cada ralentización, cuadro congelado o bloqueo de su aplicación puede hacer perder el tiempo de miles de usuarios. Incluso una pequeña falla puede significar una ola de personas conduciendo con (o conduciendo para) la competencia. Afortunadamente, el equipo de desarrollo de Lyft vigila el rendimiento de su aplicación. Así es como notaron por primera vez una ralentización en el tiempo de inicio de la aplicación de Android de sus conductores.
Necesitaban llegar al fondo del problema rápidamente: comprender lo que se necesitaría para resolverlo y luego justificar tal inversión ante su liderazgo. Esto significó responder a una serie de preguntas difíciles. ¿Dónde estaba el cuello de botella? ¿Cómo afectó la experiencia del usuario? ¿Qué prioridad debería tener su equipo en ese momento? Afortunadamente, tenían una poderosa herramienta a su disposición que podía ayudarlos a encontrar las respuestas. Con la ayuda de vitali android, una herramienta de Google Play para mejorar la estabilidad y el rendimiento de las aplicaciones en dispositivos Android, identificó el problema, propuso priorizarlo a su liderazgo y dedicó la cantidad adecuada de recursos para solucionarlo. Así es como lo hicieron.
Nuevas prioridades
Lo primero que tuvo que hacer el equipo de desarrollo de Lyft fue averiguar si se trataba de un problema lo suficientemente apremiante como para que su liderazgo comprometiera recursos. Al igual que cualquier propuesta para mejorar la calidad de las aplicaciones, la aceleración de los tiempos de inicio de Lyft Driver tuvo que sopesarse frente a otras demandas competitivas sobre el ancho de banda del desarrollador: la introducción de nuevas funciones de productos, mejoras arquitectónicas y la mejora de la ciencia. En general, uno de los desafíos para convencer a los líderes de que inviertan en la calidad de las aplicaciones es que puede ser difícil correlacionar las mejoras de rendimiento con las métricas comerciales.
Recurrieron a Android vitals para obtener una imagen exacta de lo que está en juego. Vitals brinda a los desarrolladores acceso a los datos de rendimiento de su aplicación, incluidos los errores de la aplicación que no responde, el agotamiento de la batería, el procesamiento y tiempo de inicio de la aplicación. El rendimiento actual e histórico de cada métrica se rastrea en dispositivos reales y se puede comparar con el rendimiento de otras aplicaciones en la categoría. Con la ayuda de esta poderosa herramienta, el equipo de desarrollo descubrió que el tiempo de inicio de la aplicación Lyft Driver era entre un 15 y un 20 % más lento que el de otras 10 aplicaciones en su categoría, un problema apremiante.
A continuación, el equipo tuvo que establecer el alcance adecuado para el proyecto, acorde con el impacto de la ralentización en los objetivos comerciales y la experiencia del usuario. Los datos de Android vitals aclararon el caso, especialmente porque proporcionaron una comparación directa con los competidores en el espacio de viajes compartidos. El equipo de desarrollo estimó que un solo desarrollador trabajando en el problema durante un mes sería suficiente para lograr una mejora medible en los tiempos de lanzamiento de la aplicación.
Al aprovechar esta gran cantidad de datos y apelar al compromiso de Lyft con la excelencia de las aplicaciones, el equipo ha respaldado su liderazgo. Al demostrar una clara oportunidad para mejorar la experiencia del cliente, un objetivo razonable y alcanzable y una clara inteligencia competitiva, obtuvieron luz verde.
como lo hicieron
Lyft usa “Tiempo para interactuar” como su métrica de arranque principal (también conocida como Hora de la vista completa). Para comprender los factores que la afectan, el equipo de Lyft perfiló cada una de las fases de lanzamiento de su aplicación, buscando el punto muerto. La aplicación Lyft Driver se inicia en cuatro etapas: 1) Primero, inicia el proceso de solicitud 2) “Actividad” comienza a mostrar la interfaz de usuario. 3) “Bootstrap” envía las solicitudes de red de los datos necesarios para renderizar la pantalla inicial. 4) Finalmente, “Pantalla” abre la interfaz del controlador. Perfiles rigurosos revelaron que la ralentización se produjo en la tercera fase, la de arranque. Una vez que se identificó el cuello de botella, el equipo tomó varias medidas para abordarlo.
En primer lugar, redujeron las llamadas de red innecesarias en la ruta de lanzamiento crítica. Después de desglosar sus servicios de back-end, pudieron eliminar de forma segura algunas llamadas de red en la ruta de arranque por completo. Siempre que era posible, también optaron por realizar llamadas de red de forma asíncrona. Si todavía se necesitaban algunos datos para que la aplicación funcionara, pero no se necesitaban durante el inicio de la aplicación, estas llamadas se hicieron sin bloqueo para permitir que el inicio continuara sin ellos. El bloqueo de llamadas de red se puede mover de forma segura a un segundo plano. Finalmente, optaron por almacenar en caché los datos entre sesiones.
Estos pueden parecer cambios relativamente pequeños, pero resultaron en una reducción dramática del 21 % en el tiempo de inicio de la aplicación. Esto llevó a un aumento del 5 % en las sesiones de conducción en Lyft Driver. Con los resultados en la mano, el equipo tuvo suficiente consenso del liderazgo para crear un flujo de trabajo de rendimiento móvil dedicado y agregar un ingeniero al esfuerzo a medida que continuaban realizando mejoras. El éxito de la iniciativa se consolidó en toda la organización, con varios gerentes buscando explorar cómo hacer más inversiones en la calidad de las aplicaciones.
Aprendizajes
El éxito de estos esfuerzos contiene varias lecciones más amplias, aplicables a cualquier organización.
A medida que crece una aplicación y su equipo crece con ella, la excelencia de la aplicación se vuelve más importante que nunca. Los desarrolladores suelen ser los primeros en reconocer los problemas de rendimiento mientras trabajan de cerca en una aplicación, pero pueden tener dificultades para crear conciencia en toda la organización. Android vitals ofrece una poderosa herramienta para hacer esto. Proporciona una manera fácil de respaldar las observaciones de los desarrolladores con datos, lo que facilita el equilibrio de las métricas de rendimiento con los casos comerciales.
Al iniciar su propia iniciativa de excelencia de aplicaciones, vale la pena apuntar primero a pequeños logros y construir a partir de ahí. Elija cuidadosamente proyectos factibles, que brinden resultados significativos a través de una inversión adecuada de recursos.
También es importante comunicarse pronto y con frecuencia para involucrar al resto de la organización en los esfuerzos de calidad del equipo de desarrollo. Estas actualizaciones constantes sobre objetivos, planes y logros ayudarán a mantener a todo su equipo a bordo.
Recursos adicionales
Android vitals es solo una de las muchas herramientas en el ecosistema de Android diseñadas para ayudar a comprender y mejorar los tiempos de inicio de la aplicación y el rendimiento general. Otra herramienta complementaria, Punto de referencia de la mochila propulsora, puede ayudar a proporcionar información durante el desarrollo y las pruebas en una variedad de métricas. A diferencia de Android vitals, que proporciona datos de dispositivos de usuarios reales, Macrobenchmark le permite comparar y probar áreas específicas de su código localmente, incluido el tiempo de inicio de la aplicación.
los Biblioteca de inicio de la aplicación Jetpack proporciona una forma sencilla y potente de inicializar componentes al iniciar la aplicación. Los desarrolladores pueden usar esta biblioteca para simplificar las secuencias de inicio y establecer explícitamente el orden de inicialización. Mientras tanto, Alcance y dispositivos puede ayudarlo a comprender su distribución de usuarios y problemas para tomar mejores decisiones sobre qué especificaciones construir, dónde lanzar y qué probar. Los datos de la herramienta le permiten a su equipo priorizar los esfuerzos de calidad y determinar dónde las mejoras tendrán el mayor impacto para la mayoría de los usuarios. Perfecto es otro recurso invaluable: una herramienta de seguimiento del sistema de código abierto que puede usar para instrumentar su código y diagnosticar problemas de inicio. Juntas, estas herramientas pueden ayudarlo a mantener su aplicación funcionando sin problemas, a sus usuarios contentos y a toda su organización apoyando sus esfuerzos de calidad.
Si está interesado en involucrar a su equipo en la búsqueda de la excelencia en aplicaciones (o únete a Lyft), consulte nuestro estudio de caso resumido para propietarios de productos y ejecutivos conectados aquí.