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
Fondamental : De 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éfinition : Mé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.
Fondamental : Manifeste 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
Exemple : Exemple 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.
Remarque : La 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éfinition : Timeboxing (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 :
Définition : Sprint (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.
Exemple : Boî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 (JDB)
Définition : Journal de bord (JDB)
Le journal de bord est un enregistrement séquentiel de ce qui est réalisé, avec des notes permettant de garder la mémoire des réflexions associées.
Chaque entrée est datée et associée aux acteurs concernés.
Il consigne le temps de travail associé aux réalisations.
Il contient des références vers les livrables (documents publics, CR de réunion...).
Attention :
Le journal doit être rendu chaque semaine.
Attention : On ne raconte pas sa vie, on parle des livrables, on donne à voir
Chaque tâche doit produire des choses à voir et à lire ; chaque compte-rendu d'itération consiste à parler de livrables.
Exemple :
Méthode : Outils
Etherpad : pad.picasoft.net
HedgeDoc : md.picasoft.net
Conseil : Faciliter 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.
Complément : Auto-évaluation
Outils collaboratifs
Conseil : Outils 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).
Conseil : Outils 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).