1. Travail demandé : exemple pratique

travail collaboratif

1.1. Présentation

Cet exemple est inspiré d’un document sur Subversion réalisé par Michael Jégat (Corexpert).

On considère que le projet n’est composé que d’un seul fichier projet.txt. À l’origine, ce fichier contient 5 lignes, une pour chaque fonctionnalité à développer. Voici son contenu :

fonc 1 : vide
fonc 2 : vide
fonc 3 : vide
fonc 4 : vide
fonc 5 : vide

Le dépôt central est déjà créé avec le fichier projet.txt initialisé. Le mini-projet est lui aussi déjà créé dans Jira et connecté au dépôt Git (GitHub ou Bitbucket).

Lorsqu’une fonctionnalité sera réalisée, le texte "vide" sera remplacé par "ok".

Si un bug est détecté sur une fonctionnalité et qu’il est corrigé, le texte sera "ok, correction 1".

Il y a deux développeurs dans une équipe (teamX) : Bonnie et Clyde.

C’est le développeur qui a créé la Pull Request qui devra la fusionner. Seules les Pull Request de release devront être approuvées par l’autre développeur avant d’être fusionnées.

1.2. Planning des versions

  • Version 1.0 :

    • fonctionnalité 1 réalisée par Bonnie

    • fonctionnalité 2 réalisée par Clyde

  • Version 2.0 :

    • fonctionnalités 3 et 4 réalisées par Bonnie

    • fonctionnalité 5 réalisée par Clyde

Clyde sera responsable de la correction des bugs (1.x, …​) remontés par le client (un bug dans fonc 2 sera détecté une fois la fonctionnalité 3 réalisée).

1.3. Démarrage

Le mini-projet de votre équipe de développement (teamX) est disponible sur Jira :

mp0 liste

Vous devez tout d’abord rejoindre le site btssn-lasalle84.atlassian.net sur Jira (invitation reçue par courriel) : jira invitation

Le dépôt pour cette activité est hébergé sur GitHub :

mp0 code

Vous devez aussi rejoindre l’organisation BTS SN LaSalle Avignon sur GitHub (invitation reçue par courriel) : github invitation

La version 1.0 a été planifiée dans Jira :

mp0 version 1

La feuille de route pour l’itération permettant de réaliser cette version a aussi été définie :

mp0 feuille route

L’état actuel du tableau Kanban est le suivant :

mp0 kanban

1.4. Cycle de travail

Cycle de travail
  • Cloner le dépôt


À chaque itération (produisant une nouvelle version) :

  • Créer une version dans Jira

  • Mettre à jour la Feuille de route dans Jira

    • Créer une Epic pour l’itération et l’associer à la version

    • Créer les tâches (tickets enfants) dans cette Epic et les associer à la version

  • Pour chaque fonctionnalité de l’itération :

    • Sélectionner une tâche dans Jira

    • Créer une branche feature à partir de develop

    • Implémenter la fonctionnalité sur la branche

    • Créer une Pull Request vers develop lorsque la fonctionnalité est prête pour validation

    • Approuver la Pull Request si la fonctionnalité passe la révision de code (notamment respect des règles de codage et bonnes pratiques)

    • Fusionner la Pull Request dans develop avec l’option --no-ff

    • Supprimer la branche locale et distante

    • Vérifier que la tâche est marquée "Terminée" dans Jira


  • Finaliser une version :

    • Sélectionner l'Epic pour l’itération dans Jira

    • Créer une branche release à partir de develop

    • Finaliser la release sur la branche

    • Créer une Pull Request vers main lorsque la release est prête pour validation

    • Approuver la Pull Request si la release passe la révision de code (notamment respect des règles de codage et bonnes pratiques)

    • Fusionner la Pull Request dans main avec l’option --no-ff

    • Créer un tag et le publier sur la branche main

    • Créer une Pull Request vers develop

    • Fusionner la Pull Request dans develop avec l’option --no-ff

    • Supprimer la branche locale et distante

    • Vérifier que l'Epic est marquée "Terminée" dans Jira

    • Livrer la version dans Jira


  • Corriger un défaut dans une version :

    • Créer un ticket bug dans l'Epic concernée et l’associer à une nouvelle version X.Y.Z dans Jira

    • Sélectionner le ticket bug dans Jira

    • Créer une branche hotfix à partir de main

    • Implémenter la correction sur la branche

    • Créer une Pull Request vers main lorsque le correctif est prêt pour validation

    • Approuver la Pull Request si le correctif passe la révision de code

    • Fusionner la Pull Request dans main avec l’option --no-ff

    • Créer un tag et le publier sur la branche main

    • Créer une Pull Request vers develop

    • Fusionner la Pull Request dans develop avec l’option --no-ff

    • Supprimer la branche locale et distante

    • Vérifier que l'bug est marqué "Terminé" dans Jira

    • Livrer la version corrigée

2. Ressources