$30 off During Our Annual Pro Sale. View Details »

Aventuras y desventuras de un mindundi en Spotify

Aventuras y desventuras de un mindundi en Spotify

Mucho se ha hablado, y se sigue hablando, del conocido como “modelo Spotify”. Pero poco se ha compartido sobre el estado actual de dicho “modelo”...

Tanto para quien esté interesado en trabajar en Spotify, como para quien quiera conocer un poco mejor cómo funciona internamente a día de hoy (prácticas, organización interna, etc.), me gustaría compartir humildemente cuál fue mi experiencia “end-to-end”: desde la fase de contacto, el proceso de selección, el onboarding, la luna de miel… la de hiel y el posterior offboarding ;-)

Isidro López

June 24, 2019
Tweet

More Decks by Isidro López

Other Decks in Technology

Transcript

  1. Aventuras y desventuras de
    un mindundi en Sp tify
    Comunidad CODE
    24 de junio de 2019

    View Slide

  2. http://thebluediamondgallery.com/legal/disclaimer.html

    View Slide

  3. View Slide

  4. El “modelo Spotify”
    NO
    EXISTE
    (y nunca existió)

    View Slide

  5. https://www.youtube.com/watch?v=GedMMF5sZSU

    View Slide

  6. Ego slide
    Hemos venido a jugar...
    Desarrollador de software/producto
    @islomar
    [email protected]

    Teleco, Antropología Social y
    Cultural, Executive MBA, CSM…

    View Slide

  7. ¿Por qué Spotify?

    View Slide

  8. https://picryl.com/media/questions-demand-doubts-emotions-2ea8c6

    View Slide

  9. View Slide

  10. El proceso de selección

    View Slide

  11. Uno: el brikindans el referral
    ● Busca a alguien que te pueda hablar de la empresa (e.g. vía LinkedIn)
    ● Prepara una buena carta de presentación / motivación
    ● Prepara un buen CV
    ● No pidas el referral a alguien a quien no conoces de nada ni con quien no
    tienes ningún amigo/conocido en común que te pueda avalar
    Programa de referrals en Spotify:
    ● Cobras si pasa el periodo de prueba
    ● Cobras más o menos según el puesto al que acceda
    ● Cobras bastante
    ● A veces funciona bien… y a veces fatal

    View Slide

  12. https://www.amazon.es/El-proceso-CONTEMPORANEA-Franz-Kafka/dp/8497592816

    View Slide

  13. Proceso de selección
    1. Contacto con HR/Talent Acquisition (HangOut)
    a. Hangout, 40 minutos
    2. Entrevista técnica con dos desarrolladores
    a. Hangout, 90 minutos
    https://www.glassdoor.com/spotify

    View Slide

  14. Proceso de selección
    3. Invitación a Estocolmo (onsite)
    a. Email previo con TODA la información (e.g. dos posibles equipos)
    b. “Está tó pagao”
    c. Cuatro horas de entrevistas (para dos posibles Tribes):
    i. Cultura
    ii. Desarrollo (coding)
    iii. Caso (resolución de incidencia)
    iv. Diseño de sistemas
    https://www.glassdoor.com/spotify

    View Slide

  15. Observaciones durante el proceso
    ● Prácticas de eXtreme Programming ausentes (TDD, integración
    continua)
    ● Mucho foco en el bienestar de las personas
    ● Empresa GRANDE
    ● Importancia a la diversidad… siempre y cuando encaje en su cultura

    View Slide

  16. Observaciones durante el proceso
    ● Mucha información sobre cuál es el siguiente paso y cómo será
    ● Contratan independientemente de necesidades concretas
    ○ NO selecciona todo el equipo en el que aterrices luego :-(
    ● “Bad smell” en las pruebas técnicas: algoritmia y nada de código “serio”
    ● Me sentí muy cómodo en todo momento

    View Slide

  17. View Slide

  18. La oferta
    ● 54.000 SEK / mes
    ● Condiciones del on-call
    ● Paquete de realojamiento (relocation package)
    ○ Viaje premudanza y ayuda para encontrar piso
    ○ Ayuda económica para mudanza, muebles/contenedor y primer viaje
    ○ Muchísimas ayudas para la parejas (integración cultural y laboral)
    ○ Clases de sueco
    ○ Etc.
    ● Employee Stock Option Program (ESOP)

    View Slide

  19. https://memegenerator.net/instance/64843465/barney-salute-respect

    View Slide

  20. https://www.worldtravelguide.net/features/city-highlight/city-highlight-stockholm/

    View Slide

  21. https://es.wikipedia.org/wiki/Ley_de_Jante
    1. No pienses que eres especial.
    2. No pienses que eres especial para nosotros.
    3. No pienses que eres más listo que nosotros.
    4. No te creas mejor que nosotros.
    5. No pienses que sabes más que nosotros.
    6. No pienses que vales más que nosotros.
    7. No pienses que vales para algo.
    8. No te rías de nosotros.
    9. No creas que alguien debe ocuparse de ti.
    10. No creas que puedes enseñarnos algo.
    Ley de Jante
    Esta ley impregnó las culturas danesa, noruega, sueca y finesa, países en los que se desaprueba que una persona se
    considere o sea mejor (en inteligencia, fuerza, belleza, o cualquier otra cualidad o habilidad) que las demás.

    View Slide

  22. https://www.pexels.com/photo/jetty-feet-sign-wooden-128299/

    View Slide

  23. ● Portátil y móvil preparado…
    ● Primer día: “New hire orientation”
    ○ Recursos internos, programas de formación, etc.
    ○ Datos de la empresa
    ○ Cómo moverte
    ○ Regalitos :-)
    ● Charla con gente de producto cada viernes
    ● Trello con recursos, roadmap de expectativas/tareas/objetivos
    temporales
    ● Buddy: regulero, no estructurado...

    View Slide

  24. Intro days
    ● Periódicamente, cada ~3 meses
    ● 2 días en Estocolmo, gente de todo el mundo
    ● Talleres (e.g. diversidad) y dinámicas para conocer gente
    ● Diversos “líderes” exponen diversas partes de la organización
    ● Charla final de co-fundador: chascarrillos, historia de la empresa
    ● Chief R&D Officer: A brief history of Spotify
    ● Turnos de preguntas
    ○ ¿Qué pasa con el remoto?
    ○ ¿Qué pasa con la accesibilidad de la aplicación? (dark theme).

    View Slide

  25. https://twitter.com/accesslead/status/880097305671720961

    View Slide

  26. MUCHA transparencia interna: confianza en las personas
    ● Acceso interno a casi todo.
    ● Charlas de Daniel Ek para transmitir visión y estrategia
    ● Facebook Workplace
    ● Newsletter interna
    ● Dashboards con métricas y datos sobre penetración en cada mercado,
    cifras premium vs free filtradas por múltiples parámetros...
    ● Google Drive
    ● Slack
    Diversidad e inclusión son MUY IMPORTANTES

    View Slide

  27. https://www.flickr.com/photos/intersectionconsulting/7537238368

    View Slide

  28. Foco en las personas

    View Slide

  29. https://hrblog.spotify.com/2016/09/02/spotifys-core-values/

    View Slide

  30. Talleres y charlas continuas, e.g.:
    ● Unconscious bias
    ● Growth mindset
    ● La importancia del sueño
    Salud mental
    ● Semana “Heart & Soul”
    ● Selfcare toolkit: cuenta Headspace, recursos online.
    ● “All the feels”: teléfono gratuito y confidencial para asistencia psicológica,
    etc.

    View Slide

  31. “Flexible public holidays” (vacaciones según tus creencias)
    https://hrblog.spotify.com/2017/11/09/say-hello-to-flexible-public-holidays/
    Encuesta de satisfacción interna en el Tribe:
    ● NPS (Net Promoter Score): ¿recomendarías trabajar aquí a un amigo?
    ● Resultados no transparentes

    View Slide

  32. https://unsplash.com/photos/zBsXaPEBSeI
    La parte cool

    View Slide

  33. View Slide

  34. ¿Cómo se organiza Spotify “hoy en día”?

    View Slide

  35. View Slide

  36. https://spotifylabscom.files.wordpress.com/2014/03/spotify-engineering-culture-part1.jpeg

    View Slide

  37. https://spotifylabscom.files.wordpress.com/2014/09/spotify-engineering-culture-part2.jpeg

    View Slide

  38. View Slide

  39. https://www.youtube.com/watch?v=Du11NQ2SEs4

    View Slide

  40. Algunas cifras
    2011
    12 equipos
    60 personas en Ingeniería
    2017
    184 equipos
    1800 personas en Ingeniería
    50 Agile coaches
    2018
    ~3800 empleados

    View Slide

  41. https://spotifylabscom.files.wordpress.com/2014/03/spotify-engineering-culture-part1.jpeg

    View Slide

  42. Business Unit
    ● Squad
    ● Tribe
    ● RIP Chapter
    ● RIP Chapter Lead
    ○ Hola, Engineering Manager
    ● Guild (“gremio”)
    ● Mission
    ● Business Unit
    Alliance - Mission
    Tribe
    Squad
    (continuous work in Progress)

    View Slide

  43. On-call
    ● Incluido en contrato
    ● Flexibilidad de comienzo: e.g. a los 6 meses
    ● Se paga por día, independientemente de que existan o no incidencias
    ● MUY bien pagado
    ● Acuerdo dentro del equipo sobre cómo organizarlo
    ● PagerDuty, conectado con HR y la nómina
    ● Hiperregulado: horas y días de descanso a posteriori
    ● 1 día libre por cada 5 (aunque no haya intervención)
    ● Canal Slack con gente muy experimentada (guardia de las guardias)

    View Slide

  44. Carrera profesional
    https://www.pexels.com/photo/beach-water-steps-sand-17727/

    View Slide

  45. ● Steps framework
    ○ Steps: Senior Engineer, Principal Engineer, etc.
    ○ Proceso de mapeo interno de “etiquetas”
    ● Evaluación personal de rendimiento (y expectativas) basado en:
    ○ Mastery
    ○ Achievement
    ○ Behaviour
    ● Caminos diferentes: Engineer - Engineer Manager / Tribe Lead, etc...
    ● Plan de Desarrollo: a trabajar y definir junto con tu Engineer Manager
    ○ Documentos de autoevaluación y ayuda a la reflexión
    ○ Herramienta de feedback 360º
    ○ Definición de objetivos a 3-6 meses: enfoque 70/20/10

    View Slide

  46. ¿Cómo se consigue el alineamiento?

    View Slide

  47. ● Spotify Rhythm: estrella polar, objetivos a 2 años
    ● Company bets: objetivos estratégicos (máx. 10)
    ○ Strategy days: upper management se junta dos veces al año para
    revisar los Company Bets.
    ● Mountain bets: innovaciones, compite por gente y recursos con los
    Company bets.
    ● OKR (Objective Key Results): a nivel de Mission y Tribe, top-bottom-top

    View Slide

  48. https://www.slideshare.net/peterantman/growing-up-with-agile-how-the-spotify-model-has-evolved

    View Slide

  49. ● Alineados con los Company Bets
    ● A nivel de Tribe
    ● Definición top-down y down-top
    ○ Margen del Squad y Tribe para introducir nuestros propios objetivos
    ● Ventana deslizante de 3 meses
    ● Revisión bisemanal en sesión grupal con todo el Tribe
    OKR (Objective Key Results)

    View Slide

  50. ● Tribe Mission y Squad Mission
    ● Hack days (10%, cada Tribe decide cómo hacerlo)
    ● Hack week
    ● Tribe:
    ○ Lunch & Learn
    ○ Club de lectura
    ● Conferencias técnicas internas
    ● Sesión para reflejar estado actual de prácticas, herramientas y tecnologías
    en la empresa y detectar posibles áreas de mejora

    View Slide

  51. ● Grupo de Arquitectura Tecnológica
    ○ Promover principios y guías
    ○ Resolver problemas transversales en la organización de ingeniería
    ○ NO para dar el visto bueno de nada (en teoría)
    ● Grupo de “líderes técnicos”
    ○ Estrategia tecnológica
    ○ Definición de “excelencia técnica”: MEEEEH.

    View Slide

  52. Sobre tecnología, principios y prácticas técnicas
    https://www.pexels.com/photo/green-and-black-computer-motherboard-825258/

    View Slide

  53. ● De todo, principalmente Java para backend (vienen de Python)
    ○ Framework propio: Apollo
    ● Hacia React en frontend
    ● Soluciones propias para casi todo:
    ○ https://github.com/spotify
    ○ Continuous Integration: herramienta común
    ○ Continuous Deployment
    ○ Orquestación de contenedores: Helios
    ○ Monitorización y alerting

    View Slide

  54. ● Equipos de infraestructura / plataforma
    ○ Economía de escala: principal foco en la parte tecnológica
    ○ Autonomía de los equipos para hacer continuous deployment… si quieres
    ○ Muy fácil hacer rollback
    ○ Autonomía de los equipos para definir instancias, escalar, etc.
    ○ Monitorización, alerting y logging de serie
    ● A/B testing en el ADN (data-driven decisions): ABBA

    View Slide

  55. ● Modelo open source interno
    ○ pull request a otros equipos en lugar de esperar.
    ○ requiere acuerdos inter-equipos sobre “calidad” para evitar conflictos.
    ● Mi squad/tribe:
    ○ servicios relativamente pequeños y simples, apenas evolucionables. Pocas dependencias.
    ¿Es realmente un problema la falta de “excelencia técnica” en este contexto?

    View Slide

  56. ¡Qué carallo? (aka WTF)
    https://www.flickr.com/photos/pedrosimoes7/39316167761

    View Slide

  57. View Slide

  58. ● Foco REAL en las personas en el día a día
    ● Propiedad colectiva del producto, no solo del código
    ● Equipos con responsabilidad y visión end-to-end
    ● Alta colaboración, con pair programming por defecto
    ● Feedback rápido (negocio y sistemas):
    ○ Integración continua de verdad, con trunk-based development por defecto
    “Agile” para mí es...

    View Slide

  59. ● Continuous deployment o al menos delivery
    ● TDD por defecto
    ● Simplicidad, a bajo nivel (de código) y alto nivel (de diseño/arquitectura)
    ● Código fácil de entender y de cambiar
    ● Valores como la humildad, el respeto y la transparencia
    “Agile” para mí es...

    View Slide

  60. WTF que encontré
    ● Jira a saco
    ● Apenas radiadores de información a nivel de Squad y Tribe
    ● Scrum “de libro”
    ● Retrospectivas mecánicas en 15 minutos: “qué ha estado bien”, “qué ha
    estado mal”, y a otra cosa mariposa.
    ● Estimando con story-points “porque sí”
    ● Equipo con etiquetas: e.g. QA, Technical Owner

    View Slide

  61. ● Sin DoD ni DoR ni criterios de aceptación en las historias
    ● Mayoría de los equipos en espacios abiertos compartidos
    ● Sin pair ni mob programming (cowgirls y cowboys)
    ● Sin “team agreements”, cada uno a su bola
    ● Falta de cross-polinización entre los squads de una tribu
    WTF que encontré

    View Slide

  62. ● Nada de TDD. Tests hechos a posteriori… complejos y deficientes.
    ● Pull requests: ramas de días/semanas, miles de líneas...
    ● Desconocimiento casi total de arquitectura hexagonal, DDD, SOLID, etc.
    ● Código muy complejo, difícil de entender y de cambiar
    ● Identificación con el código: pairing y reviews dolorosas
    ● Falta de documentación: README vacío, ni un diagrama de arquitectura
    ● Ningún servicio se podía arrancar en local (dependencias múltiples)
    WTF que encontré

    View Slide

  63. ● Sin feedback serio en el equipo
    ○ Una vez al año, no todo el mundo participa
    ○ Evasión del conflicto: “hacerse el sueco”
    ● Technical Owner (TO): héroe, centralización de tareas
    ● Miembro no empleado (consultora): diferencias :-(
    ● Product Manager con visión Agile = Scrum
    ● Engineer Manager: 1-on-1 semanal… pero hiperpasiva y ausente
    WTF que encontré

    View Slide

  64. El movimiento se demuestra andando
    ● Promover pairing: o esperaba a tener compañero o me unía
    ● Limitar el WIP
    ● Proponer retrospectivas “diferentes”
    ● Probar Kanban: pull vs push
    ● TDD: lead by example
    ● Promover trunk-based development
    ● Scout rule
    ● Club de lectura: “99 bottles” de Sandi Metz
    ● Charlas sobre arquitectura hexagonal, DDD, outside-in TDD, SOLID...

    View Slide

  65. https://slides.com/irnmm/devsyparientes#/27

    View Slide

  66. What the hell am i doing here (“Creep”)
    ● Sensación de no aprender (lo que me importa)
    ● Para encajar, debía “retroceder” 5 años
    ○ Concepción de “agile” y “excelencia técnica” demasiado diferentes
    ● Más personal (aún):
    ○ El coste de la vida
    ○ La oscuridad (de noche a las 3pm)
    ○ El frío
    ○ Alejado de la gente a la que aprecio
    ● El remate: charla “final” con Engineer Manager

    View Slide

  67. https://www.pexels.com/photo/adult-art-conceptual-dark-278312/

    View Slide

  68. Offboarding

    View Slide

  69. ¿Se podría haber evitado la “incompatibilidad”?
    ● No todo fue una sorpresa: smells durante proceso de selección
    ● Engineer Manager: ausente, sin feedback, hiperpasividad
    ● ¿Cambio de equipo?
    ● Adaptarme temporal o definitivamente: NOPE.

    View Slide

  70. Qué me gustó de Spotify
    ● Proceso de selección y onboarding
    ● Mucha transparencia interna
    ● Confianza en las personas
    ● Equipos autónomos (responsabilidad end-to-end)
    ● Equipos autoorganizados (o casi)
    ● Espacio y tiempo para la innovación
    ● Mucho dinamismo interno: talleres, charlas, iniciativas de mejora,
    deporte, etc.
    ● Importancia a la salud mental
    ● Diversidad
    ● Estocolmo

    View Slide

  71. Qué no me gustó de Spotify
    ● Engineer Manager totalmente pasiva… excepto al final
    ● La experiencia del día a día: va a depender muchísimo de dónde caigas...
    ● Ha crecido “demasiado” según lo que se busque:
    ○ Equipos “líquidos”: se crean y destruyen con relativa frecuencia
    ○ Referencias a personas como “recursos”
    ○ Cambio constante
    ● Excelencia técnica centrada en las herramientas e infraestructura

    View Slide

  72. Qué no me gustó de Spotify
    ● Falta general de conocimiento y experiencia en alternativas a Scrum
    ○ XP: ni está ni se le espera
    ● Equipos con demasiadas etiquetas: QA, Technical Owner...
    ● Redescubriendo la rueda continuamente a nivel de squad (cultura,
    procesos, prácticas, etc.)
    ● Falta de acompañamiento a equipos recién creados
    ○ Agile Coaches desaparecidos o con “líderes” o sin meterse en temas “técnicos”

    View Slide

  73. https://www.pexels.com/photo/woman-lying-on-sofa-with-cat-in-her-foot-909620/

    View Slide

  74. Enlaces de interés (I)
    ● https://labs.spotify.com/
    ○ https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-1/
    ○ https://labs.spotify.com/2014/09/20/spotify-engineering-culture-part-2/
    ● https://hrblog.spotify.com/
    ● Spotify “Heart & Soul”
    ● ESOP (Employee Stock Options Program)
    ○ https://hrblog.spotify.com/2017/05/31/the-spotify-stock-option-program-for-the-win/
    ○ https://hrblog.spotify.com/2019/06/13/show-me-the-incentive/

    View Slide

  75. Enlaces de interés (II)
    ● Preparación proceso:
    ○ Introducción a estructuras de datos y algoritmos
    ○ Cracking the coding interview
    ● Spotify break even
    ● Spotify’s Organizational Structure for Flexible Growth & Expansion
    ● Otras charlas o posts sobre Spotify:
    ○ Growing up with agile - how the Spotify 'model' has evolved
    ○ You can do better than the Spotify model
    ● Cultura sueca:
    ○ https://es.wikipedia.org/wiki/Lagom
    ○ https://es.wikipedia.org/wiki/Ley_de_Jante

    View Slide

  76. Enlaces de interés (III)
    Carrera profesional (Steps framework)
    ● https://labs.spotify.com/2016/02/08/technical-career-path/
    ● https://labs.spotify.com/2016/02/15/spotify-technology-career-steps/
    ● https://labs.spotify.com/2016/02/22/things-we-learned-creating-technolog
    y-career-steps/

    View Slide

  77. Fuentes de imágenes
    ● Spotify logos e iconos: https://developer.spotify.com/branding-guidelines/
    ● Big Beng: https://www.flickr.com/photos/yavannna/415483302
    ● Ámsterdam: https://www.flickr.com/photos/44534236@N00/5866586357
    ● Muro de Berlin:
    ○ http://www.all-free-photos.com/show/showphoto.php?idph=PI89196&lang=en
    ● Hamburgo:
    ○ https://www.pexels.com/photo/reflection-of-building-on-body-of-water-2506904/
    ● Remoto: https://www.pexels.com/photo/woman-lying-on-sofa-with-cat-in-her-foot-909620/
    ● https://www.pexels.com/
    ● https://unsplash.com

    View Slide

  78. Feedback bienvenido (próximamente via Typeform)

    View Slide

  79. https://www.youtube.com/watch?v=GedMMF5sZSU

    View Slide

  80. https://www.pexels.com/photo/questions-answers-signage-208494/

    View Slide