L enseignement de méthodes agiles dans un contexte d apprentissage actif Ruben González-Rubio Eugène Morin Balkrishna Sharma Gukhool Groupe ɛ X it C1-3019 Département de génie électrique et de génie informatique Université de Sherbrooke, Sherbrooke, QC, J1K 2R1, Canada Agile Tour 6 novembre 2013 R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 1 / 38
Plan de la présentation 1. Introduction 2. Cadre de l enseignement 3. L APP en bref 4. Application des méthodes Agiles 5. Leçons de la programmation Agile 6. Conclusion R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 2 / 38
Section 1 Introduction R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 3 / 38
Introduction Motivation Présenter les leçons apprises sur la formation de la méthodologie Agile dans un cadre d apprentissage par problèmes (APP). R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 4 / 38
Introduction Cadre particulier APP : Apprentissage par problèmes et par projet. Enseignement actif : l étudiant doit chercher à acquérir des compétences et les appliquer. Connaissances Déclaratives (Quoi?) : Notions d héritage, polymorphisme,... Procédurales (Comment?) : Implémentation d un design pattern,... Conditionnelles (Quand?) : Réusinage pour introduire un design pattern,... R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 5 / 38
Introduction Cadre particulier APP : Apprentissage par problèmes et par projet. Enseignement actif : l étudiant doit chercher à acquérir des compétences et les appliquer. Connaissances Déclaratives (Quoi?) : Notions d héritage, polymorphisme,... Procédurales (Comment?) : Implémentation d un design pattern,... Conditionnelles (Quand?) : Réusinage pour introduire un design pattern,... R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 5 / 38
Section 2 Cadre de l enseignement R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 6 / 38
Cadre de l enseignement Les modules Agiles Les modules Agiles sont sur deux trimestres Chaque module comporte 3 APPs. Ayant chacun au moins un thread conducteur commun et un distinct. Chaque APP est sur 2 semaines. Comprenant 5 jours de travail encadré + examens. Apprentissage très dirigé (pour éviter la dispersion) S assurer de l acquisition des compétences visées. Réutilisation des compétences acquises à chaque APP. Temps très limité, chaque seconde compte. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 7 / 38
Cadre de l enseignement Les modules Agiles Les modules Agiles sont sur deux trimestres Chaque module comporte 3 APPs. Ayant chacun au moins un thread conducteur commun et un distinct. Chaque APP est sur 2 semaines. Comprenant 5 jours de travail encadré + examens. Apprentissage très dirigé (pour éviter la dispersion) S assurer de l acquisition des compétences visées. Réutilisation des compétences acquises à chaque APP. Temps très limité, chaque seconde compte. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 7 / 38
Cadre de l enseignement Horaire d activités d un APP sur deux semaines Lu Ma Me Je Ve Matin 09h00-10h30 9-12h 9-12h Tutorat Procédural Collaboration Après-midi 14-17h 14-17h Conf. outils Laboratoire Figure 1 : Semaine 1 Lu Ma Me Je Ve Matin 9-12h 9-12h 9-11h Procédural Validation Consultation Après-midi 14-17h 13h30-17h 13-17h Laboratoire Tutorat Examen Figure 2 : Semaine 2 R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 8 / 38
Cadre de l enseignement Profils des étudiants Études + Stages Six trimestres d étude en génie informatique. Six projets de développement logiciel en équipe, un par trimestre. Quatre ou cinq stages de 4 mois. Niveau des étudiants Le niveau est très hétérogène. Certains étudiants possèdent: Des compétences en programmation orientée-objet. Ont expérimenté des problèmes liés au développement logiciel. Dans l ensemble, ils sont ouverts et motivés à acquérir de nouvelles compétences. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 9 / 38
Cadre de l enseignement Profils des étudiants Études + Stages Six trimestres d étude en génie informatique. Six projets de développement logiciel en équipe, un par trimestre. Quatre ou cinq stages de 4 mois. Niveau des étudiants Le niveau est très hétérogène. Certains étudiants possèdent: Des compétences en programmation orientée-objet. Ont expérimenté des problèmes liés au développement logiciel. Dans l ensemble, ils sont ouverts et motivés à acquérir de nouvelles compétences. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 9 / 38
Section 3 L APP en bref R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 10 / 38
L APP en bref Contenu Sommaire des activités Tutorat 1 : Découverte de la problématique. Configuration des outils : S assurer que tous les étudiants ont le même environnement de travail. Procéduraux : Partie théorique. Laboratoire : Développement de l application. Validation : Vérification de l application (interne et externe). Tutorat 2 : Révision des connaissances et compétences acquises. Examen sommatif et final. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 11 / 38
L APP en bref Langage, outils et projets Choix technologiques, Ce n est pas de la publicité Java. Eclipse, avec plug-ins pour svn, métriques, junit et autres. Outil de suivi Scrum : Projectus. La communication dans les équipes est auto-organisée. Les projets développés Premier module : jfig, qui est un logiciel de dessin vectoriel. Deuxième module : graphicus, qui est un logiciel d édition 3D. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 12 / 38
L APP en bref Langage, outils et projets Choix technologiques, Ce n est pas de la publicité Java. Eclipse, avec plug-ins pour svn, métriques, junit et autres. Outil de suivi Scrum : Projectus. La communication dans les équipes est auto-organisée. Les projets développés Premier module : jfig, qui est un logiciel de dessin vectoriel. Deuxième module : graphicus, qui est un logiciel d édition 3D. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 12 / 38
L APP en bref Deux applications jfig Figure 3 : Applications jfig réalisées au cours du 1er module Deux équipes, deux applications similaires, mais deux livrables distincts! R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 13 / 38
L APP en bref Une application GraphicUS Figure 4 : Application graphicus réalisée au cours du 2e module R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 14 / 38
L APP en bref Application de la méthode Scrum Mise en contexte Trois APPs de deux semaines, comprenant un sprint par semaine. Six sprints en six semaines. La méthode Scrum est expliquée au premier procédural. Pour certains étudiants, la méthode Scrum est nouvelle. La pratique Suivi continu des itérations de chaque équipe. Le backlog et les sprints sont faits par les étudiants selon les exigences du client. Le premier sprint est fortement guidé par l enseignant. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 15 / 38
L APP en bref Application de la méthode Scrum Mise en contexte Trois APPs de deux semaines, comprenant un sprint par semaine. Six sprints en six semaines. La méthode Scrum est expliquée au premier procédural. Pour certains étudiants, la méthode Scrum est nouvelle. La pratique Suivi continu des itérations de chaque équipe. Le backlog et les sprints sont faits par les étudiants selon les exigences du client. Le premier sprint est fortement guidé par l enseignant. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 15 / 38
Section 4 Application des méthodes Agiles R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 16 / 38
Application des méthodes Agiles Développement de jfig Listes des compétences à acquérir (1er module) Rappel sur les principes de la conception orientée objet. Abstraction, encapsulation, polymorphisme et héritage. Les principes avancés de programmation orientée objet. La qualité et les développements de logiciel. Utiliser le TDD (développement piloté par les tests). Les modèles de conception. Le pair programming 1. Les métriques et la qualité interne. Le réusinage. 1 Programmation en couple sonne trop romantique. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 17 / 38
Application des méthodes Agiles Développement de jfig (suite) Les activités de formation comprennent : Des exemples théoriques et pratiques enseignés pendant tout le module. Selon l APP, certains concepts sont plus approfondis. Par exemple : Au premier APP, la qualité est mentionnée. Au deuxième, c est le sujet principal et elle est quantifiée (à l aide des métriques). Dans le troisième, elle doit être maintenue ou améliorée. L enseignant joue également le rôle de client, de guide et selon cas, de scrum master et product owner. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 18 / 38
Section 5 Leçons de la programmation Agile R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 19 / 38
Leçons de la programmation Agile Vue de l enseignant... R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 20 / 38
Leçons de la programmation Agile Vue de l enseignant Points positifs de la méthode Scrum Faire une planification des tâches. Passer des fonctionnalités aux tâches. Estimation du temps pour réaliser une tâche. Réaliser un logiciel qui fonctionne et y ajouter des fonctionnalités. Travail en équipe (l équipe est responsable de tout). Amélioration continue chez les étudiants. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 21 / 38
Leçons de la programmation Agile Vue de l enseignant Points difficiles de la méthode Scrum Déterminer le temps d une tâche. Exploser une tâche en sous tâche. Assigner les bonnes tâches à un sprint (oublis / interdépendance) Répartition de toutes les tâches au début de l itération. Apprendre à acquérir des tâches en cours d itération. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 22 / 38
Leçons de la programmation Agile Vue de l enseignant Sujets enseignés et leçons Les principes avancés de la conception orientée-objet Concepts difficiles à intégrer. L usage de modèle de conception prédéfinis cache les principes qu ils utilisent. Les modèle de conception Mise en pratique rapidement (avec des imperfections). Temps nécessaire pour bien comprendre quand et/ou les utiliser. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 23 / 38
Leçons de la programmation Agile Vue de l enseignant Sujets enseignés et leçons (suite) TDD, développement piloté par les tests Réticence à l appliquer. Requiert un bon encadrement pour le développement. Plus spécifiquement pour les méthodes et les tests. Le réusinage est une révélation, Modifier un programme qui fonctionne n a jamais été pratiqué (ou presque). R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 24 / 38
Leçons de la programmation Agile Vue de l enseignant Observations La première impression est souvent que le logiciel jfig sera trop difficile à réaliser. Ils ne savent pas par où commencer. Le travail en équipe favorise l échange de connaissances. Ainsi que pair programming. La conception Agile ne fonctionne pas bien si le niveau est bas. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 25 / 38
Leçons de la programmation Agile Vue de l enseignant Acquis de base requis : Pour bien comprendre les concepts. Design Pattern OOP Bonne pratique Réusinage Tests unitaires R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 26 / 38
Leçons de la programmation Agile Vue de l enseignant Points importants à surveiller : Éviter l implémentation de fonctions trop complexe. Interdépendance entre les classes / fonctions. Tests unitaires. Découpage en modules (couplage faible). Qualité interne et externe (UI sophistiqué). R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 27 / 38
Leçons de la programmation Agile Vue de l enseignant Points difficiles pour les étudiants : Travaux en équipe. Travaux en pair programming. Respecter les exigences du client. Présenter un prototype rapidement au client. Commencer par l interface usager. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 28 / 38
Leçons de la programmation Agile Vue de l enseignant Le tuteur doit : Guider l étudiant. Éviter de forcer la main. Jouer le rôle de client. Suivre l évolution du logiciel. Suggérer des modifications et ajouts en cours de développement. Donner la revue de code. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 29 / 38
Leçons de la programmation Agile Vue par l étudiant... R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 30 / 38
Leçons de la programmation Agile Vue par l étudiant Points positifs du développement Agile : Simplifie la gestion de projet. Permet parfois de débuter un projet de zéro. Première expérience pour certains. Peut s avérer très stimulant. Force à estimer le temps requis de réalisation des tâches. Aide aussi à l estimation de tâches futures. Simplifie la planification des tâches par itération. Grâce à la priorisation des tâches. Ainsi qu aux temps estimés pour chacune d elles. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 31 / 38
Leçons de la programmation Agile Vue par l étudiant Points plus difficiles : Travailler en équipe lorsque les forces et faiblesses des membres sont inconnues. Questionnement sur la pertinence des tests et leur quantité. Augmentation de la pression sur chacun des membres (comptes à rendre à l équipe). R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 32 / 38
Leçons de la programmation Agile Vue par l étudiant Mauvaises pratiques rencontrées lors des premiers sprints: Mauvaise subdivision des tâches. Occasionnant une mauvaise estimation du temps de réalisation. Temps de réusinage non planifié. À quelle tâche doit-on attribuer ce temps de travail? Certains membres s attribuent des tâches pour l ensemble de l itération. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 33 / 38
Leçons de la programmation Agile Vue par l étudiant Trois points aidant à la réussite d un projet Agile : 1. Faciliter l intégration des membres d une équipe nouvellement formée. Identifier les forces et faiblesses de chacun. Permettre un temps d adaptation et de mise à niveau. 2. Promouvoir la programmation en pair. Pour niveler les forces et faiblesses des membres de l équipe. Pour s instruire et s améliorer. 3. Satisfaire le client rapidement, et ce : Selon ses besoins. Sans faire d ajouts superflus. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 34 / 38
Section 6 Conclusion R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 35 / 38
Conclusion Récapitulatif de la présentation. Les APPs se prêtent bien à l enseignement des méthodes agiles. En deux semaines. on constate rapidement des améliorations, tel que : Une augmentation de la qualité des logiciels Une diminution de la peur du changement. Un fort enthousiasme sur les nouvelles compétences acquises. Et les étudiants sortent ressourcés. L interaction dans les APPs à également permis aux enseignants d apprendre beaucoup. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 36 / 38
Conclusion (suite) La rétroaction avec les étudiants à permis de: Cibler les points forts de la formation et ceux à améliorer. Appliquer le principe d amélioration continue aux cours. De constater la diversité des opinions entre les enseignants et étudiants (respect des individus). La formation pourrait être transposée à un contexte de travail en entreprise. Tel que : Développer un mini projet. Faire des itérations très courtes. Planifier des périodes de rétroaction sur la nouvelle manière de développer. R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 37 / 38
Contact Les courriels Ruben Gonzalez-Rubio Ruben.Gonzalez-Rubio@USherbrooke.ca Eugène Morin Eugene.Morin@USherbrooke.ca Balkrishna Sharma Gukhool Balkrishna.Sharma.Gukhool@USherbrooke.ca R. González-Rubio, E. Morin, B.-S. Gukhool L enseignement de méthodes Agiles Agile Tour 2013 38 / 38