Plan. 1 Cycles de développement. 2 Méthodes agiles, principes généraux. 3 Comment se passe un Sprint?



Documents pareils
Conduite de projets SI. Les méthodes «Agiles» N QUAL/1995/3660e ORESYS

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

25/12/2012

Yassine ZAKARIA SÉMINAIRE : MÉTHODES AGILES

Agilitéet qualité logicielle: une mutation enmarche

Méthodes de développement

Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles

Règles d engagement. Présentation Diapositives Bibliographie Questions Les vertus de la marche

Méthodes agiles. CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif.

Topologie du web - Valentin Bourgoin - Méthodes agiles & SCRUM

Les méthodes itératives. Hugues MEUNIER

REX Scrum Master du terrain

XP : plus qu'agile. Extreme Programming v2 et Développement Responsable. Thierry Cros

Introduc)on à l Agile

Les méthodes Agiles Introduction. Intervenant : Tremeur Balbous tremeur@agilegardener.com 04/09/2008

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

Agile 360 Product Owner Scrum Master

Scrum Une méthode agile pour vos projets

Gestion de projet Agile. STS IRIS Module «Gérer et organiser un projet informatique»

User stories et Backlog de produit

Jean-Pierre Vickoff

Formation agile. Formation agile Created on 24 janv Edited on 29 févr Page 1 sur 16

Développement itératif, évolutif et agile

Le rôle du coach Agile et son apport pour le projet

Programmation Agile Mise en oeuvre via Scrum et l'extreme Programming (XP)

Soyez agile. Dans l industrie du logiciel, la. De plus chaque projet informatique

Retour d expérience implémentation Scrum / XP

Présentation UBO 12/2008 Présentation des méthodes agiles

Méthode Agile de 3 ème génération J-P Vickoff

Les méthodes agiles UM Les méthodes agiles S. Mathon

Agile Maroc 24 Novembre Méthodes agiles. Thierry Cros. Agile Maroc 24 novembre 2010

INF2015 Développement de logiciels dans un environnement Agile Examen final hiver 2015

Méthodes Agiles et gestion de projets

Génie logiciel (Un aperçu)

Le Product Owner Clé de voute d un projet agile réussi

Guide de Préparation. EXIN Agile Scrum. Foundation

Les mécanismes d'assurance et de contrôle de la qualité dans un

Extreme Programming. Le projet social. Angèle Batanero Thierry Cros. Agile Tour 2010 : XP, le projet social

XP : ce célèbre inconnu

Scrum + Drupal = Julien Dubois

Les Bonnes PRATIQUES DU TEST LOGICIEL

Introduction au génie logiciel

backlog du produit Product Owner

CHAPITRE 3 : LES METHODES AGILES?

Les méthodes Agiles. Introduc)on aux méthodes Agiles Exemple : Scrum

Introduction Les processus traditionnels extreme Programming Conclusion. extreme Programming. vers plus d agilité. F. Miller francois.miller@inpg.

L enseignement de méthodes agiles dans un contexte d apprentissage actif

Le Product Backlog, qu est ce c est?

Enfants Agiles. La méthode Agile appliquée à l éducation

Gestion Projet. Cours 3. Le cycle de vie

Jean-Pierre Vickoff J-P Vickoff

LA MÉTHODE AGILE VS LE CYCLE EN V UNE RÉVOLUTION DANS LA GESTION DE PROJET. Franck BEULÉ

Scrum et l'agilité des équipes de développement

Testeur Agile Niveau Fondation Bertrand Cornanguer, Vice-chair Agile tester WG

Formation pour Product Owner

Introduction à l extreme Programming et au développement agile

Estimer et mesurer la performance des projets agiles avec les points de fonction

SCRUM chez BWIN : implémentation d une méthode agile dans Focalpoint Spasija Taseva et Corinne Bacle

Séance 1 Méthodologies du génie logiciel

INTRODUCTION À LA GESTION DE PROJET AGILE (BACKLOG, TABLEAUX DE BORD, BURNDOWN, PLANIFICATION D ITERATIONS)

{ mathieu boisvert / michel céré ; }

Scrum. ... pour des projets informatiques agiles. Pascal Lando Certified Scrum product owner

