Rapport de stage d'été : Permettre une approche objective de la gestion des produits

12 novembre 2013 | Par

Salut, je suis Renzo Lucioni, un senior à l'Université de Harvard. J'ai passé un bon moment cet été en tant que stagiaire chez edX. J'ai travaillé à permettre et à promouvoir une approche objective de la gestion des produits. Mon projet d'été consistait en plusieurs améliorations discrètes couvrant le LMS et l'équipe Analytics nouvellement formée. Mon projet consistait autant à corriger le « processus » qu'à remédier à la manière dont le LMS montre aux étudiants leurs progrès. Par « processus », j'entends : identifier et valider les changements, les mettre en œuvre, puis quantifier leur impact. Activer et promouvoir ce « processus » est le parapluie couvrant le travail que j'ai effectué pendant l'été.

Voici un aperçu du processus que nous essayons de suivre ici chez edX. Nous commençons par identifier concrètement un problème et l'effet que nous espérons voir en le résolvant. Nous identifions les problèmes à résoudre en utilisant les données d'analyse que nous recueillons. Nous réfléchissons ensuite à des solutions potentielles. La prochaine étape est la validation. Avant de mettre pleinement en œuvre les modifications, nous souhaitons les valider. Les changements peuvent être motivés par un certain nombre de choses, mais nous voulons nous assurer que les changements proposés résolvent le problème. Il existe plusieurs façons de valider. Cela peut signifier montrer le changement en interne à une poignée de personnes, l'exécuter par un groupe d'utilisateurs que nous faisons venir pour tester le changement ou effectuer des tests fractionnés. Si nous voyons que le changement aide, nous le mettons en œuvre. Si ce n'est pas le cas, on revient à la première étape. Après avoir effectué le changement, nous voulons mesurer son impact réel en production pour nous assurer que nous obtenons le retour que nous attendions de l'étape de validation.

Pour faciliter les étapes d'identification et de quantification, mon travail s'est concentré sur l'analytique et la qualité des données. Segment.io est un service tiers qui nous permet d'envoyer nos données d'analyse à n'importe quel service d'analyse de notre choix sans avoir à intégrer chaque service individuellement. J'ai intégré Segment.io à la plateforme edX et nettoyé les événements que nous enregistrons. Nous utilisons maintenant Segment.io pour suivre ce que font les utilisateurs lorsqu'ils interagissent avec le didacticiel, en transmettant ces informations à Google AnalyticsMixpanelet  Chartbeat.

Pour améliorer l'étape de validation de notre processus, j'ai développé une approche flexible et légère des tests fractionnés. Aussi appelés tests A/B, les tests fractionnés consistent à diviser nos utilisateurs en groupes, à contrôler ce que ces groupes voient (nous voulons montrer quelque chose de différent à chaque groupe), et à surveiller et comparer le comportement de chacun. Nous voulions que notre approche de test fractionné soit flexible, nous permettant de l'appliquer à travers la plate-forme edX à des changements allant des modifications cosmétiques à des fonctionnalités entièrement nouvelles. Le cadre de test fractionné que j'ai implémenté repose sur Tissu Gaufré Jersey, un flipper de fonctionnalité Django. J'ai décidé de ne pas utiliser l'un des nombreux frameworks de test A/B open-source disponibles pour Django car la plupart ne sont pas compatibles avec Django 1.4, ne sont plus maintenus et sont soit mal documentés, soit entièrement non documentés. De plus, dans une tentative d'abstraire le processus de test fractionné, j'ai trouvé que ces cadres sont trop rigides pour nos cas d'utilisation typiques. La plupart sont conçus dans le but exprès de suivre les inscriptions ou les achats des utilisateurs. L'utilisation de Waffle en conjonction avec Mixpanel constitue une approche plus flexible et légère.

