Blog

¿Por qué algunas apps parecen actualizarse todo el tiempo?

Contenidos

Los usuarios de hoy en día tienen el lujo de no tener que «lidiar» con las actualizaciones de la misma manera que años atrás: muchas de nuestras aplicaciones se actualizan silenciosamente en segundo plano por defecto, lo que ha mejorado las cosas en muchos sentidos. El único momento en el que la mayoría de los usuarios tienden a darse cuenta es cuando una app pide al usuario que instale una nueva instancia desde la tienda, lo que lleva a preguntarse: «¿Por qué?» Si tu empresa está planeando lanzar un producto digital -o si simplemente tienes curiosidad- te preguntarás qué está pasando y qué impacto tiene esto en el producto, en los usuarios y en la propia empresa.

Las aplicaciones se actualizan constantemente, o al menos deberían hacerlo (hasta cierto punto), debido a la rapidez con la que cambian las cosas en la tecnología. Bajo la superficie, empiezan a aparecer todo tipo de «agujeros» a medida que los usuarios encuentran problemas con el software y sus integraciones, el sistema operativo sobre el que se ejecuta, así como la infraestructura que lo conecta todo. Además, existe la dura realidad de que algunas personas, como los piratas informáticos, pueden tratar de aprovechar los puntos débiles para su beneficio personal.

Así pues, veamos por qué las actualizaciones son una parte esencial de un ecosistema de aplicaciones saludable.

Las actualizaciones mantienen el buen funcionamiento de las aplicaciones

Las aplicaciones móviles, las aplicaciones web y, cualquier sistema operativo es un poco como un barco: al igual que una Armada Española de la época del Renacimiento o un barco pirata, con el tiempo hay que realizar tareas de mantenimiento como parchear o sustituir las velas, así como reemplazar o tapar los tablones dañados alrededor del casco. Puedes arreglártelas con algunas pequeñas fugas durante un tiempo, pero con el tiempo, inevitablemente aparecerán más. Y después de demasiados problemas no mitigados, el nivel del agua sube y el barco empieza a hundirse más rápido de lo que puedes eliminar el agua.

A partir de aquí, hay un puñado de giros más específicos en esta analogía, pero el punto es que las actualizaciones se utilizan para parchear un espectro de fugas, así como para agregar o depreciar partes de la aplicación (más sobre esto más adelante.) Estas fugas pueden ir desde un goteo inocuo a un agujero enorme que está vertiendo docenas de sanguijuelas cada minuto.

Un ejemplo más concreto de cómo pueden desarrollarse los ciclos de actualización es la aplicación de Starbucks en la App Store. si se navega hasta la sección «Novedades», se puede ver fácilmente el número de versión, la fecha de lanzamiento y un breve resumen de la actualización. 

La tendencia que se observa es que no hay una tendencia real para las actualizaciones, con algunas excepciones. Algunas mejoras, como el ajuste de fórmulas o de parámetros específicos, no necesitan realmente ser detalladas para las masas, lo que es más que probable que sea el caso de las cuatro que indican que permiten que la aplicación funcione más suavemente.

En cuanto a los plazos, las actualizaciones que se suceden en breve no suelen estar planificadas oficialmente, pero hay que anticiparse a ellas: como explicaremos más adelante, algunas actualizaciones pueden mejorar ciertas áreas pero dificultar o romper otras. Después de un lanzamiento, es fundamental estar atento a los problemas y estar preparado para lanzar un seguimiento si surgen problemas significativos.

Como puedes ver, incluso una aplicación de categoría mundial como Starbucks, que se encuentra regularmente entre las 10 mejores aplicaciones de la App Store, necesita actualizaciones periódicas para que todo funcione correctamente.

Los muchos sabores de las actualizaciones

Muchos cambios no son visibles, ya que algunos retocan silenciosamente partes de una aplicación para que sea más segura y evite «fugas» que puedan ser comprometidas por usuarios maliciosos, malware o simplemente revelar información privada. Las actualizaciones no tienen por qué ser constantes, pero sí regulares.

Afortunadamente, hoy en día los usuarios rara vez tienen que descargar y aplicar manualmente pequeñas actualizaciones a sus aplicaciones, a menos que hayan configurado su dispositivo para desactivar las actualizaciones automáticas, ya sea a propósito o por accidente. Sin embargo, las aplicaciones que lanzan regularmente nuevas versiones o «actualizaciones» dirigirán a los usuarios a la tienda de aplicaciones del dispositivo, lo que la gente suele notar. Veamos lo que hace cada una de ellas y el papel que desempeñan a lo largo del ciclo de vida de una aplicación.

