Développer peut être un cauchemar.
Ce n’est pas que produire du code soit pénible, c’est une question d’expérience globale.
Les organisations se concentrent sur la rapidité de livraison pour rapidement découvrir ce qui compte pour leurs utilisateurs.
Mais cela conduit à avoir plus de technologie, plus de problèmes.
Les développeurs perdent alors des heures à résoudre des problèmes de configuration, de déploiement ou d’autres problèmes d’intégration, loin de la création de valeur.
La contre-force du Quality Engineering est nécessaire pour maintenir la chaîne de valeur logicielle contrainte au Quality at Speed.
Cet article explique comment Spotify a mis en place du Quality Engineering Productivity en démarrant d’une situation complexe.
Suivez la QE Unit pour plus de Quality Engineering exclusif.
Le pourquoi de la Quality Engineering Productivity
Spotify doit expérimenter, apprendre et lancer des fonctionnalités rapidement.
La rapidité est atteinte avec des équipes cross-fonctionnelles disposant de toutes les compétences nécessaires pour livrer des fonctionnalités avec une grande autonomie.
C’est leur définition de Quality at Speed :
« Transformez rapidement vos idées en produits et expérimentez pour améliorer l’expérience utilisateur, se développer sur de nouveaux marchés et rester compétitif en tant que fournisseur de contenu en streaming. ».
Se concentrer sur la vitesse peut fonctionner au début. Mais chaque équipe accumule une dette avec des pratiques d’ingénierie divergentes et une technologie fragmentée.
Le Quality Engineering Productivity est l’exigence requise pour continuer à itérer en Quality at Speed, en équilibrant la vitesse et les standards.
L’équipe de Platform Developer Experience est le contre-pouvoir chargé de maintenir les ingénieurs capables d’itérer rapidement et à l’échelle.
Le Quality Engineering pour accélérer la Developer Experience
Une expérience de développement réussie repose sur l’engineering productivity.
Spotify la qualifiait en tant que “rumor-driven development” quand le seul moyen de faire fonctionner le logiciel était de demander à proximité et de suivre les rumeurs.
Le délai d’intégration des nouveaux développeurs a atteint 60 jours.
C’était donc loin d’être une developer experience permettant d’avoir un impact à l’échelle.
Spotify s’est concentré sur la Quality Engineering Productivity en :
- Mesurant le rapport entre les inputs et les outputs ;
- Liant en continu les outputs aux outcomes ;
- Continuant à améliorer pour plus d’outputs et plus d’outcomes.
« Pour comprendre comment nous pouvons aider les équipes de Spotify à délivrer rapidement des expériences, nous devons comprendre comment elles fonctionnent. »
—Comment nous avons amélioré la productivité des développeurs pour nos équipes DevOps, Spotify Engineering.
La Platform Developer Experience fournit des produits optimisant les cycles de production avec des composants réutilisables par cas d’utilisation.
Voyons ce que cette équipe propose pour éliminer les distractions.
Les éléments de Quality Engineering Productivity chez Spotify
Les équipes interfonctionnelles avaient besoin de 14 jours pour exécuter une application nouvellement créée.
Ce délai était beaucoup trop lent pour du Quality at Speed.
L’équipe d’infrastructure a travaillé à la création d’abstractions d’artefacts logiciels permettant de rapidement déployer des composants stables en fonction de leurs besoins.
Les produits suivants ont été construits :
- Backstage en tant que guichet unique pour les ingénieurs logiciels ;
- Golden Paths fournissant des bootstraps standard avec des tutoriels ;
- Tingle CI/CD en plate-forme de build, déploiement et de publication ;
- Programme de certification des tests fournissant une évaluation des tests.
Ces éléments ont permis de réduire le temps de mise en place d’un service de 14 jours à moins de 5 minutes.
Par exemple, un développeur peut obtenir un module comme ceux présents dans celui de Spotify intégré dans une URL, un référentiel, et un CI/CD en une journée.
Golden Paths sur Backstage en tant que guichet unique
La réduction du nombre de décisions permet des processus évolutifs et rapides.
Le Golden Path est le chemin « opinionated and supported » pour « créer quelque chose » (par exemple, créer un service backend, mettre en place un site Web, créer un pipeline de données).
Les Golden Paths sont des tutoriels pas à pas qui vous guident à travers divers modules disponibles sur le portail Backstage.
Les ingénieurs logiciels peuvent utiliser Golden Paths pour créer une application standard en suivant un assistant étape par étape documenté avec les meilleures pratiques.
Au fil du temps, les tutoriels Golden Path se sont développés avec le développement Web, data engineering, data science, traitement audio, etc.
Il fut un temps où les ingénieurs de Spotify ne pouvaient pas imaginer la vie avec Golden Paths ; maintenant, ils ne peuvent pas imaginer la vie sans eux.
Gestion systématique du build et du déploiement avec Tingle
Une fois qu’un projet fonctionne sur le poste de l’ingénieur, des problèmes d’intégration apparaissent pour déployer l’application jusqu’en production.
Tingle est un système de CI/CD qui construit automatiquement le code poussé vers GitHub et donne des commentaires aux développeurs.
Tout cela sans avoir besoin de comprendre comment configurer un pipeline de build.
Tingle construit, teste, et déploie automatiquement les modifications en production si tous les tests réussissent en utilisant le flux de travail GitHub standard.
Spotify a remplacé plus de 200 machines Jenkins autonomes par Tingle, exécutant plus de dizaines de milliers de builds chaque semaine.
Mais la confiance pour se déployer faisait toujours défaut.
Programme de certification des tests pour plus de confiance
Les ingénieurs de Spotify s’appuient sur la gamification pour soumettre leur code aux tests appropriés.
Chaque discipline majeure de l’ingénierie dispose d’un programme de certification des tests qui :
- Fournit des vérifications de la conformité des contrôles de qualité ;
- Fournir des rapports sur les temps de construction, la couverture du code et la fiabilité des suites de tests ;
- Alerter les équipes lorsque leur code contient des tests non fiables ;
- Donnez des badges à côté des services en fonction du niveau de certification.
Le programme de certification des tests a encouragé la création de suites de tests prenant en charge l’accélération des cycles de livraison de logiciels.
À partir de 2018, ils ont mesuré une réduction drastique des bugs bloquants et autres types de travaux réactifs.
Comment cela peut-il fonctionner avec autant d’autonomie ?
Productivité de l’ingénierie de la qualité pour les équipes autonomes
Golden Paths, Tingle et le programme de certification des tests ont contribué à normaliser leur environnement technologique.
Mais Spotify laisse les équipes libres de choisir les outils et les méthodes qui correspondent à leur fonctionnement.
Par conséquent, l’équipe de Platform Developer Experience nécessitait de modularité pour une adoption continue tout en gagnant en maturité.
Chaque équipe peut en effet décider de n’utiliser aucun à tous les services de la plateforme, en fonction de leur valeur ajoutée.
Cela favorise un écosystème où seuls les composants permettant le Quality at Speed restent utilisés.
Le Quality Engineering Productivity pour le Quality at Speed
Spotify a réussi à accélérer vers le Quality at Speed en développant le Quality Engineering Productivity.
La construction d’un projet nécessite moins de 5 minutes pour les ingénieurs existants ou récemment arrivés, supportant la scalabilité de leur organisation.
Les programmes de certifications avec mesures systématiques et alertes ne cessent d’améliorer leur productivité d’ingénierie.
Spotify a appris à garder les choses simples:
- Garder un Golden Path par composant en évitant les sous-modules ;
- Documenter les paths tels qu’ils sont, même s’ils sont pénibles, les optimiser ensuite ;
- Favoriser l’utilisation et le feedback continus sur l’outillage de la plateforme ;
Backstage est disponible en open-source offrant plus de 100 intégrations. Il est utilisé par des acteurs tels que Zalando, Unity, Expedia.
Leurs améliorations actuelles consistent à automatiser la conformité des projets avec leurs Golden Paths en utilisant Golden States et en gardant un bon niveau de documentation.
Les Golden Paths sont la documentation technique la plus lue et la plus utilisée de Spotify, une véritable réussite en matière de Quality Engineering.
Prêt à développer votre Quality Engineering Productivity ?
Suivez la QE Unit pour plus de Quality Engineering.