Introduction (très rapide) aux méthodes agiles pour le cours WE01

Objectifs

  • Savoir énoncer un caractéristique typique des approches agiles

  • Savoir organiser un petit projet avec timeboxing et journal de bord.

Les méthodes agiles : de la planification au pilotage

FondamentalDe la planification au pilotage

Le fondement des méthodes agiles et qu'il n'est pas possible de tout prévoir correctement, et qu'il vaut mieux planifier au niveau macro uniquement et piloter au niveau micro.

DéfinitionMéthode agile

Une méthode agile est une approche itérative et incrémentale, qui est menée dans un esprit collaboratif, avec juste ce qu'il faut de formalisme.

(Gestion de projet : Vers les méthodes agiles , p42)

FondamentalManifeste pour le développement logiciel agile (2001)

  • Les individus et leurs interactions avant les processus et les outils.

  • Des fonctionnalités opérationnelles avant la documentation.

  • La collaboration avec le client plutôt que contractualisation des relations.

  • L'acceptation du changement plutôt que conformité aux plans

https://agilemanifesto.org/

ExempleExemple de méthodes agiles

  • Rapid Application Development (RAD)

  • Adaptative Software Development (ASD)

  • Crystal

  • Scrum

  • eXtreme Programming (XP)

Caractéristiques des organisations agiles

Travail en équipe souple

  • Organisation horizontale : co-décisions, le chef de projet tranche quand c'est nécessaire, il ne commande pas

  • Binôme : les travaux en binômes sont favorisés (lorsque les tailles d'équipe le permettent) pour éviter les compétences uniques risquées dans tout projet, a fortiori peu formalisé

  • Partage d'information et du travail : serveurs de code source, de documentation, forums de discussion, de veille, ...

  • Polyvalence : les membres de l'équipe sont intéressés largement aux travaux (plusieurs modules, participation à la gestion, aux relations client, ...)

Moins de specs, moins de proto

Chaque itération vise à produire un produit fonctionnel (notion d'incrémentation) et non un prototype ou une spécification.

On travaille moins sur les représentations du produit (spécifications, modèles, etc.) et plus sur le produit lui même.

RemarqueLa méthode de Monsieur Jourdain, comme souvent...

Une méthode agile est avant tout une méthode de bon sens, dans laquelle on travaille en bonne intelligence.

Si on est réactif, prêt à changer d'avis quand cela est sensé, que l'on suit de près son projet, qu'on ne perd pas de temps avec le superflu... on fait de l'agile sans le savoir !

Timeboxing (boîtes de temps)

DéfinitionTimeboxing (gestion par boîtes de temps)

Principe du timeboxing  : Les itérations ont une durée fixe, sont à court terme (< 1 mois), on évalue chaque itération à la fin et on réajuste le plan de travail en fonction des résultats.

Exemple

Timeboxing

DéfinitionSprint (boîte de temps)

On appelle souvent sprint une itération correspondant à une timebox (boîte de temps).

Attention

Il est important que les boîtes de temps aient une durée constante, que les réunions soient régulières, idéalement le même créneau à chaque période (c'est cette horlogerie qui permet au projet un pilotage régulier).

Fondamental

Il est indispensable que les tâches soient découpée de telle façon que leur durée estimée de réalisation ne dépasse jamais une boîte de temps.

ExempleBoîtes de temps d'une semaine

  • Tous les jeudis on livre à 18h.

  • On se réunit tous les vendredis à 14h.

Conseil

  • Les livrables sont toujours antérieurs à la réunion et consultés avant celle-ci par le client.

  • On ne présente pas ce qui a été fait (c'est déjà connu), on entre directement dans l'étude critique des livrables.

  • On maintien le plan de travail (TODO-list, product backlog...) à jour.

Journal de bord

DéfinitionJournal de bord (JDB)

Le journal de bord permet d'enregistrer au fur et à mesure ce qui est fait. On y consigne brièvement chaque jour l'activité de la journée.

ConseilOutils

  • Un éditeur de texte collaboratif simple est adapté (par exemple les outils libres Etherpad ou CodiMD).

  • Si la technologie (plus exigeante) est maîtrisée, un document markdown sur Git/Gitlab est adapté.

Exemple

Exemple de Journal de Bord, 2 itérations, édité avec Hedgedoc (https://md.picasoft.net/s/6AkmkJ_FC)

Attention

Le journal doit être rendu chaque semaine.

ConseilFaciliter la tâche de la MOA

  • Le journal consigne la liste des livrables à consulter pour l'itération concernée (on est aussi précis que possible afin de faire gagner du temps à la MOA ; par exemple si on a créé une nouvelle page web on en donne l'URL directe, si on a modifié une page existante on précise à quel endroit).

  • Le journal intègre la fiche de temps consolidée depuis le début du projet (par exemple sous forme d'un lien vers un autre document en ligne)

  • Le journal peut intégrer une logique d'auto-évaluation.

Outils collaboratifs

ConseilOutils de discussion

La communication par mail est mal adaptée au travail collaboratif et aux échanges de groupe.

On utilisera des outils de chat structurés comme Mattermost (libre) ou Slack (propriétaire).

ConseilOutils de partage de code

Afin de faciliter le partage du code informatique (voire d'autres type de fichiers textes), on utilisera le gestionnaire de version git et un système collaboratif associé comme Gitlab (libre) ou Github (propriétaire).

Messager, 2009

Messager-Rota Véronique, Gestion de projet : Vers les méthodes agiles, Eyrolles, 2007.

Product backlog

DéfinitionProduct backlog
  • Liste des fonctions ou tâches à faire

  • Hiérarchisées : importance, délais, difficulté, coût...

Méthode
  • Avant chaque timebox le product backlog sert d'outil d'arbitrage

  • Après chaque itération le product backlog est mis à jour

Exemple
Timeboxing & product backlog
ConseilKanban

Les logiciels de type kanban sont très adaptés à la gestion de product backlog.

  • Trello (propriétaire)

  • Kanboard (libre)

  • Gitlab boards (libre)

  • ...

ExempleExemple de colonnes
  • Todo/Open : toutes les tâches encore à faire

  • Delayed : les tâches prévues à un moment, mais reportées entre temps

  • Doing : les tâches en cours de traitement sur l'itération

  • Done/Closed : les tâches terminées

  • Abandoned : les tâches abandonnées

Liste des raccourcis clavier

Liste des fonctions de navigation et leurs raccourcis clavier correspondant :

  • Bloc Suivant : flèche droite, flèche bas, barre espace, page suivante, touche N
  • Bloc Précédent : flèche gauche, flèche haut, retour arrière, page précédente, touche P
  • Diapositive Suivante : touche T
  • Diapositive Précédente : touche S
  • Retour accueil : touche Début
  • Menu : touche M
  • Revenir à l'accueil : touche H
  • Fermer zoom : touche Échap.