Mise en place de pratiques XP pour



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

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

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

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

25/12/2012

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

Maîtrise d ouvrage agile

Retour d expérience implémentation Scrum / XP

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

Yassine ZAKARIA SÉMINAIRE : MÉTHODES AGILES

Les méthodes itératives. Hugues MEUNIER

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

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

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

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

REX Scrum Master du terrain

Les Bonnes PRATIQUES DU TEST LOGICIEL

Scrum Une méthode agile pour vos projets

Introduction à l extreme Programming et au développement agile

Agile 360 Product Owner Scrum Master

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

Scrum + Drupal = Julien Dubois

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

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

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

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

Guide de Préparation. EXIN Agile Scrum. Foundation

Gestion Projet. Cours 3. Le cycle de vie

AGILE IPHONE DEVELOPMENT

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

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

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

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

Méthodes Agiles et gestion de projets

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

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

backlog du produit Product Owner

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

Tuesday, October 20, Nantes

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

Développement Agile des organisations et des hommes

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

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

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

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

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

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

Livrer chaque jour ce qui est prêt! Points clés du développement d un produit avec une livrasion par jour.

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

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

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

XP : ce célèbre inconnu

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

CHAPITRE 3 : LES METHODES AGILES?

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

Jean-Pierre Vickoff

ISTQB Agile Tester en quelques mots ISTQB Marketing Working Group

GESTION DE PROJET : LA METHODE AGILE

Marketing et communication interactive comprendre et anticiper les usages et les besoins. Expertise technologique

Feature Team Primer. par Craig Larman et Bas Vodde. Version 1.2

Introduc)on à l Agile

Germe Grenoble 4 22/06/2012. Intervenant: Bruno Sbille

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

Jean-Pierre Vickoff J-P Vickoff

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

Contact: Yossi Gal, Téléphone:

Approches Agiles pour éditeurs logiciels

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

Introduction au génie logiciel

Conditions gagnantes pour démarrer sa transition Agile

EXIN Agile Scrum Master

Cours Gestion de projet

L'AGILITÉ AVEC VISUAL STUDIO

Eclipse Process Framework et Telelogic Harmony/ITSW

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

Cycle d exploration «Software Asset Building» Expédition 2 du 11 juin 2013 à la SGCIB ; l Agile.

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

Certification Scrum Master

PagesJaunes.fr Mise en place de Scrum de scrum. Fabien Grellier Agile Tour Octobre

Formation pour Product Owner

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

Formation Scrum. 2 jours

Scrum et itk : adaptation de la méthode au développement d OAD. D après Henrik Kniberg Scrum et XP depuis les tranchées

Développement itératif, évolutif et agile

Agilitéet qualité logicielle: une mutation enmarche

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

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

Comment mettre en oeuvre une gestion de portefeuille de projets efficace et rentable en 4 semaines?

AGILE. Implémenter la pratique Scrum dans votre équipe?

WEB15 IBM Software for Business Process Management. un offre complète et modulaire. Alain DARMON consultant avant-vente BPM

GL Processus de développement Cycles de vie

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

Formation Certifiante Scrum Master

M1 : Ingénierie du Logiciel

DES SYSTÈMES D INFORMATION

