< Return to Video

Spotify Engineering Culture - Part 1

  • 0:06 - 0:07
    Un des grands facteurs de succès ici
  • 0:07 - 0:10
    chez Spotify, c'est notre culture de l'ingénierie agile.
  • 0:10 - 0:12
    La culture tend à être invisible.
  • 0:12 - 0:13
    On ne s'en rend pas compte.
  • 0:13 - 0:14
    parce que c'est là tout le temps.
  • 0:14 - 0:15
    C'est un peu comme l'air qu'on respire.
  • 0:15 - 0:17
    Mais si tout le monde comprend la culture,
  • 0:17 - 0:19
    nous sommes plus susceptibles de pouvoir le garder..
  • 0:19 - 0:21
    ... et même la renforcer au fur et à mesure que nous grandissons.
  • 0:21 - 0:23
    Alors, c'est le but de cette vidéo.
  • 0:23 - 0:24
    Quand notre premier lecteur de musique
  • 0:24 - 0:25
    a été lancé en 2008.
  • 0:25 - 0:27
    On n'était qu'une entreprise de Scrum.
  • 0:27 - 0:29
    Scrum est une approche de développement agile
  • 0:29 - 0:30
    bien établie...
  • 0:30 - 0:32
    et ça nous a donné une bonne culture d'équipe.
  • 0:32 - 0:34
    Cependant, quelques années plus tard,
  • 0:34 - 0:35
    nous avions beaucoup plus d'équipes
  • 0:35 - 0:37
    et on a découvert que certaines des
  • 0:37 - 0:38
    pratiques du Scrum standard
  • 0:38 - 0:39
    commençaient a nous ralentir.
  • 0:39 - 0:41
    Nous avons donc décidé de rendre toutes les règles de Scrum facultatives.
  • 0:41 - 0:43
    Les règles sont un bon début, mais
  • 0:43 - 0:45
    il faut savoir les briser au besoin.
  • 0:45 - 0:46
    Nous avons décidé qu'Agile était plus important que Scrum.
  • 0:46 - 0:47
    Et que les principes Agiles
  • 0:47 - 0:48
    étaient plus importants que
  • 0:48 - 0:50
    les pratiques spécifiques.
  • 0:50 - 0:51
    Donc, nous avons renommé
  • 0:51 - 0:53
    le rôle de Scrum Master à Agile Coach.
  • 0:53 - 0:54
    Parce que nous voulions des chefs serviteurs
  • 0:54 - 0:55
    plutôt que des Process Masters.
  • 0:55 - 0:57
    Nous avons aussi commencé à utiliser le terme
  • 0:57 - 0:59
    d'escouade au lieu de l'équipe Scrum.
  • 0:59 - 1:01
    Et notre principal moteur est devenu l'autonomie.
  • 1:01 - 1:03
    Qu'est-ce qu'une escouade autonome?
  • 1:03 - 1:05
    Une escouade est une petite unité interfonctionnelle
  • 1:05 - 1:07
    qui s'auto-organise...
  • 1:07 - 1:09
    habituellement moins de huit personnes.
  • 1:09 - 1:10
    Ils s'assoient ensemble..
  • 1:10 - 1:12
    et ils ont une responsabilité de bout en bout
  • 1:12 - 1:13
    pour les choses qu'ils construisent,
  • 1:13 - 1:14
    conçoivent, committent, déploient,
  • 1:14 - 1:16
    entretiennent, font tourner,
  • 1:16 - 1:17
    en somme, le système dans sa totalité.
  • 1:17 - 1:19
    chaque escouade a une mission à long terme...
  • 1:19 - 1:20
    tels que "Faire de Spotify
  • 1:20 - 1:22
    le meilleur endroit pour découvrir de la musique."
  • 1:22 - 1:23
    ou des choses internes comme
  • 1:23 - 1:25
    L'infrastructure pour les A/B tests.
  • 1:25 - 1:27
    L'autonomie signifie essentiellement que
  • 1:27 - 1:28
    c'est l'escouade qui décide quoi construire,
  • 1:28 - 1:29
    ... comment le construire et
  • 1:29 - 1:31
    . comment travailler ensemble
  • 1:31 - 1:32
    en le faisant.
  • 1:32 - 1:33
    Il y a bien sur
  • 1:33 - 1:34
    certaines limites à cela, telles que
  • 1:34 - 1:36
    la mission de l'escouade,
  • 1:36 - 1:37
    la stratégie globale du produit
  • 1:37 - 1:39
    quel que soit le domaine sur lequel ils travaillent
  • 1:39 - 1:40
    et les objectifs à court terme
  • 1:40 - 1:42
    qui sont renégociées tous les trimestres.
  • 1:42 - 1:45
    Notre bureau est optimisé pour la collaboration.
  • 1:45 - 1:46
    Voici un espace d'escouade typique.
  • 1:46 - 1:49
    Les membres de l'équipe travaillent ensemble ici
  • 1:49 - 1:50
    avec des bureaux réglables
  • 1:50 - 1:52
    et un accès facile aux écrans des autres.
  • 1:52 - 1:53
    Nous nous rassemblons ici
  • 1:53 - 1:55
    au lounge pour des choses comme
  • 1:55 - 1:56
    les rétrospectives.
  • 1:56 - 1:58
    et à l'arrière, il y a une salle de meeting
  • 1:58 - 1:59
    pour les réunions plus petites ou
  • 1:59 - 2:01
    prends juste un peu de temps au calme.
  • 2:01 - 2:02
    Presque tous les murs sont des tableaux blancs.
  • 2:02 - 2:05
    Alors, pourquoi l'autonomie est-elle si importante?
  • 2:05 - 2:07
    Eh bien, parce que c'est motivant
  • 2:07 - 2:08
    et des gens motivés
  • 2:08 - 2:09
    construisent de meilleures choses.
  • 2:09 - 2:10
    Aussi, l'autonomie nous rend rapides
  • 2:10 - 2:12
    en laissant les décisions se faire localement
  • 2:12 - 2:14
    dans l'équipe au lieu de
  • 2:14 - 2:15
    via un groupe de gérants
  • 2:15 - 2:16
    des comités et tout ça.
  • 2:16 - 2:17
    Cela nous aide à minimiser les transferts
  • 2:17 - 2:18
    et l'attente.
  • 2:18 - 2:19
    Donc, on peut mettre à l'échelle
  • 2:19 - 2:21
    sans blocage avec les dépendances
  • 2:21 - 2:22
    et la coordination.
  • 2:22 - 2:23
    Bien que chaque escouade ait
  • 2:23 - 2:24
    sa propre mission.
  • 2:24 - 2:25
    Ils doivent être alignés
  • 2:25 - 2:26
    avec la stratégie produit,
  • 2:26 - 2:27
    priorités de l'entreprise,
  • 2:27 - 2:28
    et les autres équipes.
  • 2:28 - 2:30
    Essentiellement, être un bon citoyen
  • 2:30 - 2:31
    dans cet écosystème Spotify.
  • 2:31 - 2:33
    La mission générale de Spotify est la suivante
  • 2:33 - 2:33
    plus important que
  • 2:33 - 2:35
    n'importe quel escouade individuelle.
  • 2:35 - 2:36
    Le principe clé est donc
  • 2:36 - 2:37
    être vraiment autonome
  • 2:37 - 2:39
    mais ne pas sous-optimiser.
  • 2:39 - 2:40
    C'est un peu comme une Jazz band.
  • 2:40 - 2:42
    Bien que chaque musicien soit autonome
  • 2:42 - 2:44
    et joue de son propre instrument
  • 2:44 - 2:45
    Ils s'écoutent mutuellement
  • 2:45 - 2:46
    et se concentrent sur la chanson entière
  • 2:46 - 2:47
    ensemble
  • 2:47 - 2:48
    C'est là qu'un beau morceau
  • 2:48 - 2:49
    de musique est créé.
  • 2:49 - 2:51
    Donc, notre objectif est légèrement couplé
  • 2:51 - 2:53
    mais avec des équipes bien alignées
  • 2:53 - 2:55
    On n' y est pas encore tous.
  • 2:55 - 2:56
    Mais nous avons expérimenté
  • 2:56 - 2:57
    avec beaucoup de façons différentes
  • 2:57 - 2:58
    de s'en rapprocher.
  • 2:58 - 2:59
    En fait, cela s'applique
  • 2:59 - 3:00
    à la plupart des choses dans cette vidéo
  • 3:00 - 3:01
    Cette description de la culture est
  • 3:01 - 3:03
    un mélange de ce que nous sommes aujourd'hui
  • 3:03 - 3:05
    et ce que nous essayons de devenir
  • 3:05 - 3:06
    dans le futur.
  • 3:06 - 3:07
    Alignement et autonomie
  • 3:07 - 3:08
    peuvent sembler
  • 3:08 - 3:09
    à deux extrémités d'une échelle.
  • 3:09 - 3:11
    Plus d'autonomie
  • 3:11 - 3:12
    signifie moins d'alignement.
  • 3:12 - 3:14
    Cependant, nous pensons qu'il s'agit plutôt d'un
  • 3:14 - 3:16
    deux dimensions différentes.
  • 3:16 - 3:17
    Ici-bas, il y a
  • 3:17 - 3:19
    faible alignement et faible autonomie,
  • 3:19 - 3:21
    une culture de microgestion.
  • 3:21 - 3:22
    Pas d'objectif de haut niveau
  • 3:22 - 3:23
    Tais-toi et
  • 3:23 - 3:24
    suivre les ordres.
  • 3:24 - 3:25
    Là-haut,
  • 3:25 - 3:26
    haut alignement, mais
  • 3:26 - 3:27
    autonomie encore faible.
  • 3:27 - 3:28
    Donc, les leaders sont capables
  • 3:28 - 3:29
    de communiquer
  • 3:29 - 3:29
    quel problème doit être
  • 3:29 - 3:30
    resolu.
  • 3:30 - 3:31
    Mais ils disent aussi
  • 3:31 - 3:32
    comment le résoudre.
  • 3:32 - 3:35
    Haut alignement et haute autonomie
  • 3:35 - 3:37
    signifie que les leaders se concentrent sur
  • 3:37 - 3:38
    quel problème résoudre.
  • 3:38 - 3:39
    Mais, laissent l'équipe
  • 3:39 - 3:41
    trouver comment le résoudre.
  • 3:41 - 3:42
    Et ici, alors?
  • 3:42 - 3:43
    Faible alignement
  • 3:43 - 3:45
    et haute autonomie
  • 3:45 - 3:46
    signifie que l'équipe fait ce qu'elle veut
  • 3:46 - 3:48
    et pratiquement tous courent dans
  • 3:48 - 3:49
    des directions différentes.
  • 3:49 - 3:50
    Les leaders sont désespérés
  • 3:50 - 3:51
    et notre produit
  • 3:51 - 3:52
    devient un Frankenstein.
  • 3:52 - 3:53
    Nous faisons de notre mieux
  • 3:53 - 3:54
    d'être ici.
  • 3:54 - 3:55
    autonomie alignée
  • 3:55 - 3:57
    et nous continuons à expérimenter
  • 3:57 - 3:58
    de différentes manières
  • 3:58 - 3:59
    d'y arriver.
  • 3:59 - 4:01
    Ainsi, l'alignement permet l'autonomie.
  • 4:01 - 4:02
    Plus l'alignement est fort,
  • 4:02 - 4:05
    plus on peut s'efforcer d'accorder de l'autonomie.
  • 4:05 - 4:07
    Cela signifie que le travail du chef
  • 4:07 - 4:08
    est de communiquer
  • 4:08 - 4:09
    le problème à résoudre
  • 4:09 - 4:10
    et pourquoi?
  • 4:10 - 4:12
    et les équipes collaborent entre elles
  • 4:12 - 4:13
    pour trouver la meilleure solution.
  • 4:13 - 4:15
    Une conséquence de l'autonomie
  • 4:15 - 4:16
    c'est que nous avons
  • 4:16 - 4:18
    très peu de normalisation.
  • 4:18 - 4:19
    Quand les gens demandent des choses comme
  • 4:19 - 4:21
    quel éditeur de code vous utilisez
  • 4:21 - 4:22
    ou comment tu planifies?
  • 4:22 - 4:24
    La réponse est principalement
  • 4:24 - 4:25
    Ca dépend de l'escouade
  • 4:25 - 4:26
    certaines font le sprint de Scrum
  • 4:26 - 4:27
    d'autres font du Kanban
  • 4:27 - 4:29
    certaines font de l'estimation
  • 4:29 - 4:30
    et mesurent leur vitesse
  • 4:30 - 4:31
    d'autres non
  • 4:31 - 4:31
    c'est vraiment à chaque escouade
  • 4:31 - 4:32
    de décider.
  • 4:32 - 4:34
    Au lieu de normes formelles
  • 4:34 - 4:35
    nous avons une forte culture
  • 4:35 - 4:37
    de pollinisation croisée.
  • 4:37 - 4:38
    quand assez d'escadrons utilisent
  • 4:38 - 4:39
    une pratique spécifique
  • 4:39 - 4:40
    ou un outil tel que
  • 4:40 - 4:42
    Git. Cela devient le chemin de
  • 4:42 - 4:43
    moindre résistance
  • 4:43 - 4:45
    et d'autres escouades ont tendance à choisir
  • 4:45 - 4:46
    le même outil
  • 4:46 - 4:47
    L'équipe commence à maintenir
  • 4:47 - 4:48
    cet outil et aider les uns les autres
  • 4:48 - 4:49
    et ça devient
  • 4:49 - 4:50
    un outil standard.
  • 4:50 - 4:51
    Cette approche informelle
  • 4:51 - 4:53
    nous donne un équilibre sain
  • 4:53 - 4:55
    entre la cohérence et l'uniformité.
  • 4:55 - 4:57
    Notre architecture est basée sur
  • 4:57 - 4:59
    plus d'une centaine de systèmes séparés,
  • 4:59 - 5:00
    codés et déployés
  • 5:00 - 5:01
    indépendamment.
  • 5:01 - 5:02
    Il y a beaucoup d'interactions.
  • 5:02 - 5:03
    Mais chaque système se concentre sur
  • 5:03 - 5:04
    un besoin spécifique
  • 5:04 - 5:06
    comme la gestion des playlists,
  • 5:06 - 5:08
    le moteur de recherche ou l'instrumentation.
  • 5:08 - 5:09
    On a essayé de les garder
  • 5:09 - 5:10
    petits et découplés
  • 5:10 - 5:12
    avec des interfaces et des protocoles clairs.
  • 5:12 - 5:14
    Techniquement, chaque système appartient à une escouade.
  • 5:14 - 5:16
    En fait, la plupart des escouades en possèdent plusieurs.
  • 5:16 - 5:17
    Mais nous avons un
  • 5:17 - 5:18
    modèle interne Open Source
  • 5:18 - 5:20
    et notre culture est plus axée sur
  • 5:20 - 5:21
    partage que la possession.
  • 5:21 - 5:23
    Supposons que l'escouade 1 a besoin
  • 5:23 - 5:24
    de quelque chose de fait dans le Système B
  • 5:24 - 5:26
    et l'escouade 2 connait ce code le mieux,
  • 5:26 - 5:29
    Ils demandaient généralement à l'escouade 2 de le faire.
  • 5:29 - 5:31
    Cependant, si l'escouade 2 n' a pas le temps.
  • 5:31 - 5:32
    ou ils ont d'autres priorités.
  • 5:32 - 5:35
    Alors, l'escouade 1 n' a pas besoin d'attendre
  • 5:35 - 5:36
    On déteste attendre.
  • 5:36 - 5:37
    Au lieu de ça, ils sont les bienvenus
  • 5:37 - 5:38
    pour procéder à la modification
  • 5:38 - 5:39
    du code eux-même
  • 5:39 - 5:40
    et à demander à l'escouade 2
  • 5:40 - 5:41
    d'examiner les changements.
  • 5:41 - 5:43
    N'importe qui peut donc éditer n'importe quel code.
  • 5:43 - 5:44
    Mais, nous avons une culture
  • 5:44 - 5:45
    d'examen par les pairs.
  • 5:45 - 5:47
    Cela améliore la qualité et
  • 5:47 - 5:49
    plus important encore, diffuse les connaissances.
  • 5:49 - 5:51
    Au fil du temps, nous avons élaboré des lignes directrices de design,
  • 5:51 - 5:53
    des normes de code et autres choses
  • 5:53 - 5:55
    pour réduire les frictions.
  • 5:55 - 5:56
    Mais seulement quand c'est nécessaire.
  • 5:56 - 5:57
    Donc, sur une échelle entre
  • 5:57 - 5:59
    autoritaires et libéraux
  • 5:59 - 6:00
    On est définitivement sur
  • 6:00 - 6:01
    le côté libéral.
  • 6:01 - 6:02
    Rien de tout ça ne marcherait
  • 6:02 - 6:04
    si ce n'était pas pour les employés.
  • 6:05 - 6:06
    Nous avons une culture très forte
  • 6:06 - 6:08
    de respect mutuel.
  • 6:08 - 6:09
    J'entends des commentaires comme
  • 6:09 - 6:11
    mes collègues sont géniaux.
  • 6:11 - 6:12
    Les gens s'accordent souvent le crédit les uns aux autres
  • 6:12 - 6:13
    pour un excellent travail et
  • 6:13 - 6:15
    s'attribuent rarement le mérite.
  • 6:15 - 6:16
    En considérant combien de talent
  • 6:16 - 6:17
    nous avons ici
  • 6:17 - 6:19
    Il y a étonnamment peu d'ego.
  • 6:20 - 6:21
    Un grand Ah-ha pour les nouvelles recrues
  • 6:21 - 6:22
    c'est que l'autonomie
  • 6:22 - 6:24
    est plutôt effrayant au début.
  • 6:24 - 6:25
    Vous et vos coéquipiers d'escouade
  • 6:25 - 6:26
    devez trouver
  • 6:26 - 6:27
    votre propre solution.
  • 6:27 - 6:28
    Personne ne vous dira
  • 6:28 - 6:29
    quoi faire.
  • 6:29 - 6:30
    Mais, il s'avère que
  • 6:30 - 6:31
    si vous avez demandé de l'aide
  • 6:31 - 6:32
    vous en recevez beaucoup
  • 6:32 - 6:32
    et rapidement.
  • 6:32 - 6:34
    Il y a un respect sincère
  • 6:34 - 6:35
    pour le fait
  • 6:35 - 6:36
    qu'on est tous dans ce bateau ensemble.
  • 6:36 - 6:37
    et qu'on a besoin de s'aider
  • 6:37 - 6:38
    les uns et les autres a réussir.
  • 6:39 - 6:40
    Nous nous concentrons beaucoup sur la motivation.
  • 6:40 - 6:41
    En voici un exemple....
  • 6:41 - 6:44
    un courriel du responsable des opérations humaines
  • 6:44 - 6:45
    Bonjour tout le monde,
  • 6:45 - 6:47
    Notre sondage sur la satisfaction des employés
  • 6:47 - 6:50
    dit que 91% aiment travailler ici
  • 6:50 - 6:51
    et 4% non.
  • 6:51 - 6:52
    Maintenant, ça peut sembler
  • 6:52 - 6:54
    un taux de satisfaction assez élevé
  • 6:54 - 6:56
    surtout si l'on considère nos douleurs de croissance.
  • 6:56 - 6:58
    de 2006 à 2013
  • 6:58 - 6:59
    nous avons doublé chaque année.
  • 6:59 - 7:01
    et ont maintenant plus de 1200 personnes.
  • 7:02 - 7:03
    Mais, alors ça continue
  • 7:03 - 7:06
    Ceci n'est évidemment pas satisfaisant
  • 7:06 - 7:07
    et nous voulons le réparer.
  • 7:07 - 7:09
    Si vous êtes un de ces 4 % malheureux,
  • 7:09 - 7:10
    veuillez nous contacter.
  • 7:10 - 7:12
    Nous sommes là pour votre bien,
  • 7:12 - 7:13
    et rien d'autre.
  • 7:13 - 7:14
    Donc, assez bien n'est pas
  • 7:14 - 7:15
    assez bien.
  • 7:15 - 7:16
    Six mois plus tard
  • 7:16 - 7:17
    les choses se sont améliorées
  • 7:17 - 7:20
    et le taux de satisfaction a atteint 94 %.
  • 7:20 - 7:22
    Cette forte concentration sur la motivation
  • 7:22 - 7:23
    nous a aidé à construire
  • 7:23 - 7:24
    une assez bonne réputation
  • 7:24 - 7:25
    comme lieu de travail.
  • 7:25 - 7:27
    Mais nous avons encore beaucoup de problèmes
  • 7:27 - 7:28
    à gérer. Donc, ouais
  • 7:28 - 7:30
    nous devons continuer à nous améliorer.
  • 7:30 - 7:32
    Ok, donc nous avons plus de 50 escouades
  • 7:32 - 7:34
    réparties dans 4 villes.
  • 7:34 - 7:36
    Une forme de structure est nécessaire.
  • 7:36 - 7:38
    Actuellement, les escouades sont regroupées
  • 7:38 - 7:39
    en tribus.
  • 7:39 - 7:39
    Une tribu, c'est
  • 7:39 - 7:41
    une matrice légère
  • 7:41 - 7:43
    Chaque personne est membre d'une escouade
  • 7:43 - 7:44
    ainsi qu'un chapitre.
  • 7:44 - 7:46
    L'escouade est une dimension primordiale,
  • 7:46 - 7:47
    qui se concentre sur la livraison des produits
  • 7:47 - 7:48
    et la qualité.
  • 7:48 - 7:50
    Alors que le chapitre est un domaine de compétence.
  • 7:50 - 7:53
    tels que Quality Assurance, Agile Coaching,...
  • 7:53 - 7:54
    ou Développement Web.
  • 7:54 - 7:55
    En tant que membre de l'escouade,
  • 7:55 - 7:58
    mon responsable de chapitre est mon supérieur hiérarchique officiel
  • 7:58 - 7:59
    c'est un leader serviteur qui se concentre sur
  • 7:59 - 8:01
    m'encadrer et me conseiller en tant qu'ingénieur.
  • 8:01 - 8:04
    Donc, je peux changer d'escouade sans avoir besoin d'un nouveau manager.
  • 8:04 - 8:06
    C'est une jolie photo, hein?
  • 8:06 - 8:07
    Sauf que ce n'est pas vraiment vrai.
  • 8:07 - 8:10
    En réalité, les lignes ne sont pas si droites.
  • 8:10 - 8:12
    et les choses changent sans cesse.
  • 8:12 - 8:13
    En voici un exemple concret.
  • 8:13 - 8:14
    à partir d'un moment donné
  • 8:14 - 8:15
    pour une tribu.
  • 8:15 - 8:17
    et c'est différent maintenant.
  • 8:17 - 8:18
    et c'est pas grave.
  • 8:18 - 8:20
    La communication la plus précieuse a lieu
  • 8:20 - 8:22
    via des moyens informels et imprévisibles.
  • 8:22 - 8:25
    Pour soutenir cela, nous avons aussi des guildes.
  • 8:25 - 8:28
    Une guilde est une communauté d'intérêts légère.
  • 8:28 - 8:30
    où les gens de toute l'entreprise se réunissent
  • 8:30 - 8:32
    et partagent les connaissances dans un domaine spécifique.
  • 8:32 - 8:34
    Par exemple Leadership, Développement Web,
  • 8:34 - 8:35
    ou livraison continue.
  • 8:35 - 8:38
    N'importe qui peut rejoindre ou quitter la Guilde à tout moment.
  • 8:38 - 8:39
    Les guildes ont généralement une liste de diffusion,
  • 8:39 - 8:42
    conférences semestrielles, et...
  • 8:42 - 8:43
    autres méthodes de communication informelles.
  • 8:44 - 8:46
    La plupart des organigrammes sont des illusions.
  • 8:46 - 8:48
    Notre priorité est donc la communauté
  • 8:48 - 8:50
    plutôt que des structures hiérarchiques.
  • 8:50 - 8:52
    Nous avons découvert qu'une communauté assez forte
  • 8:52 - 8:53
    peut s'en sortir avec
  • 8:53 - 8:55
    une structure informelle volatile.
  • 8:55 - 8:57
    Si vous avez toujours besoin de savoir exactement
  • 8:57 - 8:58
    qui prend les décisions.
  • 8:58 - 9:00
    Vous vous trompez.
  • 9:00 - 9:03
    Une chose qui compte beaucoup pour l'autonomie
  • 9:03 - 9:06
    c'est à quel point il est facile de déployer notre code en production?
  • 9:06 - 9:08
    Si le déploiement est difficile,
  • 9:08 - 9:10
    nous serons tentés de la déployer rarement.
  • 9:10 - 9:11
    pour éviter la douleur.
  • 9:11 - 9:13
    Cela signifie que chaque version est plus grande
  • 9:13 - 9:15
    et donc encore plus dur.
  • 9:15 - 9:16
    C'est un cercle vicieux.
  • 9:16 - 9:17
    Mais si le déploiement est facile,
  • 9:17 - 9:19
    on peut déployer souvent.
  • 9:19 - 9:20
    Cela signifie que chaque version est plus petite
  • 9:20 - 9:22
    et donc plus facile.
  • 9:22 - 9:23
    Pour rester dans cette boucle
  • 9:23 - 9:25
    et éviter celle-là.
  • 9:25 - 9:27
    Nous encourageons les déploiements petits et fréquents
  • 9:27 - 9:29
    et investissons massivement dans l'automatisation des tests
  • 9:29 - 9:31
    et l'infrastructure de déploiement continue.
  • 9:31 - 9:34
    Le déploiement devrait être une routine et non un drame.
  • 9:35 - 9:37
    Parfois, on fait de gros investissements
  • 9:37 - 9:38
    pour faciliter le déploiement.
  • 9:38 - 9:41
    Par exemple, le client de bureau d'origine Spotify
  • 9:41 - 9:43
    était une seule application monolithique.
  • 9:43 - 9:44
    Dans les premiers temps,
  • 9:44 - 9:46
    nous n'avions qu'une poignée de développeurs.
  • 9:46 - 9:47
    C'était très bien.
  • 9:47 - 9:50
    Mais au fur et à mesure que nous grandissions, ce problème devenait énorme.
  • 9:50 - 9:51
    Une douzaine d'escouades doivent se synchroniser
  • 9:51 - 9:53
    les uns avec les autres pour chaque version.
  • 9:53 - 9:54
    Et ça pourrait prendre des mois pour obtenir
  • 9:54 - 9:56
    une version stable.
  • 9:56 - 9:57
    Au lieu de créer beaucoup de processus
  • 9:57 - 9:59
    et des règles pour gérer ça,
  • 9:59 - 10:00
    nous avons changé l'architecture
  • 10:00 - 10:02
    pour rendre possible les déploiement découplés.
  • 10:02 - 10:04
    On utilise Chromium
  • 10:04 - 10:07
    le client est maintenant essentiellement un navigateur web
  • 10:07 - 10:08
    déguisé. Chaque section est composée de
  • 10:08 - 10:10
    comme un cadre sur le site web
  • 10:10 - 10:11
    et l'escouade peut déployer
  • 10:11 - 10:12
    leurs propre code directement.
  • 10:12 - 10:14
    Dans le cadre de ce changement d'architecture,
  • 10:14 - 10:16
    nous avons commencé à voir chaque plateforme client
  • 10:16 - 10:18
    comme une application client
  • 10:18 - 10:21
    et à développer trois différents types d'escouades.
  • 10:21 - 10:22
    Escouades d'application client
  • 10:22 - 10:23
    Escouades de fontionalité
  • 10:23 - 10:25
    et escouades d'infrastructure.
  • 10:25 - 10:27
    Une escouade spéciale se concentre sur
  • 10:27 - 10:28
    une zone caractéristique
  • 10:28 - 10:29
    comme le moteur de recherche.
  • 10:29 - 10:30
    Cette escouade va construire, déployer,
  • 10:30 - 10:33
    et maintenir les fonctions liées à la recherche
  • 10:33 - 10:34
    pour notre plateforme.
  • 10:34 - 10:35
    Une escouade d'application client se concentre sur
  • 10:35 - 10:37
    faciliter les déploiement
  • 10:37 - 10:39
    sur une plate-forme client spécifique
  • 10:39 - 10:41
    comme le desktop, iOS ou Android.
  • 10:41 - 10:43
    Une escouade d'infrastructure se concentre sur
  • 10:43 - 10:45
    rendant les autres escouades plus efficaces.
  • 10:45 - 10:47
    Elles fournissent des outils et des routines
  • 10:47 - 10:49
    pour la livraison continue,
  • 10:49 - 10:51
    les A/B Tests, l'instrumentation et les opérations.
  • 10:52 - 10:54
    Quelle que soit la structure actuelle,
  • 10:54 - 10:56
    nous recherchons toujours un modèle de libre-service.
  • 10:56 - 10:58
    Une sorte de buffet,
  • 10:58 - 10:59
    le personnel du restaurant
  • 10:59 - 11:00
    ne vous servent pas directement.
  • 11:00 - 11:02
    Ils vous permettent de vous servir vous-même.
  • 11:02 - 11:05
    Donc, nous évitons les transferts comme la peste.
  • 11:05 - 11:07
    Par exemple, une escouade d'opération
  • 11:07 - 11:08
    ou une escouade d'application client n'a pas
  • 11:08 - 11:10
    à mettre du code en production
  • 11:10 - 11:11
    pour les gens.
  • 11:11 - 11:13
    Au lieu de cela, leur travail consiste à faire en sorte que
  • 11:13 - 11:15
    l'escouade de fonctionnalité puisse mettre
  • 11:15 - 11:16
    son code en production facilement.
  • 11:16 - 11:19
    Malgré le modèle de libre-service, nous avons parfois
  • 11:19 - 11:21
    besoin d'un peu de synchronisation entre les équipes
  • 11:21 - 11:22
    lors des lancements.
  • 11:22 - 11:23
    Nous gérons cela en utilisant
  • 11:23 - 11:25
    des trains de lancement et des configurations.
  • 11:25 - 11:28
    Chaque application client dispose d'un train de lancement
  • 11:28 - 11:30
    qui part à un emploi du temps fixe.
  • 11:30 - 11:32
    Typiquement chaque semaine ou toutes les trois semaines
  • 11:32 - 11:33
    en fonction du client.
  • 11:33 - 11:35
    Comme dans le monde physique
  • 11:35 - 11:37
    en cas de départ fréquent et fiable des trains,
  • 11:37 - 11:39
    vous n'avez pas besoin de beaucoup de planification.
  • 11:39 - 11:41
    Venez et prenez le prochain train.
  • 11:41 - 11:43
    Supposons que ces trois escouades
  • 11:43 - 11:44
    construisent des trucs et
  • 11:44 - 11:46
    quand le prochain train arrivera
  • 11:46 - 11:48
    les fonctions A, B et C sont exécutées
  • 11:48 - 11:50
    alors que D est toujours en cours.
  • 11:50 - 11:53
    Le train de lancement comprendra les 4 fonctions,
  • 11:53 - 11:55
    mais l'inachevée est caché
  • 11:55 - 11:56
    à l'aide d'une configuration.
  • 11:56 - 11:57
    Ça peut paraître bizarre
  • 11:57 - 11:59
    de déployer des fonctionnalités inachevées
  • 11:59 - 12:00
    et de les cacher.
  • 12:00 - 12:01
    Mais, c'est sympa parce que
  • 12:01 - 12:03
    cela expose le problème de l'intégration à un stade précoce
  • 12:03 - 12:05
    et minimise le besoin de branches de code.
  • 12:05 - 12:07
    Le code non chargé cache les problèmes
  • 12:07 - 12:09
    et c'est une forme de dette technique.
  • 12:09 - 12:11
    Les configurations de fonctionnalités nous permettent de façon dynamique
  • 12:11 - 12:12
    de montrer et cacher des trucs en test
  • 12:12 - 12:14
    ainsi qu'en production.
  • 12:14 - 12:16
    En plus de cacher les travaux inachevés,
  • 12:16 - 12:18
    nous l'utilisons pour les A/B tests
  • 12:18 - 12:20
    pour lancer progressivement des fonctionnalités finies.
  • 12:20 - 12:22
    Tous nos processus de déploiement sont meilleurs
  • 12:22 - 12:23
    qu'avant.
  • 12:23 - 12:25
    Mais nous constatons encore de nombreux domaines d'amélioration
  • 12:25 - 12:27
    donc nous continuerons à expérimenter.
  • 12:27 - 12:29
    Cela peut sembler un modèle effrayant
  • 12:29 - 12:32
    laisser chaque escouade déployer son propre code
  • 12:32 - 12:33
    en production
  • 12:33 - 12:35
    sans aucun contrôle centralisé formel.
  • 12:35 - 12:36
    et on foire parfois.
  • 12:36 - 12:38
    Mais nous avons appris que la confiance
  • 12:38 - 12:39
    est plus important que le contrôle.
  • 12:39 - 12:41
    Pourquoi engager quelqu'un
  • 12:41 - 12:42
    en qui nous n'avons pas confiance.
  • 12:43 - 12:44
    Agile à l'échelle exige
  • 12:44 - 12:46
    de la confiance à l'échelle
  • 12:46 - 12:48
    et ça veut dire qu'il n' y a pas de politique.
  • 12:48 - 12:50
    Cela signifie aussi qu'il n' y a pas de peur.
  • 12:50 - 12:52
    La peur ne tue pas seulement la confiance.
  • 12:52 - 12:53
    Elle tue l'innovation
  • 12:53 - 12:55
    parce qu'avec la peur d'être puni
  • 12:55 - 12:57
    les gens n'oseront pas essayer de nouvelles choses.
  • 12:57 - 12:59
    Parlons donc d'échec.
  • 12:59 - 13:01
    En fait, non
  • 13:01 - 13:02
    faisons une pause.
  • 13:02 - 13:03
    Debout, debout,
  • 13:03 - 13:04
    prendre un café.
  • 13:04 - 13:06
    Laissez ce truc décanter un peu.
  • 13:06 - 13:07
    et puis revenez
  • 13:07 - 13:09
    quand vous serez prêt pour la 2ème partie. D'accord?
Title:
Spotify Engineering Culture - Part 1
Description:

more » « less
Video Language:
English
Duration:
13:12

French subtitles

Revisions