Extreme Programming
Transcription
Extreme Programming
Extreme Programming Le projet social Angèle Batanero Thierry Cros Agile Tour 2010 : XP, le projet social http://etre-agile.com 1 Qui sommes-nous ? Angèle Batanero Développeur Thierry Cros C++ Java Coach depuis 10 ans http://etre-agile.com Agile Tour 2010 : XP, le projet social http://etre-agile.com 2 Agenda XP, qu'es aco ? Valeurs, principes Pratiques XP, au cœur de l'Agile Planification Équipe Développement L'Intention des Anarchistes Organisationnels XP (Agile) : le projet social « Insurrection des consciences » Agile Tour 2010 : XP, le projet social http://etre-agile.com 3 XP, cet inconnu célèbre Idées reçues... XP, c'est pour les Développeurs « geeks » XP, cela ne fonctionne que sur des petits projets sans enjeux XP c'est juste un complément technique à Scrum Agile Tour 2010 : XP, le projet social http://etre-agile.com 4 XP : un nom pas vraiment marketing... ...Mais qui annonce la couleur Extreme Ce sont donc des extrémistes.. Des révolutionnaires ! Agile Tour 2010 : XP, le projet social http://etre-agile.com Programming Ah bon... On ne conçoit pas, on n'analyse pas... 5 « programming » Quelles activités apportent vraiment une Valeur Ajoutée ? Programming « Coder » (Java...) Paramétrer Programming = Fabriquer le produit Remettre en cause, réduire voire éliminer les activités « non V.A. » Agile Tour 2010 : XP, le projet social http://etre-agile.com 6 « extreme » Une fois les activités « non VA » réduites, quelles activités conserver et dans quelle proportion ? Dialogues Tests Conception Relecture Extreme Programming = « Pousser à fond » activité à Valeur Ajoutée Agile Tour 2010 : XP, le projet social http://etre-agile.com 7 Extreme Programming = centré activités à Valeur Ajoutée Agile Tour 2010 : XP, le projet social http://etre-agile.com 8 XP : « la » synthèse L'originalité d'XP réside Dans la synthèse faite de principes et pratiques Dans l'apport de pratiques spécifiques (stories, TDD...) Agile Tour 2010 : XP, le projet social http://etre-agile.com 9 La « constitution » XP Valeurs Principes Pratiques Rôles Agile Tour 2010 : XP, le projet social Cycle de Vie http://etre-agile.com 10 Rôles essentiels Une équipe, plusieurs rôles Client (Product Manager) Spécifie les demandes et les tests-client, planifie en tenant compte de la VA des demandes Développeur Estime les demandes, réalise Un point focal pour tous : l'importance Métier offerte par le produit Agile Tour 2010 : XP, le projet social http://etre-agile.com 11 Cycle de Vie XP 1 Exploration 2 2 mois max. Engagement 3 4 1 semaine 5 ... Pilotage par feedback Des années ! Agile Tour 2010 : XP, le projet social http://etre-agile.com n Mort de l'appli 12 Agenda XP, qu'es aco ? Valeurs, principes Pratiques XP, au cœur de l'Agile Planification Équipe Développement L'Intention des Anarchistes Organisationnels XP (Agile) : le projet social « Insurrection des consciences » Agile Tour 2010 : XP, le projet social http://etre-agile.com 13 Valeurs de l' Extreme Programming Communication Combien d'exemples... et de contre-exemples ! Feedback (concret et rapide) Pour piloter à partir d'éléments les plus objectifs Simplicité Le pari de l'Extreme Programming, pour tous, tout le temps Courage De changer de rôle, de vision du produit Respect Respecter et être respecté en tant que personne Agile Tour 2010 : XP, le projet social http://etre-agile.com Principe Lean 14 Valeur ? Valeur : norme de conduite personnelle et/ou sociale* * http://fr.wikipedia.org/wiki/Valeur Agile Tour 2010 : XP, le projet social http://etre-agile.com 15 XP : les principes Humanisme Flot continu Économie Opportunité Bénéfices mutuels Redondance Autosimilarité Échecs Qualité Petites étapes Amélioration continue Diversité Réflexion Agile Tour 2010 : XP, le projet social Responsabilité choisie http://etre-agile.com 16 Pourquoi des principes Entre valeurs et pratiques, les principes - guident l'adaptation d'XP - sont autant d'axes d'amélioration d'un existant Agile Tour 2010 : XP, le projet social http://etre-agile.com 17 Humanisme « Le propos d'XP est le changement social » K. Beck Revaloriser le métier du développement Prendre en compte la dimension humaine dans les activités liées au logiciel Exprimer les besoins Développer Avoir le droit de bien faire, s'accomplir dans son travail, être fier de son travail Pouvoir influencer la façon dont on travaille Être responsable, s'auto-gérer Agile Tour 2010 : XP, le projet social http://etre-agile.com 18 Humanisme : hédonisme et responsabilité Le plaisir de coder, de participer au développement du produit La responsabilité de la fabrication D'un monde centré « pouvoir »... … À un collectif coresponsable Agile Tour 2010 : XP, le projet social http://etre-agile.com Pas facile... Ni pour le Manager, ni pour le Développeur 19 Diversité La diversité engendre l'efficacité... … Pourvu que les différences soient vues comme des opportunités Jeunes et Vieux Écoles et Universités ... Agile Tour 2010 : XP, le projet social http://etre-agile.com 20 Réflexion La vie en métaphores Comment telle pratique... Association Sport … … peut aider à améliorer mon travail Agile Tour 2010 : XP, le projet social Amélioration continue http://etre-agile.com Le 12ème principe agile Comment et pourquoi je travaille 21 Agenda XP, qu'es aco ? Valeurs, principes Pratiques XP, au cœur de l'Agile Planification Équipe Développement L'Intention des Anarchistes Organisationnels XP (Agile) : le projet social « Insurrection des consciences » Agile Tour 2010 : XP, le projet social http://etre-agile.com 22 Pratiques de l'Extreme Programming 13 pratiques de base 1. Expression de besoins et planification 2. Le facteur humain 3. Conception 4. Coder et livrer Agile Tour 2010 : XP, le projet social http://etre-agile.com 23 Histoires et Planification 1/4 Demandes ? Les besoins sont décrits sous forme d'histoires d'utilisation*. Le cycle est itératif incrémental, la durée par défaut d'une itération est d'une semaine. La vision globale est planifiée à l'échelle du trimestre. Une marge de sécurité permet d'absorber les imprévus (slack). * Ce sont les User Stories : « En tant que... je peux... pour telle V.A .... » Agile Tour 2010 : XP, le projet social http://etre-agile.com 24 Facteur humain, équipe 2/4 Un plateau-projet, où nous sommes assis ensemble Équipe complète : esprit d'équipe, entr'aide, y compris le Client Espace d'information : les infos sont affichées, disponibles directement (radiateur d'information, transparence) Un rythme viable pour tous les membres de l'équipe : Développeurs, Client... Nous codons en binôme. Agile Tour 2010 : XP, le projet social http://etre-agile.com 25 Conception 3/4 Conception émergente une règle d'or, pas de duplication de code Attention aux couplages Test Driven Development : d'abord écrire le test, puis coder, puis mettre au point, période de ½ heure. Le refactoring est une conséquence de « conception émergente » Agile Tour 2010 : XP, le projet social http://etre-agile.com 26 Conception émergente Itération 1 Histoires d'utilisation A320 Itération n Histoires du A380 Avion A320 A320 A380 YAGNI ! Agile Tour 2010 : XP, le projet social http://etre-agile.com 27 TDD User story « en tant qu'élève je peux calculer une division » Des classes : Calculateur, Afficheur... TDD - ½ heure : 1) Écrire les tests 2) Coder 3) Passer les tests Agile Tour 2010 : XP, le projet social http://etre-agile.com 28 Concrètement : écrire un test... package Calculateur; public class Calc { public int additionner(int a, int b){ return a + b; } public int soustraire(int a, int b){ return a - b; } // Un test simple pour commencer... Conception @Test public void testDivisionSimple() { Calc ma_calculette = new Calc(); int quotient = ma_calculette.diviser(10,2); Assert.assertEquals(5, quotient); } Agile Tour 2010 : XP, le projet social http://etre-agile.com 29 … Puis le code Les anciens tests passent... Le nouveau ne passe pas, on écrit donc le code pour faire passer le test public int diviser(int dividende, int diviseur) { return dividende / diviseur; } Tous les tests passent (nouveau et anciens) Agile Tour 2010 : XP, le projet social http://etre-agile.com 30 Et un autre test « erreur » @Test public void testDivisionSimple() { Calc ma_calculette = new Calc(); int quotient = ma_calculette.diviser(10,2); Assert.assertEquals(5, quotient); } @Test(expected=ArithmeticException.class) public void testDivisionParZero() { Calc ma_calculette = new Calc(); int quotient = ma_calculette.diviser(11,0); } Agile Tour 2010 : XP, le projet social http://etre-agile.com 31 Enfin... On vérifie que tous les tests passent Les test fournissent le « how to » de la méthode Ils ont permis au passage de concevoir la méthode Et permettent de s'assurer que la méthode se comporte comme on le souhaite Agile Tour 2010 : XP, le projet social http://etre-agile.com 32 La barre verte, toujours ! Agile Tour 2010 : XP, le projet social http://etre-agile.com 33 Coder et livrer 4/4 Intégration continue, plusieurs fois par jour Nous testons et intégrons très souvent, le build dure 10 minutes maximum. (Ten Minutes Building) Le code-source et les tests sont des documents obligatoires Le code est partagé entre tous Gestion de configuration : une seule version officielle (qui évolue en permanence) Déploiement au plus tôt : chaque nuit... chaque deux semaines ou au maximum chaque trimestre Agile Tour 2010 : XP, le projet social http://etre-agile.com 34 Intégration continue Plusieurs « niveaux » Chaque nuit À la demande Systématiquement (chaque « commit ») : 10' Building Ressources Serveur dédié Gestion type Hudson Associer Gestion de conf Intégration continue et Tests Agile Tour 2010 : XP, le projet social http://etre-agile.com 35 Agenda XP, qu'es aco ? Valeurs, principes Pratiques XP, au cœur de l'Agile Planification Équipe Développement L'Intention des Anarchistes Organisationnels XP (Agile) : le projet social « Insurrection des consciences » Agile Tour 2010 : XP, le projet social http://etre-agile.com 36 XP, au cœur de l'Agile Manifeste agile (2001) Valeurs Principes Histoire du manifeste Les Anarchistes organisationnels Agile Tour 2010 : XP, le projet social http://etre-agile.com 37 Dilbert ? Non, merci. « … l'Extreme Programming a connu un développement dans son utilisation et son intérêt, non pas grâce à la programmation en binôme ou au refactoring, mais parce que, pris dans leur ensemble, ses pratiques définissent une communauté de développeurs libérée des poids des sociétés "Dilbertesques". » Histoire du Manifeste agile, Jim Highsmith Traduction de Fabrice Aimetti http://www.fabrice-aimetti.fr Agile Tour 2010 : XP, le projet social http://etre-agile.com 38 Vous avez aimé Peter ? Vous adorerez Dilbert ! Le principe de Dilbert est une version aggravée du principe de Peter. Dans le livre Le Principe de Dilbert, Scott Adams rappelle le principe de Peter : Tout employé tend à s'élever à son niveau d'incompétence. Le nouveau principe, principe de Dilbert, s'énonce ainsi : « Les gens les moins compétents sont systématiquement affectés aux postes où ils risquent de causer le moins de dégâts : ceux de managers. » Source : wikipedia Agile Tour 2010 : XP, le projet social http://etre-agile.com 39 l'Agilité au bulldozer Lundi, vous passez à l'agilité. Agile Tour 2010 : XP, le projet social http://etre-agile.com 40 Agile, Lean : attention danger ? Améliorer la productivité, Agile ou Lean sont faits pour ça ! Finance Adaptateur « Notre premier objectif est de livrer au plus tôt et régulièrement... » 1er principe agile « Livrer rapidement » principe Lean … Agile Donc Agile ou Lean sont une méthode pour faire plus de profit ! Agile Tour 2010 : XP, le projet social http://etre-agile.com 41 Ne nous trompons pas d'objectif Changer le système plus que condamner des personnes. Agile Tour 2010 : XP, le projet social http://etre-agile.com 42 Agile, Lean : à la source 2 piliers Économie : la sobriété heureuse « l'activité humaine qui consiste en la production, la distribution, l'échange et la consommation de biens et de services. » Agile Tour 2010 : XP, le projet social http://etre-agile.com Humanisme « Respecter les personnes » principe Lean « Rythme viable » « auto-organisation » « auto-amélioration » principes agiles 43 Agile : l'intention « À la base, je crois que les Méthodologistes Agiles sont vraiment des "sentimentaux" en parlant de livrer les bons produits aux clients et en travaillant dans un environnement qui fait plus que parler des "gens comme nos ressources les plus importantes" mais en réalité agit comme si les gens étaient les plus importants » Source : histoire du Manifeste Les Anarchistes organisationnels Agile Tour 2010 : XP, le projet social http://etre-agile.com 44 Anarchie ? « L'anarchie, c'est l'ordre sans le pouvoir. » Léo Ferré Agile Tour 2010 : XP, le projet social http://etre-agile.com 45 Une métaphore : solutions locales... De la grosse industrie agricole "Ceux qui sont en villeGuerre peuvent parfaitement se solidariser avec ceux qui sont à la campagne, → Chimie et ainsi on fait un pont dessus → par Agriculture industrielle toute la sphère affairiste. → Quels résultats ? Et l'autonomie, c'est Aux le maître AMAPsmot aujourd'hui." http://terre-humanisme.org Rôle du trésorier dans une AMAP ? Pierre Rabhi Agile Tour 2010 : XP, le projet social http://etre-agile.com 46 AMAP et Plateau Projet agile AMAP Plateau agile Des Consommateurs Un Product Owner Un Paysan Des Développeurs Collaborent Production Ramasser les légumes Responsabilités simples Agile Tour 2010 : XP, le projet social Collaborent Production Tester Responsabilités simples Le Product Owner est solidaire des Développeurs http://etre-agile.com 47 Pré-requis... Motivation Changer ses habitudes Question de valeurs et de prise de conscience « j'achète plus que des légumes » Faire confiance Capacité à jouer son rôle Si le Paysan ne sait pas communiquer ? Si les Consommateurs ne voulaient plus payer ? Le bon « staffing » : adéquation du nombre Agile Tour 2010 : XP, le projet social http://etre-agile.com 48 XP : l'Humanisme en projet social « Le propos d'XP est le changement social » K. Beck Revaloriser le métier du développement … Et des Utilisateurs ! Prendre en compte la dimension humaine dans les activités liées au logiciel Exprimer les besoins Développer Avoir le droit de bien faire S'accomplir dans son travail - Être fier de son travail Pouvoir influencer la façon dont on travaille Être responsable, auto-géré Agile Tour 2010 : XP, le projet social http://etre-agile.com 49 Autrement dit... D'un monde, piloté par l'argent, où l'on travaille pour « gagner » sa vie... … à un monde où l'on participe à l'inter-dépendance dans un rôle de - Développeur - Utilisateur l'argent étant un moyen. Agile Tour 2010 : XP, le projet social http://etre-agile.com 50 « Insurrection des consciences » Agile Tour 2010 : XP, le projet social http://etre-agile.com 51 Utopie ? « L'utopie est simplement ce qui n'a pas encore été essayé ! » Théodore Monod Agile Tour 2010 : XP, le projet social http://etre-agile.com 52 Quelques pistes S'informer, parler, échanger Métaphores Solutions locales... Je, Équipe, projet, organisation Les Utilisateurs solidaires des Développeurs AMAP Managez votre manager Plan Do Check Act, Go & See Se forger sa propre opinion, concrètement Être so-li-dai-re : asso, syndicat Agile Tour 2010 : XP, le projet social http://etre-agile.com 53 « Imagine an Agile World » Localement agile ! Agile Tour 2010 - Toulouse . Agile Tour 2010 : XP, le projet social http://etre-agile.com 54