Aventure 6 — Collaboration et reproductibilité dans GitHub
STT-1100 • Introduction à la science des données
✈️ Mise en contexte
Vous êtes une équipe de scientifiques de données travaillant pour l’aéroport JFK. Votre mandat est de produire une analyse collaborative et reproductible visant à identifier les sources de retard des vols, en particulier en lien avec la météo.
Chaque membre de votre équipe devra contribuer activement à cette analyse, qui sera produite à l’aide de Quarto et hébergée sur GitHub.
🔧 Partie 1 — Collaboration avec GitHub : rôles, branches, conflits
👥 Formation des équipes et rôles dans le cycle de vie des données
Travaillez en équipes de 3 à 4 personnes. Chaque membre incarne un rôle essentiel dans le cycle de vie des données et d’un projet en science des données. Ces rôles seront maintenus pour les étapes suivantes.
| Rôle | Fonctions techniques | Lien avec le cycle de vie des données | À faire dans cette activité |
|---|---|---|---|
| Responsable du dépôt | Crée et structure le dépôt GitHub, gère les branches et les fusions | Assure le versionnage, la traçabilité et la documentation | Crée le dépôt, gère les pull requests, fusionne les branches, résout les conflits |
| Analyste des données | Prépare le code de transformation et de fusion des données | Gère l’étape de préparation et transformation | Ajoute un chunk pour fusionner flights, airlines, weather dans le .qmd |
| Chargé·e de la reproductibilité | Organise le .qmd, assure la compilation et la clarté |
Garant·e de la reproductibilité et documentation | Met en place les sections du .qmd, nettoie le rendu, vérifie le rendu HTML final |
| Visualiseur·se (optionnel) | Produit les graphiques, harmonise le style | Joue un rôle clé dans la communication et diffusion | Ajoute un chunk ggplot2 illustratif et adapte les titres/légendes |
🔁 Tour de rôle recommandé dans l’aventure pour sensibiliser à toutes les étapes du cycle.
🛠 Étapes à suivre
Voici une séquence suggérée pour que les membres de l’équipe travaillent l’un après l’autre, pendant que les autres observent et apprennent :
Responsable du dépôt : Cloner le dépôt de départ fourni par l’enseignant, créer le projet RStudio, initialiser les branches pour chaque membre et faire un premier commit avec un
README.mdmis à jour.Chargé·e de la reproductibilité : Créer sa branche, organiser le
.qmd, ajouter une structure de base avec titres et sous-titres. Ajouter un commentaire dans le YAML ou une section pour créer un petit conflit à venir.Analyste des données : Créer sa branche, ajouter les premières lignes de code pour importer les données et fusionner les tables. Ajouter un
chunknomméfusion_donnees.Visualiseur·se (si présent·e) : Ajouter une première ébauche de visualisation simple (
geom_bar()ougeom_point()) avec deslabs()clairs. Pousser ses modifications sur sa branche et ouvrir une pull request.Responsable du dépôt : Fusionner les pull requests une par une. Lorsqu’un conflit survient (ex. dans l’intro ou le YAML), le gérer en direct avec les autres membres qui observent et prennent des notes sur le processus.
Une fois toutes les branches fusionnées, compiler le
.qmden HTML et valider le rendu avec l’équipe.
✅ Objectifs de la Partie 1
🔍 Partie 2 — Analyse reproductible avec données fusionnées
👥 Tâches par rôle
Chaque membre de l’équipe poursuit son rôle défini précédemment. Voici les actions attendues pour chacun, dans le même ordre que la Partie 1 :
🗂 Responsable du dépôt — Début de l’analyse
- Crée une branche spécifique à l’analyse collaborative.
- Revoit l’organisation du dépôt et s’assure que les fichiers nécessaires sont présents.
- S’assure que tous les chunks ont des noms, options (
echo,message, etc.) cohérents. - Vérifie que chaque membre a bien poussé sa branche.
- Lance la coordination de l’étape d’analyse.
🧪 Analyste des données
- Crée une nouvelle section dans le
.qmdintitulée Analyse collaborative. - Vérifie que les librairies nécessaires (
tidyverse,nycflights23) sont bien chargées dans un chunksetup. - Prépare les fusions suivantes :
flights+airlinespour ajouter le nom des transporteurs.flights+weatherpour intégrer les conditions météo.
- Filtrer sur l’aéroport JFK uniquement.
- Nettoyer les données au besoin (NA, doublons, etc.).
- Ajouter les résumés statistiques utiles (moyenne des retards, etc.).
🧱 Chargé·e de la reproductibilité
Vérifie que les librairies nécessaires (
tidyverse,nycflights23) sont bien chargées dans un chunksetup.S’assure que tous les chunks ont des noms, options (
echo,message, etc.) cohérents.Vérifie que le document se compile proprement.
Ajoute une phrase dans le texte principal utilisant du code en ligne (ex:
r nrow(flights)), pour montrer un exemple de reproductibilité intégrée dans le texte. La phrase doit contenir au moins 3 codes en ligne différents, par exemple : > Exemple : “Le jeu de données contientr nrow(flights)vols enregistrés en 2023.”S’assurer que tout soit reproductible dans le rapport.
📊 Visualiseur·se (si présent·e)
- Crée au moins deux graphiques pertinents à partir du tableau fusionné :
- Un
geom_col()montrant le retard moyen par transporteur. - Un
geom_point()ougeom_smooth()explorant la relation entre météo et retards.
- Un
- Personnalise les titres, les axes, et la lisibilité du graphique.
- S’assure que les graphiques sont bien interprétables et alignés avec les questions posées.
🗂 Responsable du dépôt — Fin de l’analyse
- Révise les contributions finales de chacun.
- Fusionne les branches propres dans
main. - Pousse la version finale sur GitHub.
- Documente la démarche dans le
README.mdou dans une section « Notes de production » du.qmd.
🔁 Partie 3 — Réflexion et cycle de vie des données
Journal de bord
Dans cette section, chaque membre de l’équipe écrit un paragraphe sur :
- Son rôle dans le projet
- Les difficultés rencontrées avec GitHub (et comment elles ont été résolues)
- Ce qu’il/elle a appris sur la collaboration et la reproductibilité
Le responsable du projet doit bien sûr initialisé le document quarto de journal de bord et planifié les sections pour chaque membre. Chaque membre doit ensuite ajouter son paragraphe dans sa section dédiée.
Cycle de vie des données
Ajoutez une section expliquant comment votre projet illustre les étapes suivantes :
- Collecte
- Transformation
- Analyse
- Partage
- Réutilisation et versionnage
✅ Vérification finale
- Le rapport HTML se compile-t-il sans erreur?
- Y a-t-il au moins 2 visualisations?
- Tous les membres ont-ils fait au moins 2 commits?
- Le rapport est-il clairement écrit et bien structuré?
Bonne collaboration! 🎯