TP Bien démarrer son projet

Dépôts
Planification
Qualité
Reproductibilité
Bonnes pratiques pour débuter un projet
Author

Ludovic Deneuville

🚧 En cours d’écriture

Objectifs

  • S’organiser en équipe
  • Initialiser votre dépôt de code
  • Importer et nettoyer vos données
  • Mener les premières analyses
  • Initier votre rapport de projet
NoteFil rouge

Vous allez utiliser les données du Loto pour essayer de devenir millionaire.

Introduction

Qu’est-ce qu’un projet ?

Un projet peut être présenté comme un travail organisé, réalisé par une équipe, pour atteindre un objectif défini et produire un ou plusieurs livrables.

Un projet comporte notamment :

  • une équipe : les personnes qui travaillent sur le projet
  • un sujet : ce sur quoi porte le projet
  • des objectifs : ce que l’on cherche à accomplir
  • des données : les informations nécessaires au projet
  • du code : les traitements et analyses réalisés
  • des méthodes : les choix méthodologiques permettant d’atteindre l’objectif
  • des livrables : les productions attendues à la fin du projet
  • un calendrier : les différentes étapes et échéances
  • une organisation : la répartition des tâches et le suivi de leur avancement

Démarrer un projet

Avant de commencer, prenez le temps de faire connaissance avec les membres de votre groupe et de définir votre organisation.

Discutez notamment :

  • des forces et compétences de chacun : programmation, statistiques, rédaction, organisation
  • des appétences de chacun : quelles tâches aimez-vous particulièrement ?
  • de vos éventuelles contraintes d’organisation
  • de vos modes de communication : outils utilisés, fréquence des échanges, réunions
  • de la répartition des rôles et des premières tâches
  • d’une première version macro de votre calendrier

Les rôles ne sont pas nécessairement fixes : ils peuvent évoluer au cours du projet. L’objectif est que chacun participe aux différentes dimensions du projet et que le travail ne repose pas sur une seule personne.

Calendrier et livrables

Un diagramme de Gantt permet de visualiser là où vous en êtes et quelles sont les prochaines échéances. Il est rapide à réaliser et très utile.

gantt
    title Calendrier prévisionnel du projet
    dateFormat  YYYY-MM-DD
    axisFormat  %d %b

    section Cadrage
    Sujet et problématique         :2026-12-01, 2026-12-18
    Recherche bibliographique      :2026-12-03, 20d

    section Données et analyses
    Collecte et préparation des données :2026-12-15, 20d
    Statistiques descriptives           :2027-01-05, 45d
    Interprétation des résultats        :2027-02-01, 2027-03-26
    Méthodes statistiques               :2027-02-15, 45d

    section Rédaction
    Rédaction                        :2027-01-15, 25d
    Rapport intermédiaire            :milestone, 2027-02-12, 0d
    Rédaction du rapport             :2027-02-22, 2027-04-02
    Rapport V1                       :milestone, 2027-04-02, 0d
    Corrections et finalisation      :2027-04-19, 2027-05-05
    Relecture                        :2027-05-04, 3d
    Rapport final                    :milestone, 2027-05-07, 0d

    section Présentation
    Préparation de la soutenance blanche :2027-04-05, 2027-04-16
    Soutenance blanche                   :milestone, 2027-04-16, 0d
    Préparation de la soutenance         :2027-05-03, 2027-05-14
    Soutenance                           :milestone, 2027-05-14, 0d
    
    section Vacances
    Noël                                 :crit, 2026-12-19, 15d
    Hiver                                :crit, 2027-02-20, 7d
    Paques                               :crit, 2027-04-17, 7d

Suivre les tâches

🚧 - Backlog - Gantt - Carnet de bord - Kanban - Ecrire un mail - Préparer une réunion (de suivi) - Gérer son temps

Au cours d’un projet, de nombreuses tâches doivent être réalisées. Il est facile d’en oublier certaines ou de ne plus savoir précisément ce qui a été fait, ce qui est en cours et ce qu’il reste à faire.

Une liste de tâches ou un Kanban permet de centraliser le suivi du projet et de donner à toute l’équipe une vision commune de son avancement.

Un Kanban simple peut par exemple comporter les colonnes suivantes :

🚧 Schéma