Le secteur des SSII (Sociétés de

XEBIA DÉVELOPPEMENT OFFSHORE DISTRIBUÉ EN MÉTHODES AGILES. CAS CLIENT : CoachClub

+ DISCOVER " BENCHMARK DU SECTEUR, DE LA CONCURRENCE, + PLAN MÉTHODOLOGIE " STRATÉGIE COMMERCIALE, STRATÉGIE DE MARQUE, MARKETING,

But de cette introduction à la gestion de projets :

Transcription:

Mise en place de pratiques XP pour Cliquez pour modifier le style des sous-titres du masque Karine Sabatier www.karinesabatier.net

Karine Développeur Interaction Designer, Ergonome, Chef de projet Coach XP

But permettre aux marques & aux agences d assurer le succès de leurs opérations de marketing participatif

User Generated Content Co-création

Flash back

1996, Kent Beck, Ward Cunningham et Ron Jeffries travaillent chez Chrysler sur le projet «Chrysler Comprehensive Compensation» (1995) Smalltalk 1999, Kent Beck écrit son livre blanc «Extreme Programming Explained : embrace change»

Manifesto for agile software development (2001) Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan http://agilemanifesto.org/

Waterfall / cycle en V Expression de besoins Conception Développement Tests, recette & debuggage À 50% du temps total, le client ne voit statistiquement que 10% de son application. Et il ne sait pas dans quel état elle est.

Avec une méthodologie agile Expression de besoins Simplicité, user stories Pair programming Refactoring TDD, acceptance refactoring Demos, reviews, rétrospective s Conception Développement Tests, recette & debuggage i 1 i 2 i 3 À chaque itération, le produit est 100% fonctionnel. i n

Extreme programming?

5 valeurs Communication Feedback Simplicité Courage Respect

13 pratiques 1. Client sur site 2. Planning game 3. Collective code ownership 4. Convention over configuration 5. Tests de recette 6. TDD et tests unitaires 7. Intégration continue 8. Petites livraisons 9. Conception simple 10. Utilisation de métaphores 11. Pair programming 12. Refactoring 13. Rythme soutenable

XP, pragmatique et humaniste Un ensemble de bonnes pratiques à généraliser Travailler mieux en structurant l équipe de manière auto-organisée en délivrant du code et un logiciel de qualité optimale (proche du zéro défaut) qui colle parfaitement à la vision du client le tout en reprenant plaisir à programmer Principe gagnant-gagnant

Ce que nous allons voir Le contexte Eyeka Pratiques mises en place et bénéfices Pratiques non mises en place et pourquoi (principaux freins)

Le Chaos Contexte

Contexte startup Un produit jeune aux contours flous Un business model fluctuant La pression des investisseurs Des deadlines serrées voire irréalistes Une équipe peu ou pas formée au framework Pénurie de ressources Ror => des conditions idéales pour l agilité

Contexte mais de bons outils Un framework (Ruby on Rails) très adapté mais sous-utilisé : Un framework avec des tests unitaires De la flexibilité : plugins, migrations, etc. Des outils de déploiement «agile»

La guerre Mise en place

pragmatique Mise en place Des besoins forts en formation de l équipe Une forte pression des actionnaires > besoin de ROI rapide Peu de temps donc une approche par «petits pas concrets»

13 pratiques 1. Client sur site 2. Planning game 3. Collective code ownership 4. Convention over configuration 5. Tests de recette 6. TDD et tests unitaires 7. Intégration continue 8. Petites livraisons 9. Conception simple 10. Utilisation de métaphores 11. Pair programming 12. Refactoring 13. Rythme soutenable

Un coach, un P.O. Mise en place Coach N a l autorité sur rien, est responsable de tout Éliminer les obstacles Fluidifier le travail Le Product Owner Le chef de produit (marketing)

13 pratiques 1. Client sur site 2. Planning game 3. Collective code ownership 4. Convention over configuration 5. Tests de recette 6. TDD et tests unitaires 7. Intégration continue 8. Petites livraisons 9. Conception simple 10. Utilisation de métaphores 11. Pair programming 12. Refactoring 13. Rythme soutenable

13 pratiques 1. Client sur site 2. Planning game 3. Collective code ownership 4. Convention over configuration 5. Tests de recette 6. TDD et tests unitaires 7. Intégration continue 8. Petites livraisons 9. Conception simple 10. Utilisation de métaphores 11. Pair programming 12. Refactoring 13. Rythme soutenable

Mise en placec Collective Code Ownership Back to basics : un outil de versionning du code (Subversion puis git) Mais au delà de l'outil, surtout des règles d'or : Branches? Commits explicites! pas de commit tardif avant une livraison de code des commits liés au système de gestion de projet (Retrospectiva) => on gagne du temps. Les pratiques Phase 2 : les pratiques mises en mises place

13 pratiques 1. Client sur site 2. Planning game 3. Collective code ownership 4. Convention over configuration 5. Tests de recette 6. TDD et tests unitaires 7. Intégration continue 8. Petites livraisons 9. Conception simple 10. Utilisation de métaphores 11. Pair programming 12. Refactoring 13. Rythme soutenable

Convention over configuration Ruby on Rails : un framework MVC basé sur les conventions

13 pratiques 1. Client sur site 2. Planning game 3. Collective code ownership 4. Convention over configuration 5. Tests de recette 6. TDD et tests unitaires 7. Intégration continue 8. Petites livraisons 9. Conception simple 10. Utilisation de métaphores 11. Pair programming 12. Refactoring 13. Rythme soutenable

les tests de recette Mise en place D abord manuels avec Selenium > l équipe est convaincue du bienfait des tests et consent à réorganiser son travail pour en écrire. manque de temps > isoler un senior pour coder les premiers tests automatisés Le coach «protège» son équipe pour qu'elle évalue le travail à faire en prenant en compte le temps d'écriture des tests.

13 pratiques 1. Client sur site 2. Planning game 3. Collective code ownership 4. Convention over configuration 5. Tests de recette 6. TDD et tests unitaires 7. Intégration continue 8. Petites livraisons 9. Conception simple 10. Utilisation de métaphores 11. Pair programming 12. Refactoring 13. Rythme soutenable

Mise en place TDD Chez Eyeka pour simplifier User Stories découpées en tâches Tâches > Tests unitaires User Stories > Tests d'acceptance Au bout de 3 mois, 47% de couverture de tests. Au bout de 6 mois, 70% de couverture de tests. A terme > 80%.

13 pratiques 1. Client sur site 2. Planning game 3. Collective code ownership 4. Convention over configuration 5. Tests de recette 6. TDD et tests unitaires 7. Intégration continue 8. Petites livraisons 9. Conception simple 10. Utilisation de métaphores 11. Pair programming 12. Refactoring 13. Rythme soutenable

Intégration continue Choisir le bon outil : un outil SIMPLE (cruisecontrol) Mettre en place des règles d or L équipe reste solidaire Priorité au build => pas d autre action tant que le build ne passe pas Mise en place

13 pratiques 1. Client sur site 2. Planning game 3. Collective code ownership 4. Convention over configuration 5. Tests de recette 6. TDD et tests unitaires 7. Intégration continue 8. Petites livraisons 9. Conception simple 10. Utilisation de métaphores 11. Pair programming 12. Refactoring 13. Rythme soutenable

Petites livraisons Mise en place Déploiement automatisé avec Capistrano (+recipes) Utilisation des migrations (spécifique à Ror mais indispensables à un bon déploiement) Des outils pour déployer rapidement sur 3 environnements Release hebdomadaire

13 pratiques 1. Client sur site 2. Planning game 3. Collective code ownership 4. Convention over configuration 5. Tests de recette 6. TDD et tests unitaires 7. Intégration continue 8. Petites livraisons 9. Conception simple 10. Utilisation de métaphores 11. Pair programming 12. Refactoring 13. Rythme soutenable

Métaphores Lightbox, album, groupe, tag IPTC

Pair programming Mise en place

Pair programming Mise en place De la conception à quatre mains / 2 cerveaux Du code de meilleure qualité => davantage de tests passés sur du code conçu à 2 (http://www.cs.utah.edu/~lwilliam/papers/ieeesoftware.pdf) Des efforts plus soutenus : chaque binôme encourage l autre à être meilleur et à pousser le code jusqu à la perfection (on renonce à l effort plus facilement quand on est seul) Les limites : tous ne sont pas prêts à pair programmer car prône le retour à l humilité : face à l autre il faut accepter de montrer que l on peut ne pas tout savoir => appliqué uniquement avec les volontaires

13 pratiques 1. Client sur site 2. Planning game 3. Collective code ownership 4. Convention over configuration 5. Tests de recette 6. TDD et tests unitaires 7. Intégration continue 8. Petites livraisons 9. Conception simple 10. Utilisation de métaphores 11. Pair programming 12. Refactoring 13. Rythme soutenable

13 pratiques 1. Client sur site 2. Planning game 3. Collective code ownership 4. Convention over configuration 5. Tests de recette 6. TDD et tests unitaires 7. Intégration continue 8. Petites livraisons 9. Conception simple 10. Utilisation de métaphores 11. Pair programming 12. Refactoring 13. Rythme soutenable : failed!

Tenir le rythme Mise en place Un déploiement par semaine : difficile à tenir! Mais tenir le rythme est bénéfique: 1. un repère pour toute l'entreprise 2. un repère pour l équipe de dev 3. Permet de corriger beaucoup de choses et de ne pas traîner trop longtemps des bugs 4. Nous a obligé surtout à faire des choses simples! Eviter au maximum de reporter une livraison

Du scrum aussi : l équipe ensemble!

L équipe ensemble Mise en place Pour communiquer!!! Pour l espace informatif (un seul endroit centralisé) Pour des stand-ups informels et irréguliers Et surtout pour les imprévus et les crises

Les rituels! Mise en place La satisfaction (client et/ou équipe) et le plaisir de travailler ensemble sont des notions centrales à l agilité. Instaurer un rituel lors de chaque livraison, fêter les publications même difficiles, débriefer systématiquement après les publications désastreuses Communiquer vers le reste du monde pour que le travail effectué soit reconnu : formations mkt / démos / newsletters / soirées / etc. C est la partie la plus agréable, pourquoi s en priver?

Refactoring réécriture?

au bout de quelques mois Enfin on parle de refactoring! Enfin on nettoie le code (merci les tests)! Enfin on a le temps pour : suivre les évolutions du framework, faire de la veille technologique (git, merb, etc.)

En marque blanche on a tellement refactoré qu une nouvelle application allégée «spéciale marque blanche» est née

Les freins

Freins Les freins rencontrés Peu de support de la hiérarchie, une adoption sur preuves. Les tests : «les tests vont nous faire perdre du temps». Notre constat : Ils servent à l intégration continue Ils contiennent l intelligence métier de l application Ils permettent de se plonger plus facilement dans le code Ils servent de documentation Ils permettent de former les nouveaux Plus on en écrit, plus ça va vite

Les freins à la mise en oeuvre d XP Mise en place Le pair programming : «je paie 2 personnes pour faire la même chose?» Le compromis chez Eyeka : une personne (le coach) pair programme avec à peu près tout le monde : elle garde la vision globale du projet. Adoption d XP plus difficile sur du code vieillissant

Les freins Les freins L'intégration continue : peut être vécue comme une contrainte inutile. Or elle donne de bons indicateurs (activité / vélocité / refactoring) Ne pas se reposer uniquement sur elle pour déployer Elle est garante du fait que ce qui fonctionnait bien hier doit bien fonctionner aujourd'hui.

Les freins Les freins psychologiques La peur. Pour certains il a été difficile d accepter de «perdre le pouvoir» (CCO) Change la physionomie d une équipe : plus de spécialistes, plus de rétention d information, plus de querelles de chapelles Respect d'une discipline collective : ne s applique pas à tous les profils

Ce qui n a PAS été mis en place Code reviews Rythme de travail soutenable Daily stand-up (mais un Twice-a-week meeting) Peu de conventions de code car Ror en établit déjà beaucoup Pas de vrai TDD sauf pour 2 développeurs, les tests étaient écrits après coup

Bénéfices

Bénéfices Les bénéfices pour Eyeka la souplesse!! changement de business model tous les trimestres! communauté de promateurs vente de contenus (à la fotolia / istock) place de marché B2B place de marché B2C : relais des marques auprès de la communauté

Bénéfices Les bénéfices pour Eyeka Le pair programming comme formation continue A évité le cloisonnement > faire tourner les paires A permis de former beaucoup de «nouveaux» et de diffuser les compétences des «anciens» (paires complémentaires) A permis de promouvoir l écriture des tests (plus facile à deux!) A permis dans une petite équipe de maintenir un rythme soutenu de travail dans un contexte tendu «start-up»

Bénéfices Les bénéfices pour Eyeka TDD + Pair Programming = Coût supérieur à un seul programmeur MAIS le code est de meilleure qualité Moins de coûts de maintenance

Bénéfices Les bénéfices pour Eyeka la réactivité : le client étant au coeur du projet, on peut réajuster rapidement. Parfois trop rapidement... Maîtriser le code jetable

Bénéfices Les bénéfices pour Eyeka des coûts "constants" : une fois évaluée la vélocité d'une équipe, on sait dire avec précision ce qui peut être fait et pour quand. Et donc à quel coût. Sur des cycles courts (une semaine) marge d erreur très faible

Bénéfices Les bénéfices pour Eyeka Des développeurs heureux Le timing est connu (semaine) Le travail à faire est précis (user stories) Plus de polyvalence Meilleure connaissance de l application Un product owner heureux

Merci de votre attention Des questions?