Actualizaciones simples

Las actualizaciones suelen ser pequeñas, pero varían en tamaño y alcance. Muchos paquetes de actualización incluyen varios cambios que añaden, restan o modifican partes de la aplicación, como por ejemplo:

Mejoras de seguridad. Hay todo tipo de formas diferentes en las que los inofensivos aficionados y los nefastos lunáticos pueden explotar una aplicación, que puedes conocer aquí si te apetece. Es responsabilidad de los propietarios de productos digitales y de sus equipos estar al tanto de estos asuntos y asegurarse de que sus aplicaciones sean seguras. Si bien esto es cierto para todos los tipos de software, los que están sujetos a ciertas normas de cumplimiento de datos, como las aplicaciones de salud, hay tolerancia cero para dejar lagunas en cualquier superficie de ataque. En otros casos, las actualizaciones son para garantizar la compatibilidad con los cambios en el sistema operativo, así como las integraciones de terceros, como los procesadores de pago como Stripe.

También hay veces que ciertos cambios de seguridad son obligatorios como parte de una especie de «ley de aplicaciones» establecida por Apple y Google para la App Store y Google Play Store, respectivamente. Todas las aplicaciones que viven en cualquiera de las dos tiendas están sujetas a los términos y condiciones de cada una. Si una aplicación no cumple, puede ser expulsada de la tienda, lo que implica tiempo y trabajo extra para volver a ponerla en marcha.

Mejorar o modificar una función. A veces, una función no se comporta como estaba previsto, pero sigue «funcionando»: puede deberse a un descuido de la experiencia del usuario, lo que significa que hay que modificar ligeramente el diseño, o pueden surgir problemas porque los usuarios se encuentran con un comportamiento inesperado (por ejemplo, un elemento del menú no siempre se abre; algo que se supone que debe aparecer después de que se cumplan ciertas condiciones, pero no lo hace; etc.), un nuevo enlace en un menú, más opciones de personalización para los artículos en una aplicación de entrega de comida, etc.) Luego hay escenarios en los que los cambios tienen un impacto poco o nada perceptible, al menos desde la perspectiva del usuario – por ejemplo, un método más eficiente para llamar a ciertas APIs podría venir con una actualización y aunque ahorra en ancho de banda, la mayoría de los usuarios nunca lo notarán. Los cambios más pequeños, como los mencionados anteriormente, suelen pertenecer a la categoría de mantenimiento general y a menudo se agrupan en actualizaciones que se publican según sea necesario.

El arma de doble filo aquí es que, sí, a veces éstas «romperán» una aplicación para ciertos usuarios o harán que surjan otros problemas extraños. Por ejemplo, los usuarios que no actualizaron (o no pudieron hacerlo) a Android 10 no pudieron utilizar las aplicaciones de modo oscuro que dependían de las herramientas de modo oscuro nativas de Android porque no existían previamente. A no ser que estés desarrollando una app muy específica para la empresa interna en dispositivos gestionados, tendrás que seguir el ritmo de actualización junto al resto del mercado para poder aprovechar los nuevos recursos que vayan apareciendo con el tiempo.

Además, hay veces que una actualización provoca nuevos problemas, por desgracia, a pesar de introducir mejoras al mismo tiempo. Y la forma de resolver efectivamente estos problemas no es otra que otra actualización. Por ello, es fundamental que tu equipo de control de calidad esté atento para identificar y mitigar los posibles problemas antes de que los usuarios se laven las manos con la aplicación por completo.

Arreglar un error. Los pequeños matices operacionales ocurren todo el tiempo, incluso cuando tienes el mejor personal de control de calidad en el negocio revisando tu producto. Un enlace en un menú puede no responder. Tal vez un usuario introduzca accidentalmente un emoji en un formulario en el que se le pide su edad, provocando que cosas que «no pueden ocurrir» (según tus desarrolladores) sí ocurran.

Al igual que los «bichos» de la vida real, se meten en todo, pero van desde lo más inocuo, como una mosca que se posa bruscamente en tu falafel, hasta tener un agitado ciempiés tropical trepando por tu pierna. Algunos se encuentran gracias a los informes de los usuarios, mientras que otros se descubren internamente; en cualquier caso, se priorizan en función del valor asignado (más información sobre cómo lo hacemos aquí) y se resuelven en consecuencia. El código revisado para estos cambios se incorpora al nuevo código fuente y posteriormente se publica en una actualización.

Actualizaciones más complejas