À faire → En cours → À relire → Terminé

Chaque tâche est représentée par une carte que l’on déplace au fur et à mesure de son avancement.

Cet outil permet notamment de :

  • ne pas oublier les tâches à réaliser ;
  • savoir qui travaille sur quelle tâche ;
  • visualiser rapidement l’avancement du projet ;
  • identifier les tâches bloquées ;
  • répartir le travail au sein du groupe.

Les outils du projet

Un projet statistique mobilise plusieurs outils, chacun répondant à un besoin particulier. Il est important de savoir où réaliser chaque tâche et où stocker chaque ressource.

Besoin Outil
Environnement de travail SSP Cloud
Logiciel (IDE) RStudio / VSCode / Jupyter
Code R / Python / SQL
Versionner le code Git
Dépôt distant GitHub
Stocker les données S3
Produire des documents et rapports Quarto / Typst
Suivre les tâches GitHub / Kanban

Ces outils sont complémentaires. L’objectif du projet sera de les utiliser ensemble pour construire un travail organisé, collaboratif et reproductible.

1 Données

Commençons par une partie facile, déposons nos données dans un endroit sûr.

Vous allez ensuite vous connecter au Datalab pour le déposer sur votre stockage S3.

🚧 Lien vers partage de données :

  • diffusion : lecture seule
  • partage de fichier : 1 semaine max
  • rendre public un dossier : ecriture ?

Vous avez maintenant vos données prêtes à être utilisées.

2 Créer et organiser son dépôt

Passons maintenant à la gestion de votre code.

2.1 Dépôt distant

Le remote est le dépôt commun à toute l’équipe. Il permet de vous synchroniser.

Votre code sera stocké dans un dépôt GitHub.

    • Repository name : ensai-projet-stat-1a
    • Description: Projet statistique de première année
    • Visibility Level : Private
    • ☑ Cochez Add a README file
    • Add .gitignore : R
    • Choose a license : MIT Licence
    • Cliquez sur Create Repository

Ceci n’est à faire qu’une seule fois.

2.2 Dépot local

Avant de créer votre dépôt local (code sur lequel vous allez travailler), il faut créer votre environnement de travail.

    • Vérifiez que votre Token est présent
    • Renseignez l’url de votre dépôt GitHub

Si tout s’est bien passé, un clone de votre dépôt a été créé dans votre service. Vous voyez apparaitre votre dépôt et ses fichier dans l’explorateur en bas à droite.

Dans le terminal de votre service, clonez manuellement en utilisant le token :

  • git clone https://$GIT_PERSONAL_ACCESS_TOKEN@github.com/<username>/<repo_name>.git

2.3 Rappels Git

Vous allez commencer par vérifier que vous arrivez bien à envoyer du code vers le remote.

Toutes les actions ci-dessous sont à faire dans Rstudio.

ImportantREADME ça veut dire…

Pas besoin d’être bilingue pour comprendre l’idée.

Ce fichier est très important. Il doit comporter :

  • une brève présentation de votre projet
  • les instructions pour utiliser vos programmes (mode utilisateur)
  • les instructions pour complétez votre code (mode développeur)

🚧 Exo pratique de gestion de conflit

2.4 renv

Lorsque plusieurs personnes travaillent sur un même projet, il est important que tout le monde utilise les mêmes packages et les mêmes versions.

renv permet de créer un environnement R isolé et propre au projet et d’enregistrer les packages utilisés ainsi que leurs versions.

Cette commande crée un dossier renv/ et un fichier renv.lock (qui stocke la version de R utilisée, les packages nécessaires et leurs versions).
Ne les supprimez pas !
Le fichier renv.lock doit être versionné dans Git.

Commandes utiles :

  • renv::install("<package>") pour installer un package
  • renv::dependencies() : quels sont les packages utilisés dans le code
  • renv::status() : pour voir les différences entre les packages installés et renv.lock
  • renv::snapshot() : enregistre l’état des packages dans renv.lock
  • renv::restore() : applique renv.lock i.e. désinstalle les packages en trop, installe les packages manquants

Vous allez avoir besoin des packages suivants :

  • dplyr : manipulation de données (pipes, mutate, select…)
  • stringr : manipulation de chaînes de caractères

3 Charger et apurer

3.1 Charger les données brutes

