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

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. Ego slide Hemos venido a jugar... Desarrollador de software/producto @islomar

    [email protected] <titulitis> Teleco, Antropología Social y Cultural, Executive MBA, CSM… </titulitis>
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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)
  8. 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.
  9. • 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...
  10. 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).
  11. 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
  12. 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.
  13. “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
  14. Algunas cifras 2011 12 equipos 60 personas en Ingeniería 2017

    184 equipos 1800 personas en Ingeniería 50 Agile coaches 2018 ~3800 empleados
  15. 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)
  16. 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)
  17. • 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
  18. • 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
  19. • 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)
  20. • 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
  21. • 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.
  22. • 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
  23. • 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
  24. • 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?
  25. • 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...
  26. • 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...
  27. 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
  28. • 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é
  29. • 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é
  30. • 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é
  31. 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...
  32. 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
  33. ¿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.
  34. 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
  35. 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
  36. 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”
  37. 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/
  38. 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
  39. 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/
  40. 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