L’expérimentation et l’analyse des expériences sont des procédures vitales chez Canva pour protéger l’expérience client. L’expérimentation est un outil de prise de décision inestimable, et chez Canva, c’est une étape cruciale dans notre processus de développement de produit pour tester rapidement des idées, mesurer l’impact et protéger l’expérience client de plus de 100 millions d’utilisateurs actifs mensuels. Nous divisons nos plateformes d’expérimentation en 2 composantes principales :
Dans ce billet de blog, nous plongerons dans la manière dont la deuxième composante, l’analyse de l’expérience, a évolué au cours des dernières années pour soutenir une croissance de 10 fois du nombre de data scientists et devenir un outil central dans l’architecture de données de Canva.
Chez Canva, l’expérimentation avec notre produit a toujours fait partie de notre parcours. Cependant, ce n’est qu’en 2019 que notre spécialité en science des données a développé la première version de notre cadre d’analyse d’expérience : un package Python où tout data scientist pouvait définir des métriques partagées et créer des configurations d’analyse. Nous pouvions calculer les résultats et les visualiser via une interface en ligne de commande.
Nous avions immédiatement une manière standardisée de calculer et d’interpréter les résultats à travers l’entreprise. De plus, le package calculait automatiquement des métriques de garde, nous permettant de surveiller l’impact d’une expérience sur les objectifs de l’entreprise, tels que les utilisateurs actifs ou le chiffre d’affaires.
C’était un premier pas incroyable, mais nous avons rapidement découvert que partager des captures d’écran via Slack ou Confluence était fastidieux. Nous capturions les résultats à un moment donné, et les data scientists devaient retraiter manuellement les résultats chaque fois qu’un intervenant demandait.
Pour résoudre ce problème, nous avons créé une application web Django pour planifier des mises à jour quotidiennes et fournir une interface pour partager les résultats d’analyse à travers l’entreprise. Nous continuions à créer et stocker des métriques et des configurations d’analyse dans le package Python, mais nous persistions désormais les résultats dans une base de données. Les intervenants pouvaient naviguer vers une interface utilisateur pour voir des résultats à jour quand ils le souhaitaient.
La manière dont nous présentions les résultats en ligne de commande fonctionnait assez bien jusqu’à présent, donc la façon dont nous les affichions dans l’application web n’était pas radicalement différente.
Au fil du temps, pour soutenir notre produit chinois en pleine croissance (canva.cn) et respecter les réglementations en matière de données, nous avons déployé une deuxième instance de l’application Django pour fonctionner en Chine. Avoir 2 applications signifiait que pour les expériences lancées à la fois sur canva.com et canva.cn, les intervenants devaient visiter les deux applications pour voir les résultats. Clairement, ce n’était pas une situation idéale.
Les gens commençaient à ressentir les douleurs de croissance de ce système :
La confiance dans la plateforme s’érodait.
Jusqu’à présent, le cadre d’analyse d’expérience avait été construit et maintenu par des data scientists indépendamment de notre produit interne de drapeaux de fonctionnalités et d’assignations, Feature Control.
Il est devenu évident que pour élever Canva au rang d’organisation de classe mondiale axée sur les données, nous avions besoin d’analyses d’expérience fiables, dignes de confiance et accessibles à tous. Nous avons donc confié le cadre à une équipe d’ingénierie dédiée pour le réécrire et l’intégrer dans Feature Control.
La refonte a entraîné les améliorations suivantes :
Le nouveau système comporte également de nombreux points forts techniques. Le premier était de regrouper des modèles statistiques d’expérience dans une bibliothèque Python, déployée en tant que lambda AWS. Cela a bien fonctionné car Python est intrinsèquement supérieur pour la modélisation statistique, facilitant aux data scientists d’apporter des modifications aux modèles de production. Un effet secondaire agréable de l’utilisation d’une lambda est qu’elle expose une API pour que les utilisateurs puissent l’appeler et l ’utiliser pour des analyses ad hoc en dehors de notre plateforme.
Cette nouvelle architecture ressemble également et est écrite à la qualité d’un service produit standard Canva. Elle utilise les mêmes langages et infrastructures (Javascript, Java et MySQL), avec des alertes et un planning d’astreinte pour garantir un temps d’arrêt minimal.
Nous avons également lancé un programme d’éducation sur les aspects théoriques et pratiques de l’expérimentation, tels que la compréhension de nos modèles statistiques, la prise de décision et le débogage des problèmes. Ce programme a été essentiel pour autonomiser les Canvanauts à résoudre eux-mêmes leurs problèmes de données et a entraîné une baisse de plus de 50 % des demandes d’aide dans notre canal Slack d’équipe.
Jusqu’à présent, nous n’avons construit que la moitié des fondations d’une excellente plateforme d’analyse d’expérience. Les composants de configuration d’analyse, tels que les métriques, sont toujours définis à l’aide de fragments SQL partiels, que nous voulons écrire d’une manière très spécifique. Les fragments SQL sont flexibles et permettent une construction rapide de nouvelles métriques, et ont fonctionné lorsque les data scientists configuraient les analyses d’expérience. Cependant, ils sont sujets aux erreurs et presque impossibles à écrire pour les utilisateurs non techniques, ce qui entraîne des métriques excessivement complexes et statistiquement invalides. Les fragments SQL ne sont pas évolutifs.
Dans notre dernière étape, nous voulions rendre les analyses d’expérience accessibles à tous et encourager tout le monde à expérimenter en utilisant les meilleures pratiques. Pour ce faire, nous avons complètement repensé la manière dont les utilisateurs créent les composants de leur analyse d’expérience pour avoir une interface de point-and-click qui abstrait le SQL de la plupart des flux utilisateur. Cette approche garantit que toutes les métriques sont cohérentes, correctes et statistiquement valides.
Sur le plan technique, nous stockons et gérons ces composants dans un microservice séparé. Cela nous permet de les utiliser facilement dans d’autres applications futures, telles que des analyses ad hoc ou des outils de business intelligence.
La plateforme d’expérimentation chez Canva a subi une transformation incroyable au cours des dernières années, et nous ne faisons que commencer. Nous nous concentrons sur la poursuite de l’accessibilité de l’expérimentation pour tous chez Canva. Certains de nos projets à venir incluent la rationalisation des flux de travail désormais fragmentés avec la configuration d’expériences et les analyses d’expériences, et l’amélioration continue de l’apprentissage des résultats d’expérience au sein de la plateforme.
Un grand merci à l’équipe actuelle des Expériences pour avoir apporté d’énormes améliorations dans la démocratisation de l’analyse d’expérience. En particulier, merci aux ingénieurs de l’équipe originale de Feature Control : , , , , , et pour avoir reconstruit les fondations d’ingénierie de notre plateforme d’analyse d’expérience. De plus, un merci spécial à notre spécialité en science des données, qui ont rédigé, maintenu et formé l’équipe d’ingénierie et l’ensemble de l’entreprise sur notre cadre d’analyse d’expérience. Vos contributions ont été inestimables pour façonner et faire progresser nos capacités.
Pour en savoir plus sur les projets d’ingénierie de Canva, consultez notre blog.