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)