Contrats agiles: mythe ou réalité?

1/15. Jean Bernard CRAMPES Daniel VIELLE

Christophe Leroy Marc Lainez. L Agilité est-elle soluble dans la culture francophone?

Certification Scrum Master

Les méthodes Agile. Implication du client Développement itératif et incrémental

Cours Ephec Niv. 2 : Technique et gestion de projet. Par Monsieur Bertieaux Année Académique Quelles sont les 4 valeurs Agiles?

CINEMATIQUE DE FICHIERS

Formation Certifiante Scrum Master

Qualité et Test des Logiciels. Le génie logiciel. Moez Krichen.

Contact: Yossi Gal, Téléphone:

Fondateur d Agile Impulse nicolashennion@agileimpulse.com. Support disponible sur agileimpulse.com/formation/scrumssii2j.

UML est-il soluble dans les méthodes agiles?

Développement Agile des organisations et des hommes

Les Méthodes Agiles. description et rapport à la Qualité. Benjamin Joguet Rémi Perrot Guillaume Tourgis

Site web de Support : Manuel utilisateur

GESTION DE PROJET : LA METHODE AGILE

Cours Gestion de projet

Une bonne dose d'agilité au cœur de votre équipe. La rece e Visual Studio 2012 pour des projets maitrisés

L'agilité appliquée à nous-mêmes. Philippe Krief, PhD Development Manager IBM France Lab

Tuesday, October 20, Nantes

Vision Produit. Un sacré attracteur pour une équipe auto-organisée. Thierry Cros

Formation Scrum. 2 jours

Les méthodes agiles en développement informatique : Fondements théoriques et retours d expérience

1. Considérations sur le développement rapide d'application et les méthodes agiles

Le management de projet

Les Méthodes Agiles. Plan. Lecture. Objectifs du cours

Améliorez et industrialisez vos feedback produit

L'AGILITÉ AVEC VISUAL STUDIO

EXIN Agile Scrum Master

Architecture pragmatique pour la gestion du cycle de vie des applications (ALM)

Agilité et Recherche Journée COMPIL Olivier INIZAN - INRA PEPI-IDL/URGI. 13 juin 2012

Méthodologies SCRUM Présentation et mise en oeuvre

Service On Line : Gestion des Incidents

Enterprise Scrum Organisation des développements chez exo. Agile Tour Rennes 2010 / 10 / 07

Yannick Prié Département Informatique Faculté des Sciences et Technologies Université Claude Bernard Lyon

Transcription:

Plan nitiation au Génie Logiciel Cours 5 ntroduction au π développement agile T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 1/ 28 T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 2/ 28 Bibliographie Plan L informatique agile, c est quoi?. D. Certain. nterstices. 2013. https://interstices.info/jcms/int_71726/ linformatique-agile-cest-quoi XP : Extreme programming. Wikipédia. TDD : Test Driven Development. Wikipédia. T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 3/ 28 T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 4/ 28

Cycles de développement : le cycle en V 80% des développement logiciels sont organisés selon un cycle en V Cycles de développement : le cycle en V () + Découpage du développement rationnel, logique, stable + dentification claire des documents à produire,des rôles des équipes + Convient aux grosses équipes, développement de logiciels critiques Crédits : Didier Certain T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 5/ 28 Manque de souplesse : le client ne peut pas changer ses objectifs en cours de route! Découverte tardive des erreurs de spécification/conception par le client ntégration finale risquée : elle s e ectue à la fin du cycle(1 à 2 ans) T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 6/ 28 Cycles de développement : le cycle itératif Cycles de développement : le cycle itératif () + ntégration continue : dispose en permanence d un logiciel fonctionnel (cycles courts : 2 semaines) + Validation rapide et fréquente du logiciel par le client (au moins à chaque fin de sprint) + Le client peut changer ses objectifs (pas de spécification initiale figée) Un sprint = intégration d un ensemble de nouvelles fonctionnalités Crédits : Didier Certain T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 7/ 28 nadapté au développement de logiciels critiques (besoin de spécifications détaillées et stables) Mise en place complexe pour les grosses équipes (> 12 p.) et équipes multi-localisées T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 8/ 28

