
Google Pay
Going global at Google Pay with Flutter
Métricas de éxito
70%
reducción en el esfuerzo de ingeniería
35%
reducción en las líneas de código
Goal
Con 100 millones de usuarios en docenas de países, Google Pay permite a los usuarios de todo el mundo pagar, ahorrar, administrar gastos y más. Pero para lograrlo, dependían de 1.7 millones de líneas de código entre sus aplicaciones de Android e iOS, una cantidad que no se sentía sostenible a medida que Google Pay continuaba expandiéndose a nuevos países, cada uno de los cuales requeriría sus propias funciones exclusivas.
Para hacer las cosas aún más desafiantes, muchas de esas nuevas regiones tenían una gran cantidad de usuarios de iOS, mientras que sus usuarios existentes eran casi exclusivamente Android. Eso significaba que no solo tendrían que contratar a más ingenieros de iOS, sino que tendrían que seguir construyendo cada función dos veces: una para Android y otra para iOS.
Así que, en su lugar, optaron por invertir en un framework multiplataforma que les permitiera hacer más con menos: Flutter.
Why Flutter?
El equipo probó inicialmente Flutter como una posibilidad de Add-to-app, pero la oportunidad de reescribir toda la aplicación era demasiado grande para ignorarla.
Aunque significó una fuerte inversión inicial de recursos de ingeniería, esto le permitiría al equipo unificar su liderazgo de ingeniería, dejar de trabajar parchando agujeros sin fin y aumentar la velocidad y eficiencia del desarrollo de sus clientes para lograr tiempos de respuesta e implementación más rápidos.
Por encima de todo, migrar a Flutter permitiría un escalado rápido y eficiente en recursos de Google Pay en todo el mundo. Mientras que construir funciones tanto en Android como en iOS requería el doble de esfuerzo, Flutter solo requeriría aproximadamente 1.2 veces más trabajo. Así que decidieron dar el paso.
Their Solution
Reconstruir Google Pay en Flutter no estuvo exento de desafíos. Primero, tendrían que volver a capacitar al equipo en un nuevo lenguaje, plataforma y enfoque para la interfaz de usuario. Luego, tendrían que reescribir la aplicación a medida que cambiaba, porque se actualizaba constantemente. Y finalmente, tendrían que pasar por todas las revisiones y auditorías de seguridad necesarias por segunda vez donde la aplicación ya estaba lanzada.
Pero antes de todo eso, tenían que demostrar el concepto. Así que en 2019, pasaron varios meses construyendo el caso para migrar Google Pay a Flutter. Un pequeño equipo de tres ingenieros de software sénior de Android e iOS se unió, escribiendo y reescribiendo hasta que tuvieron una sección vertical de la aplicación: página de inicio, chat y pagos (con complementos nativos críticos).
Luego realizaron algunos sprints cortos para otros ingenieros para darles la oportunidad de enviar sus comentarios. Flutter fue un éxito: al equipo le encantó poder obtener retroalimentación instantánea mientras desarrollaban, así como la cantidad de widgets de alta calidad que podían aprovechar para facilitar el desarrollo.
Una vez que obtuvieron la luz verde de la alta gerencia, incorporaron a 50 ingenieros y les dieron seis meses para capacitarse y reescribir la aplicación para un lanzamiento beta en Singapur.
El lanzamiento fue un éxito. Animados, incorporaron a otros 100 ingenieros para que ayudaran a relanzar Google Pay en la India y en los EE. UU. también con la base de código de Flutter. Fue una carrera contra el tiempo: necesitaban reescribir una aplicación existente con casi 300 funciones y probarla en fase beta, luego lanzarla a más de 100 millones de usuarios activos mensuales, todo mientras mantenían la aplicación heredada.
“A todos les encantó Flutter: podías ver la emoción en los rostros de las personas cuando hablaban de lo rápido que era construir una interfaz de usuario.”
- David Ko, director de ingeniería, Google Pay
Results
A pesar de estos desafíos, el equipo lanzó Google Pay para pruebas beta en la India a principios de agosto.
La aplicación de Google Pay reconstruida es más pequeña, más eficiente de administrar y más fácil de actualizar. A pesar de agregar varias características nuevas, la nueva base de código es un 35% más pequeña que las implementaciones originales: 1.1 millones de líneas de código en lugar de 1.7 millones. Al mismo tiempo, el equipo estima que han ahorrado alrededor del 60-70% del tiempo de sus ingenieros porque Flutter es simplemente mucho más fácil de gestionar.
El equipo, que ahora cuenta con casi 180 ingenieros de software, sigue recopilando comentarios sobre la prueba beta en la India, pero los resultados parecen prometedores. La beta de la India se lanzará a todos los más de 100 millones de usuarios indios a finales de este año, trayendo consigo una interfaz de usuario renovada y todas las funciones que sus usuarios ya conocen y aman.
Con Flutter, Google Pay 3.0 podrá escalar de manera rápida y eficiente en iOS y Android, comenzando con un relanzamiento importante de Google Pay en los EE. UU. este año. Esta tecnología proporciona una base sobre la cual el equipo puede construir a medida que expanden Google Pay 3.0 al resto del mundo en 2021.