Upgrade to Pro — share decks privately, control downloads, hide ads and more …

¿Qué pasa luego de salir a producción?

¿Qué pasa luego de salir a producción?

Conceptos, tips y trucos para gestionar la vida de una aplicación mobile cuando ya se encuentra en producción. Charla brindada en el marco del primer día de la mDevConf 2020: https://www.youtube.com/watch?v=lfW3xXnUBJs

Facundo Rodríguez Arceri

December 17, 2020
Tweet

More Decks by Facundo Rodríguez Arceri

Other Decks in Programming

Transcript

  1. Sobre mí • Facundo Rodríguez Arceri • Buenos Aires, Argentina

    • Android Developer en Ring (Amazon) • Docente e instructor • Experiencia desarrollando en Android desde 2011 • @facundomr
  2. Agenda • Nombrando versiones • Distribución • Lanzamiento progresivo •

    Reseñas en la consola • Usuarios libres de fallos • Adopción • Feature flags • A/B Testing
  3. Nombrando versiones • versionCode+versionName / Version+Build Number • IntelliJ Idea:

    2020.3 ◦ Año.Version • Ubuntu 20.10 ◦ Año.Mes • macOS: 11.0.1 ◦ Mayor.Minor.Fix
  4. Distribución • Producción: Play Store / App Store • ¿Y

    para test? ◦ Firebase App Distribution ◦ HockeyApp ◦ Visual Studio App Center
  5. Lanzamiento progresivo • Debemos salir a producción de a poco.

    • El mundo real es distinto a nuestros ambientes de pruebas. ◦ Marcas y modelos de dispositivos. ◦ Calidades de conexión a Internet. ◦ Versiones de sistemas operativos. ◦ Idiomas / encoding de los dispositivos. ◦ Zonas horarias.
  6. Reseñas en la consola • Interacción humana • Requiere trabajo

    y constancia para revisar periódicamente. • No necesariamente apunta a aspectos técnicos. ◦ Conviven tecnología y gestión del producto ❤ • Lo bueno, lo malo y lo feo.
  7. • Porcentaje de los usuarios diarios de una versión (Daily

    Active Users) que no han experimentado ningún error fatal (crash) durante toda su sesión de uso en la app Usuarios libres de fallos (Crash-free users)
  8. Adopción • ¿Qué porcentaje de los usuarios activos diaros (DAU)

    utilizan determinada versión? • Cuanto más alto es este valor, menos influye el azar sobre las demás métricas. • Debe acompañar el lanzamiento progresivo.
  9. Feature flags • Son parámetros que nos permiten habilitar o

    deshabilitar funcionalidades en forma remota, sin necesidad de publicar/distribuir una nueva versión de la app.
  10. Feature flags • Nunca dependas directamente de un servicio que

    provea esta funcionalidad. ◦ Patrón Proxy • Se incrementa la complejidad para probar ⚠ ◦ Preference screen para poder sobre-escribir valores • ¿Y si necesitamos que el FF dependa de varias cosas? ◦ Sistema operativo ◦ Versión de la app ◦ Propiedades del usuario
  11. A/B Testing • Es la práctica de realizar distintos experimentos

    en la app para ver cuál de ellos es más efectivo. • Antes de hacer A/B testing hay que tomar algunas decisiones ◦ ¿Qué implica cada experimento? ◦ ¿Qué significa que un experimento es más efectivo que el otro?
  12. A/B Testing • Similar a un feature flag ◦ El

    código incluirá condiciones para bifurcar el camino (patrón Strategy) ◦ Los experimentos se configuran remotamente. ◦ Se recomienda poder sobre-escribirlos localmente. • Generan trabajo adicional cuando la decisión ya está tomada. ◦ Borrar la implementación que se descarta. ◦ Muy probablemente la funcionalidad termine quedando detrás de un Feature Flag.