Lanzar una aplicación es sólo el comienzo. El mantenimiento continuo garantiza que funcione en nuevas versiones del sistema operativo, corrija errores y mantenga contentos a los usuarios. Esta guía le presenta lo que implica el mantenimiento de aplicaciones móviles.
Por qué es necesario el mantenimiento
Nuevo sistema operativo
iOS y Android lanzan versiones anuales. Compatibilidad requerida.
Corrección de errores
Aparecen errores en producción. La solución rápida importa.
Seguridad
Vulnerabilidades descubiertas. Se requieren parches.
Rendimiento
Degradación con el tiempo. Optimización continua.
Expectativas
Los usuarios esperan que la aplicación funcione siempre.
Tipos de mantenimiento
Correctivo
Bichos geniales. Corrección de problemas reportados.
Adaptativo
Compatibilidad con nuevos sistemas operativos y dispositivos.
Perfectivo
Mejoras, optimizaciones, nuevas funciones.
Preventivo
Actualización de dependencias, refactorización.
Compatibilidad del sistema operativo
Actualizaciones de iOS
WWDC anual. Prueba en betas.
Actualizaciones de Android
E/S de Google. Mayor fragmentación.
API obsoletas
API antiguas que dejan de funcionar.
Nuevas características
Oportunidad de adoptar nuevas características.
Cronología
Beta → Lanzamiento → Obligatorio.
Corrección de errores
Triaje
Ordenar por gravedad e impacto.
Reproducir
Entiende cómo sucede.
Arreglar
Corrige el código.
###Prueba
Asegúrate de que nada más se haya roto.
Liberación
Publique la solución rápidamente.
Monitoreo de fallas
Herramientas
Firebase Crashlytics, Sentry.
Alertas
Notificaciones de fallos.
Priorización
Por volumen y gravedad.
Simbolización
Seguimientos de pila legibles.
Actualizaciones de dependencia
¿Por qué?
Seguridad, rendimiento, compatibilidad.
Frecuencia
Regularmente, no sólo cuando se rompe.
Pruebas
Prueba después de la actualización.
Registro de cambios
Verifique los cambios importantes.
Rendimiento continuo
Monitoreo
Métricas de rendimiento de producción.
Puntos de referencia
Compara versiones.
Optimización
Mejoras incrementales.
Perfilado
Identificar cuellos de botella.
Seguridad
Vulnerabilidades
Monitorear dependencias.
Parches
Actualiza rápidamente.
Auditorías
Auditorías periódicas.
Prueba de penetración
Pruebas de penetración.
Gestión de lanzamientos
Frecuencia
Regularmente. Mensual es común.
Lanzamiento
Gradual para detectar problemas.
Revertir
Posibilidad de revertir.
Correcciones
Correcciones urgentes fuera de ciclo.
Documentación
Changlog
Qué cambió en cada versión.
Documentos técnicos
Cómo funciona el sistema.
Runbooks
Procedimientos operativos.
Costo de mantenimiento
Estimación
20-40% del costo de desarrollo inicial por año.
Factores
Complejidad, frecuencia de cambios, estándares de calidad.
Reducción
Código limpio, pruebas, automatización.
Gestión del ciclo de vida
Versiones compatibles
Cuántas versiones anteriores admitir.
Depreciación
Cómo retirar versiones antiguas.
Actualizaciones forzadas
Cuándo forzar la actualización.
Pruebas continuas
Pruebas automatizadas
Giran con cada cambio.
Manual de control de calidad
Para casos exploratorios y extremos.
Cobertura del dispositivo
Prueba en dispositivos reales.
Regresión
Asegurar las obras existentes.
Servicios de terceros
Dependencias
Las API externas pueden cambiar o romperse.
Monitoreo
Monitorear la disponibilidad.
Reservas
Comportamiento cuando no está disponible.
###Contratos
SLA con terceros.
Usuarios y comentarios
Reseñas
Supervise las reseñas en la tienda.
###Apoyo
Responda a los tickets rápidamente.
Solicitudes de funciones
Entrada para hoja de ruta.
Comunicación
Informar problemas conocidos.
Estrategia de versión
Versionado semántico
Parche.mayor.menor.
Cambios importantes
En versiones mayores.
Notas de la versión
Comunicar los cambios con claridad.
Errores comunes
Saltar actualizaciones
Dejar que la aplicación quede obsoleta.
No monitorear
Descubra problemas a través de revisiones.
Actualizaciones poco frecuentes
Los cambios se acumulan, los lanzamientos son riesgosos.
No realice pruebas en dispositivos reales
El emulador no capta todo.
Conclusión
El mantenimiento de la aplicación es un compromiso continuo. Presupuesta esto desde la planificación, automatiza todo lo posible y monitorea de manera proactiva. Las aplicaciones bien mantenidas retienen a los usuarios y protegen la inversión.
##Preguntas frecuentes
1) ¿Cuánto cuesta mantener una aplicación por año? Una estimación común es entre el 20% y el 40% del costo inicial.
2) ¿Necesito actualizar a cada nueva versión de iOS/Android? Lo ideal es que sí. Minimizar el retraso.
3) ¿Con qué frecuencia debo publicar actualizaciones? Mensualmente es un ritmo saludable para la mayoría de las personas.
4) ¿Puedo obligar a los usuarios a actualizar? Sí, pero úsalo con moderación. Frustra a los usuarios.
5) ¿Cómo reducir los costos de mantenimiento? Código limpio, pruebas automatizadas, arquitectura bien hecha.
Lea también
- Optimización del rendimiento móvil: guía completa
- Seguridad de aplicaciones: Guía de protección móvil
- Autenticación de aplicaciones: Guía completa de seguridad y UX
- GraphQL para aplicaciones: Guía de implementación
- TypeScript para aplicaciones: Guía de desarrollo de TypeScript
- Accesibilidad en Aplicaciones Móviles - Guía Completa en la Práctica