Plan Méthodes agiles : une implémentation du cycle itératif Manifeste agile π Nous découvrons comment mieux développer des logiciels par la pratique et en aidant les autres à le faire.ces expériences nous ont amenés à valoriser : Les individus et leurs interactions plus que les processus et les outils Des logiciels opérationnels plus qu une documentation exhaustive La collaboration avec les clients plus que la négociation contractuelle L adaptation au changement plus que le suivi d un plan Nous reconnaissons la valeur des seconds éléments, mais privilégions les premiers. T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 9/ 28 T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 10 / 28 Méthodes agiles : le bestiaire Préliminaire au développement agile : les user-stories RAD, ASD, FDD, Kanban, Lean,... Scrum User Stories Sprint Sprint planning Daily Scrum Démo de fin de Sprint XP : Extreme Programming ntégration continue TDD : Test Driven Development Pair programming Principes YAGN et KSS Définition 1 (User-story) Une user-story (récit utilisateur) est une phrase simple décrivant une fonctionnalité du logiciel à développer. déalement, la phrase contient trois éléments descriptifs : qui?, quoi? et pourquoi?. En tant que <qui>, je veux <quoi> afin de <pourquoi> Exemple 2 (User-story) En tant qu utilisateur, je veux pouvoir taper un mot clé afin d obtenir une liste de pages web. Nous allons piocher des éléments dans Scrum et XP pour organiser le travail en TP T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 11 / 28 T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 12 / 28

Le développement agile commence : la version 0 du logiciel Les user-stories vont être intégrées au fur et à mesure dans le logiciel La version 0 (V0) est quasiment une coquille vide : elle doit être rapidement opérationnelle déalement, la V0 doit faire intervenir tous les composants du logiciel final : périphériques, interf. graphiques, syst. de fichiers, réseau,... Exemple 3 (Version 0 du logiciel pour le robot web) Lit une chaîne de caractère au clavier Lit une URL sur internet Ecrit un contenu quelconque dans un fichier Le point de départ : la version 0 du logiciel () Exercice 1 Quelle seraient de bonnes V0 pour les logiciels suivants : 1 Navigateur web 2 Eclipse 3 SVN Remarque 1 Si la V0 fait bien intervenir tous les éléments de la chaîne, on pourra détecter très tôt tout problème technique majeur : par exemple des incompatibilités matérielles ou logicielles. T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 13 / 28 T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 14 / 28 Plan Cycles de développement : le cycle itératif Un sprint = intégration d un ensemble de nouvelles fonctionnalités T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 15 / 28 Crédits : Didier Certain T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 16 / 28

