- résumé
L'objectif de cette tâche est de planifier les tâches à effectuer dans le cadre d'un sprint.
- langage
GitHub
- résultats
github:<project>
github:<issues>
github:<milestones>
projet/sprint<N>/provisional-plan/*
L'activité de planification est beaucoup plus légère dans le cadre de projets en mode agile que dans les projets séquentiels (voir la tâche projet.planning.gantt
). Il s'agit ici de définir d'incrément en incrément les tâches à réaliser.
Dans cette tâche GitHub sera utilisé, d'une part pour représenter les tâches via des "issues", d'autre part en utilisant la notion de "projet" pour suivre l'état d'avancement du projet.
Définir les différents jalons (milestone) du projet (livraisons, audits, soutenance, etc.). Utiliser pour cela les "Milestones" GitHub. Aller sur le dépot de groupe, puis Issues > Milestone > New milestone
.
Créer un tableau de bord (appelé "project" dans GitHub) associé au dépot de groupe. Utiliser l'onglet project
du dépot puis Create a project
. Définir les colonnes en fonction des besoins.
Note
Les colonnes pourront être ajoutées par la suite au fur et à mesure des besoins.
Ce tableau de bord pourra contenir des tâches sous forme d'issues, mais également de "simples" notes. Il est possible de définir plusieurs tableaux, par exemple pour plusieurs sprint ou pour des "projets" s'exécutant en parallèle. Définir la structure la plus simple possible mais adaptée au besoin de l'équipe. Cette structure pourra être adaptée au fil de l'eau.
Il s'agit ici de définir les tâches du projet sous forme d'issues GitHub. On cherche plus particulièrement a établir la traçabilité entre :
- le processus ModelScript
- le processus suivi effectivement.
Lorsqu'une tâche est dérivée directemment d'une tâche de référence ModelScript le nom de l'issue y fera référence directement. Par exemple la tâche sprint2.projet.planning.gantt
indiquera qu'il s'agit d'effectuer la tâche projet.planning.gantt
pour le sprint2
. De même on pourra utiliser un nom comme s1,d1,d2.concepts.classes
pour la tâche consistant à compléter le modèle de classes avec le scénario s1
et les incréments d1
et d2
.
Note
GitHub permet de créer des références entre issues, sans pour autant donner de recommendations sur la manière d'utiliser cette fonctionnalité. Ci-dessous cette l'utilisation de cette fonctionnalité est formalisée afin d'assurer la traçabilité entre issues.
Utiliser le nom de la tâche pour référencer la tâche "mère" n'est pas toujours facile ni souhaitable. Dans le cas de relation "mère - fille" on utilisera par contre de manière systèmatique le mot clé org
suivi du numéro d'issue de la tâche mère. Par exemple si une tâche #68
dérive de la tâche #34
alors le corps de la tâche #68
débutera par : :
org #34
Les tâches peuvent ainsi être imbriquées. Si une tâche ne correspond à aucune tâche ModelScript alors ajouter le label Extra
à cette tâche pour mettre en l'avant qu'elle sort du processus. Voir la section suivante pour les labels.
L'exemple ci-dessous montre un arbre des tâches avec la tâche principale concepts.classes
étiquettée ModelScript
car il s'agit d'une tâche de référence du processus. Les tâches #34
, #68
et #122
sont elles des sous-tâches. La tâche #79
n'a pas de tâche parente. Elle a donc le label Extra
pour indiquer que cette tâche échappe au processus ModelScript. :
#17 concepts.classes [ModelScript]
#34 s1,d1-3.concepts.classes org #17
#68 Ajouter la notion d'employés et de bureaux org #34
#122 Ajouter la notion d'envois org #34
#79 Faire de l'espace sur le disque [Extra]
Associer à chaque tâche les "labels" correspondant. Par exemple "bd". Pour cela utiliser Labels
dans le panneau de droite de l'issue concernée.
Pour estimer la complexité des tâches à réaliser l'une des techniques est de jouer au "poker planning". Réaliser une telle session avec l'ensemble des membres de l'équipe. Définir ensuite à quel jalon telle ou telle tâche doit être associée.
Une fois la liste des tâches établie définir à quel jalon l'issue doit être associée. Cela permet de définir dans quel incrément la tâche doit être réalisée. Pour définir le jalon associé à une tâche utiliser la section Milestone
à droite d'issue à assigner.
Les tâches peuvent être affectées à une ou plusieurs personnes. Utiliser pour cela la section Assignee
. Contrairement aux projet en mode séquentiel, dans un projet en mode agile il n'est pas nécessaire de réaliser cette affectation a priori et au début du projet. Il est classique d'avoir un lot de tâches non assignées et qu'un membre de l'équipe se saisisse à un moment donné d'une tâche.
Faire une copie d'écran du tableau ("project" github) en début de projet et la ranger dans provisional-plan/diagrammes/plan.github.png
.