← Todos los episodios S1 · Episodio 3

1x03 | Charlando con los Androides de Tuenti

· 01:14:27

Resumen

La conversación comienza con un análisis de los principios de los equipos de alto rendimiento y luego recorre la historia de la aplicación, desde su cambio de red social a operadora móvil hasta los desafíos actuales, como la modularización, el trabajo remoto y la gestión de una base de código compleja y multimarca.

Temas principales:

  • [00:11] Las Claves de los Equipos de Alto Rendimiento: Se introducen los cinco pilares de los equipos exitosos según el Proyecto Aristóteles de Google: seguridad psicológica, confianza, estructura y claridad, significado e impacto. Estos conceptos sirven como hilo conductor a lo largo de la conversación.
  • [10:07] La Evolución de Tuenti: David Pastor narra la transición de la aplicación de ser una red social a convertirse en una operadora móvil virtual (OMV), lo que implicó una reconstrucción completa de la app y un cambio de paradigma.
  • [13:39] Evolución Técnica del Código: David Santiago explica cómo la base de código ha evolucionado para dar soporte a múltiples marcas y países, gestionando la complejidad sin realizar una reescritura desde cero y adaptándose a nuevas funcionalidades a lo largo de más de una década.
  • [16:43] Organización del Equipo: Guillermo Merino detalla el cambio en la estructura del equipo, pasando de feature teams (equipos transversales por funcionalidad) a platform teams (equipos por plataforma: Android, iOS, etc.), y las motivaciones detrás de esta reorganización.
  • [19:56] Adaptación al Trabajo Remoto: Miguel Ángel García, un veterano del teletrabajo, comparte cómo la pandemia cambió la dinámica para todo el equipo. Discutimos las ventajas, los desafíos de la comunicación asíncrona y la importancia de mantener la cohesión social.
  • [28:11] Creación de un Sistema de Diseño: El equipo habla sobre su proyecto para crear un framework de componentes de UI reutilizables y multimarca, con el objetivo de unificar la experiencia de usuario y optimizar el desarrollo entre diferentes aplicaciones.
  • [34:36] Estrategias de Testing: Se genera un debate sobre su pirámide de testing, explicando por qué han reducido los tests de integración en favor de los tests de aceptación y unitarios, y discutiendo el coste-beneficio de cada tipo de prueba.
  • [42:28] De Composer a Marathon para Tests de Aceptación: David Santiago describe la migración de su infraestructura de testing, reemplazando Composer por Marathon para mejorar la gestión de tests inestables (flaky tests) y obtener grabaciones de vídeo de las ejecuciones.
  • [46:55] Gestión de la Asincronía: Explicamos el enfoque híbrido del equipo, combinando una librería de Promesas de estilo JavaScript para el código más antiguo con RxJava para las partes más modernas y reactivas de la aplicación.
  • [01:06:50] La Experiencia con WebViews: El equipo comparte los desafíos y soluciones al trabajar extensivamente con WebViews, incluyendo la fragmentación entre versiones de Android y la creación de un “puente” para comunicar el código nativo con el contenido web.