Les Fondamentaux de l'agilité
Objectif
Cette formation a pour objectif de présenter les concepts sous-jacents
aux méthodes agiles de développement logiciel et de permettre au groupe
des participants de s’approprier ces concepts, autant d’un point de vue
théorique que d’un point de vue pratique, autant du point de vue du
responsable processus que du point de vue du responsable produit.
Après avoir assisté à la formation, les participants auront développé
une compréhension et un vocabulaire concernant leur processus
agile de développement logiciel. Ils auront ainsi une connaissance
suffisante des principes et pratiques liées aux méthodes agiles pour les
mettre en œuvre sur leurs projets respectifs, en tenant compte à la fois
de leur contexte local et des contraintes de cohérence que nécessite le
travail concerté avec d’autres équipes. Ils maîtriseront les termes liés
aux méthodes agiles, ce qui leur permettra d’approfondir par eux-mêmes
les aspects qui les intéressent plus particulièrement en s’appuyant sur
diverses sources qui leur sont accessibles : littérature sur le sujet,
listes de diffusion Internet, conférences, discussions avec leurs
collègues, etc.
Ce cours est présenté sur deux jours et demi, soit dix-sept heures, sous
forme magistrale et interactive. Les participants auront la possibilité
de discuter avec des experts qui participent activement à la mise en
place de la méthode Scrum dans des équipes de développement.
La formation est assurée par un binôme de formateurs /ut7.
Public visé
Cette formation s’adresse à toutes les personnes impliquées dans le
développement d’un logiciel en équipe.
Contenu
La boucle de rétroaction au cœur du processus agile
- Principes du développement itératif et incrémental : notion
d’itération, de rythme et de régularité
- Lien entre le processus de travail et la qualité du produit livré :
notions de revue de produit (démonstration) et de revue de processus
(rétrospective) ; utilisation de l’observation pour déterminer les
actions futures
- Préciser les attentes pour pouvoir évaluer les résultats : notion de
scénario utilisateur (user story), ce que terminé veut dire
Mécanismes de planification en environnement contraint
- Voir le projet de développement comme un système de contraintes :
rôles de responsable produit, responsable processus et développeur ;
fonction de ces différents rôles
- Définir le produit dans un processus de dialogue : pratique de
spécification par l’exemple
- Stratégies pour définir un produit de manière incrémentale : notions
de feuille de route (roadmap) et de carnet de produit (backlog)
- Stratégies de planification incrémentale : les estimations comme des
paris, réunion quotidienne, coups pour voir (spikes)
Systématisation du processus
- Stratégies pour maintenir un cap dans un environnement changeant :
notion d’homéostasie ; l’équipe comme un système ; interactions avec
« l’extérieur »
- Stratégies d’assurance qualité dans un contexte de livraison
incrémentale : notions de tests (automatisés et manuels), d’intégration
continue et de déploiement automatisé
- Gestion du traitement des anomalies : envisager l’anomalie comme une
fonctionnalité manquante restant à programmer, stratégies de maintien de
marge de manœuvre, stratégies de mise en priorité
- Synthèse : les cercles concentriques de rétroaction (feedback)