1x06 | Charlando con los Androides de Jeff
Resumen
La charla profundiza en la cultura de producto de la empresa, los desafíos técnicos que enfrentaron al escalar la aplicación a una super-app con múltiples verticales, y cómo la pandemia impactó su forma de trabajar. Discutimos temas como la modularización, el testing, la gestión de un design system y la importancia de trabajar con un enfoque en el “outcome” sobre el “output”.
Temas principales:
- Cultura de producto en Jeff: Exploramos la mentalidad de la empresa centrada en el “outcome” (resultado de negocio) por encima del “output” (funcionalidades entregadas). Discutimos ceremonias como el Design Sprint y las Product Reviews mensuales para alinear al equipo con los objetivos de negocio.
- Evolución y arquitectura de la aplicación: Los invitados narran cómo la aplicación pasó de ser un servicio de lavandería a una “super-app” con múltiples verticales (Beauty, Fit, Relax). Hablamos del reto técnico de la modularización, el intento fallido con Dynamic Features y la migración a una arquitectura multi-módulo más tradicional.
- Impacto de la pandemia y trabajo remoto: El equipo comparte cómo la pandemia afectó drásticamente a la empresa y cómo se adaptaron a un modelo de trabajo 100% remoto, incluyendo el proceso de onboarding para nuevos miembros como Emanuel.
- Testing y calidad de código: Detallamos la evolución de la estrategia de testing, pasando de un código difícil de testear a la implementación de tests unitarios en los ViewModels y tests de UI con Barista.
- Gestión de dependencias y Design System: Discutimos el estado de la inyección de dependencias en el proyecto, donde conviven Dagger y Koin, y los planes de migrar a Hilt. Además, explicamos cómo gestionan su Design System a través de un repositorio separado como submódulo de Git.
- Retos actuales y futuros: El equipo habla sobre su desafío actual de unificar la experiencia de usuario a través de las diferentes verticales en un único flujo, y cómo esto está rediseñando la arquitectura de la aplicación.
- Mejora de tiempos de compilación: Como respuesta a la pregunta del episodio anterior, el equipo comparte sus estrategias para reducir los tiempos de build, como la modularización y la eliminación de
productFlavorsen favor debuildTypes.