Algunas actualizaciones tienen un alcance más amplio y sustituyen o cambian tanto código que requieren una nueva instalación por parte del usuario. Estas nuevas versiones se empaquetan para que contengan todas (bueno, la mayoría) las actualizaciones anteriores y menos grasa por recortar partes obsoletas que sólo sirven para ocupar espacio. En estos casos, el usuario suele ser redirigido a su tienda de aplicaciones móviles para descargar esta nueva versión. 

Estas son algunas de las razones más comunes por las que las aplicaciones se actualizan con este método, en lugar de con algún método de actualización en segundo plano:

Se reconstruye por completo. Aunque no llegó a los principales titulares, Walmart sustituyó su descuidada aplicación híbrida por React Native para obtener varias ventajas que sirvieran para mejorar el rendimiento tanto en Android como en iOS. Esencialmente, todo lo relacionado con el front-end de la app, que antes dependía de WebView (es decir, era una página web móvil embebida) para mostrar el contenido, fue sustituido por un nuevo framework que les permitiría desarrollar eficientemente para ambas plataformas móviles, así como acceder a nuevas herramientas como características de seguridad como permitirles integrar directamente su servicio de farmacia en la app.

Nuevas funcionalidades o modificaciones sustanciales en el código fuente. Incluso si no se está portando a un framework de trabajo completamente nuevo, como en el caso de Walmart, ciertos cambios significan una pizarra fresca. Cuando todo se empaqueta limpiamente en una nueva versión, debería ser mucho más «limpio», lo que facilita el soporte y la escalabilidad. Por ejemplo, un restaurante con su propia aplicación de pedidos móviles podría querer construir eventualmente un servicio de entrega personalizado o integrar una solución de terceros como Glovo – en cualquier caso, la adición de nuevas bibliotecas y la realización de cambios sustanciales significará eventualmente el lanzamiento de una nueva versión totalmente actualizada de la aplicación.

Un cambio de diseño importante. Ciertos cambios visuales, como el desplazamiento de elementos en un menú, la adición o eliminación de partes o el cambio de elementos visuales, no suelen requerir una versión completamente nueva. Sin embargo, una revisión masiva puede significar desarraigar y cambiar elementos centrales del código que muestran la interfaz de usuario y la hacen funcional. Por ello, la mayoría de los cambios de diseño importantes requerirán una nueva versión de la aplicación.

Forzar la actualización

En algunos casos, los desarrolladores obligan a los usuarios a instalar una actualización o una versión completamente nueva. Las razones para ello varían, pero son en gran medida en beneficio del usuario. Por ejemplo, cuando se retira una parte de una aplicación, no hay razón para que el usuario pueda acceder a los restos de un servicio desaparecido. También es útil cuando el cumplimiento de los datos es una preocupación y una actualización corrige una vulnerabilidad – aquí, sólo la última versión (s) está configurada para conectarse y ejecutarse para evitar un potencial exploit.

Otro buen ejemplo se encuentra en los juegos, especialmente con componentes multijugador en línea. Los juegos populares a menudo se actualizan diariamente durante la plenitud de su ciclo de vida para asegurar que los jugadores que compiten puedan tener una sincronización consistente en los servidores y que las cosas «se mantengan justas». Los equipos tienden a controlar de cerca cosas como la cantidad de daño que hace (o no hace) un determinado objeto, tanto a través de los análisis como de los comentarios recogidos de las comunidades de jugadores, ya sean internas o parte de algún subreddit. A menudo se fuerzan las actualizaciones para aplicar nuevos parámetros que «potencian o nerfean» (es decir, hacen más fuertes o más débiles) ciertas cosas en la configuración multijugador que pueden dar a los jugadores una ventaja injusta.

En pocas palabras, forzar las actualizaciones puede ser lo mejor cuando hay un riesgo o una deficiencia significativa presente en las versiones anteriores, ya que esto mantiene a los usuarios y a la plataforma más seguros. 

Dado que hay mucho que hacer para mantener y hacer crecer una aplicación con éxito, aquellos que buscan llevar un producto digital al mundo estarán mucho mejor equipados para navegar por las decisiones y los desafíos que vienen junto con el mantenimiento, la actualización y la mejora de su aplicación. Al comprender que se trata de un proceso continuo que nunca es perfecto -¡incluso para los mejores equipos! – esto ayuda a gestionar las expectativas, lo que puede ayudar a minimizar el estrés de los equipos e incluso evitar que asuntos como la deuda técnica se conviertan en un problema.

Artículos destacados

Artículo

From offline to online.

Comparte tus ideas con nosotros