Commençons par charger le fichier.

Dans un dépôt git, il ne faut pas laisser tout trainer à la racine, sinon cela devient rapidement le bazar.

Les fichiers contenant du code sont à placer dans un dossier src (sources).

En projet stat, pour charger un fichier .rds, utilisez la fonction readRDS.

Important

Si lors du chargement, vous rencontrez une erreur 403 (Forbidden), il est probable que vos credentials S3 soient expirés.

La solution est expliquée sur la même page que ci-dessus.

3.2 Mettre les données au propre

Certaines colonnes ne nous interessent pas, certaines données sont mal formatées. Il faut mettre tout cela au propre avant de commencer les analyses.

A partir du dataframe loto_raw, vous allez créer un nouveau dataframe propre que vous nommerez loto

Vous avez maintenant un jeu de données propre.

4 Une première analyse

🚧

En R :

  • Stats desc
  • Une figure

5 Préparer les livrables

🚧

  • Quarto
    • petit schéma simple : qmd -> quarto -> pdf, html…
  • TP à venir en Stats avec R

5.1 Initialiser son rapport

Vous allez utiliser Quarto et Typst pour rédiger votre rapport. Un modèle vous est fourni.

Vous trouverez sur ce site un exemple de rapport.

Vous remarquerez dans le code du rapport qu’il y a une partie du code rédigée directement en Typst.

C’est nécessaire pour avoir une page de garde et une table des matières propre. Ce code utilise un fichier model.typ qui vous est fourni. Vous avez simplement à renseigner quelques infos : titre, membres de l’équipe…

Initions maintenant votre rapport :

TipComment bien bâcler son rapport
  1. Je m’y mets au dernier moment. Avec un peu de chance, les autres auront déjà fait une partie de mon boulot.
  2. Je demande à une IA de me l’écrire : je ne veux pas rater mon cours d’aqua-poney.
  3. Introduction : je n’utilise pas d’accroche, je ne présente ni problématique ni plan.
  4. Je ne me préoccupe pas de la cohérence du rapport, ni sur le fond ni sur la forme.
  5. Je ne fais pas de phrases de transition entre mes parties et sous-parties. De toute façon, mes parties ne suivent aucun ordre logique.
  6. Je n’utilise pas de titres informatifs. « 1. Contexte, 2. Analyse, 3. Résultats », ça ira très bien.
  7. J’utilise « on » et la forme passive : « on a noté », « on a vu », « on a remarqué que », etc. C’est ce qu’on m’a dit en techniques rédactionnelles. Ou c’était l’inverse !? Bref, je me souviens plus y’avait Chartres la veille.
  8. J’essaie de battre le record de la phrase la plus longue. Ça permet au lecteur de s’entraîner pour l’apnée.
  9. Je ne soigne pas mes figures (pas de titre, ni de source, ni de note de lecture). Les lecteurs n’ont qu’à deviner.
  10. Je ne commente pas mes figures. Je les dépose simplement au milieu de nulle part : ça fait une demi-page de moins à rédiger.
  11. J’oublie les statistiques descriptives. De toute manière, une moyenne ça ne veut rien dire.
  12. Je fais une ACP sans préciser pourquoi j’ai choisi ces variables et ces individus. De toute façon, le logiciel sait ce qu’il fait.
  13. Je lance un clustering sans trop réfléchir. Il paraît qu’on a eu un cours là-dessus, alors autant s’en servir !
  14. Je ne me soucie pas de la mise en page. Les titres seuls en bas de page, les figures coupées et les pages presque vides donnent du caractère au document.
  15. Je ne relis pas ce qui a été rédigé par les autres. D’ailleurs, je ne relis pas non plus ce que j’ai rédigé.
  16. Conclusion : je demande à l’IA de reformuler mon introduction. Facile ! Je ne parle ni des limites ni des pistes d’amélioration.
  17. Je ne cite aucun article de la bibliographie dans le rapport. D’ailleurs, je n’ai pas lu ce qui a déjà été fait sur le sujet.

5.2 Présentation

Optionnel, à faire plus tard en autonomie

  • Avec RevealJS
  • Répéter avant
  • Backup
  • Numéroter ses diapo
  • Avoir son rapport ouvert s’il y a des questions

6 Liens utiles