Waffle fournit trois outils pour contrôler ce que les utilisateurs voient : les drapeaux, les commutateurs et les échantillons. Mon framework utilise les indicateurs basés sur la session de Waffle pour basculer les fonctionnalités dans les vues Django et les modèles Mako. Les drapeaux correspondent bien à la facture des tests fractionnés. Ils peuvent être attribués à tous les utilisateurs, à un groupe d'utilisateurs ou à un pourcentage arbitraire d'utilisateurs. Avec les autorisations appropriées sur le modèle "Flags" dans la base de données, les drapeaux peuvent être créés, activés et supprimés à l'aide du site d'administration de Django sans impliquer DevOps. De plus, les modifications apportées aux drapeaux entrent en vigueur immédiatement sans qu'il soit nécessaire de pousser de code. Mon framework garde une trace des drapeaux actifs pour un utilisateur particulier en ajoutant une propriété aux appels d'API Segment.io qui contient une chaîne répertoriant les drapeaux actifs. ce changement particulier a été fait dans segment-io.html. Segment.io achemine ces informations vers Mixpanel, où nous pouvons étudier les données, ce qui nous permet de comparer le comportement de différents groupes d'utilisateurs.

Voici un exemple du processus en action. En parlant avec des groupes d'utilisateurs d'edX, nous avons appris qu'il y avait un fort désir d'un affichage contextuel des progrès. Les étudiants ont toujours eu du mal à visualiser leurs progrès dans un cours. Ils ont également reçu une aide minimale lors de la navigation dans le didacticiel. À l'heure actuelle, la page d'accueil du didacticiel indique à un étudiant où il se trouvait en dernier et des liens vers ce composant. Cependant, le cours d'accordéon n'indique pas ce que l'étudiant a terminé, ce sur quoi l'étudiant travaille actuellement ou ce que l'étudiant n'a pas encore commencé. Pour aggraver les choses, l'onglet de progression est séparé du didacticiel et est également trop verbeux, ce qui signifie que la page n'est pas immédiatement utile à un étudiant. Les étudiants n'ont aucun moyen de mesurer de manière fiable leurs progrès dans le contexte du didacticiel.

J'ai tenté de résoudre ce problème en affichant les scores des étudiants en direct, juste à côté des titres des problèmes sur lesquels ils travaillent. Pour faire ce changement, j'ai modifié capa_module.py et  afficher.café. Nous essayons de réserver les tests fractionnés aux changements importants et risqués, pas aux victoires évidentes comme ce changement ; nous voulons valider au bon niveau. Ainsi, la validation de ce changement consistait à montrer le changement en interne. La mise en œuvre de cette fonctionnalité est maintenant suivie d'une quantification. Nous avons observé une baisse de 8 % du trafic entre le didacticiel et la page de progression, et nous utiliserons ces données pour informer les futurs changements.

Bien que nous commencions tout juste à utiliser les données d'analyse pour éclairer nos décisions et ce nouveau cadre pour les tests fractionnés de nouveaux travaux, je suis convaincu que ces outils nous permettront de faire de meilleurs choix. L'un des objectifs d'edX est de découvrir ce qui aide les gens à apprendre en ligne. Une approche plus quantitative combinée à des tests fractionnés nous aidera à atteindre cet objectif.

chargement

Lancez la discussion sur discuter.openedx.org

Il est temps d'en savoir plus ? Consultez les articles ci-dessous.

Annonce des représentants de la communauté Open edX® TOC pour 2026
Autonomiser une nation : comment l’Ukraine a développé une école nationale en ligne grâce à la plateforme Open edX®
Présentation à la conférence Open edX 2026 – Appel à conférenciers !
Comment la NASA a étendu l'accès à l'éducation scientifique ouverte à 20 000 chercheurs grâce à la plateforme Open edX
Rejoignez la conférence Open edX 2026 !

La conférence Open edX 2026 présentera des cas d'utilisation innovants pour l'un des meilleurs systèmes de gestion de l'apprentissage en ligne open source au monde, la plateforme Open edX, et découvrira les dernières avancées en matière de conception pédagogique, de constellation de cours et de méthodes d'exploitation et d'extension de la plateforme Open edX. , y compris des technologies de pointe, telles que l’IA générative.