Comment se passe un Sprint? Client + Développeurs 1 Le client définit la liste de user-stories à intégrer pendant le Sprint Développeurs 2 A ecter les user-stories à des équipes (Scrum Planning) 3 Développer, intégrer, tester le code du Sprint 4 Si nécessaire, pendant le Sprint, les équipes se réorganisent Client + Développeurs 5 AlafinduSprint:démo avec le client qui vérifie que les user-stories sont couvertes par la version courante du logiciel Comment développer du code pendant un Sprint Méthode de dével. du code : TDD + KSS + YAGN Méthode de validation du code : ntégration continue (SVN + JUnit) Le code correspondant à la user-story est intégré à la version courante du logiciel On teste que la modification ne fait pas régresser le logiciel! On teste que la modification satisfait bien la user-story Méthode de travail Pair programming (programmation en binômes) Le pilote a le clavier. C est lui qui code. Le co-pilote, l aide en suggérant de nouvelles solutions ou en décelant d éventuels problèmes ls échangent leurs rôles régulièrement déalement, les binômes changent d une séance àl autrepour améliorer la communication et la connaissance collective de l application T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 17 / 28 T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 18 / 28 Plan Principe KSS (Keep t Simple, Stupid) Eviter toute complexité non nécessaire Rechercher la simplicité dans la conception Simplifier le code de la version courante si nécessaire (Refactoring) Exemple 4 (On veut représenter un ensemble de villes) Pas KSS KSS class Ville(n:String){ var nom=n class MutableVilleSet { def ajouterville(v:ville):unit={... val s= new MutableVilleSet s.ajouterville(new Ville("Rennes")) s.ajouterville(new Ville("Milan")) case class Ville(n:String) val s= Set(Ville("Rennes"),Ville("Milan")) T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 19 / 28 T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 20 / 28

Principe YAGN (You Ain t Gonna Need t) Ne pas prévoir ce qui, de toute façon, ne sera jamais utilisé parlasuite! Exemple 5 (On veut représenter des utilisateurs UNX) Pas YAGN YAGN case class Utilisateur(n:String,p:String){ // génère automatiquement le nom de login // de 8 caractères à partir du nom et de la // première lettre du prénom var login= n.subsequence(0,7)+ p.subsequence(0,1) case class Utilisateur(login:String) Raccourcit le temps de développement Evite l alourdissement de l architecture Elimine des bugs potentiels... dans du code inutile! TDD : Test Driven Development Pour ajouter une fonctionnalité X à un logiciel : 1 Ecrire les tests T montrant que X fonctionne 2 Vérifier que le test échoue (X n est pas encore développée) = Permet de vérifier que le test est valide! 3 Ecrire le code nécessaire pour passer T (et pas plus) 4 Vérifier que les tests T passent, sinon retourner en 3 5 Si nécessaire, remanier le code pour le simplifier (KSS) Quizz 1 (On écrit un test qui vérifie que f est une fonction commutative) def test1{ f(11,1),f(11,1)) def f(x:nt,y:nt)= x+y Quelle est l étape du TDD qui a été négligée V 2 R 4 T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 21 / 28 T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 22 / 28 TDD : Test Driven Development () TDD : un exemple de code de l équipe B Exemple 6 On développe un logiciel dans lequel on peut cliquer sur un bouton pour modifier une liste d éléments. L équipe A développe l interface graphique L équipe B développe le traitement des listes L équipe C développe l a chage graphique des listes La première user-story àtraiterest: π L utilisateur clique sur un bouton, l application supprime 2 dans la liste [1, 2, 3] et a che le résultat. (1) On écrit le test import org.junit.assert._ import org.junit.test import ListTools._ class TestListTools { // delete supprime un élément // dans une liste object ListTools {??? (2) on vérifie que le test échoue! T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 23 / 28 T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 24 / 28

TDD : un exemple de code de l équipe B import org.junit.assert._ import org.junit.test import ListTools._ class TestListTools { (3) On écrit le code passant le test object ListTools{ List(1,3) // KSS + YAGN :-) (4) on vérifie que le test passe... et c est tout, pour ce test! Bpeutdéjà envoyer son code qui valide la première user-story!! = L avancement de A et C n est pas bloqué parl attenteducodedeb T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 25 / 28 TDD : l exemple, seconde user-story Exemple 7 (B étudie la seconde user-story àintégrer) L utilisateur clique sur un bouton cela supprime 1 dans la liste [1, 2, 1, 1]. (1) On écrit le test [...] def test_supptoutes_occ{ List(2), delete(1,list(1,2,1,1))) object ListTools { List(2,3) (2) on vérifie que le test échoue! T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 26 / 28 TDD : l exemple, seconde user-story [...] def test_supptoutes_occ{ List(2), delete(1,list(1,2,1,1))) (3) On écrit le code passant le test object ListTools{ if (l==list(1,2,3)) List(1,3) else List(2) // Pas KSS :/ (4) on vérifie que le test passe (5) On remanie le code object ListTools{ l.filter(_!=x) // KSS :-) Déroulement des séances de TPs : Daily Scrum Chaque séance de TP (en mode projet) commencera par : un Daily Scrum Définition 8 (Daily Scrum Mélée journalière) C est une réunion courte (max 10 minutes) où chaque membre du groupe dit, à son tour : 1 Ce qu il a fait àladernière séance 2 Ce qu il doit faire àcetteséance 3 Les problèmes qu il a pour atteindre cet objectif Quelques règles : Tout le monde est debout Le but est de signaler les problèmes, pas de les résoudre ls seront résolus plus tard, après le daily scrum. T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 27 / 28 T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 28 / 28