SlideShare uma empresa Scribd logo
1 de 28
Be prepared for changes!




                           Hortis GRC SA - www.hortis.ch
Introduction à XP
eXtreme Programming,
      une introduction

                                Par Didier Besset
                                        didier.besset@hortis.ch




      Hortis GRC SA - www.hortis.ch
Coût du développement software

                  10000


                  8000


                  6000
           Cost




                                                                                  But de XP
                  4000


                  2000


                      0
                          0              5                       10          15            20
                                                               Time

                    Barry W. Boehm , Software Engineering Economics, Prentice Hall PTR, 1981;
                    ISBN: 0138221227


                                                                                                3
                                             Hortis GRC SA - www.hortis.ch
Introduction à XP
eXtreme Programming: principes


        Développement itératifs,
        Plannification adaptable, pas rigide,
        Architecture évolutive, non-contraignante,
        Des tests, des tests, et encore des tests,
        Be prepared for changes!




                                                         4
                         Hortis GRC SA - www.hortis.ch
Introduction à XP
La Métaphore du Cycle

                   eXtreme
                 Programming




Méthodologies                  Rapid
                               Application
 Héritées des
gros systèmes                  Development5
Historical Perspective

                     eXtreme
                   Programming




Méthodologies                    Rapid
                                 Application
 Héritées des
gros systèmes                    Development6
Perspective littéraire


        Voltaire (1694-1778),
         Dictionaire Philosophique :
               “ Le bon sens est la chose du monde la mieux
                partagée, car chacun pense en être bien pourvu.”




                                                               7
                               Hortis GRC SA - www.hortis.ch
Introduction à XP
eXtreme Programming en quelques mots



        Utilisation du bon sens,
        Faire les choses simplement,
        Priviliégier la communication,
        Interagir de près avec le client;
        Faire tout cela à 100%,
               Sans compromis!
        Be prepared for changes!

                                                             8
                             Hortis GRC SA - www.hortis.ch
Introduction à XP
Perspective littéraire


        René Descartes (1596-1650),
         Discours de la méthode :
                    • “ ... La seconde, de diviser chacune des difficultés que
                      j’examinerais, en autant de parcelles qu’il se pourrait, et
                      qui serait requis pour les mieux résoudre.”
                      (page 47 de l’édition G.F. 1966)




                                                                                9
                                        Hortis GRC SA - www.hortis.ch
Introduction à XP
Méthodologie “Cascade”




             Analyse

                                                                Années
                       Design

                                Code

                                                                 Analyse dépassée!
                                                 Test


                                                                              10
                                Hortis GRC SA - www.hortis.ch
Introduction à XP
Application de la 2ème méthode de Descartes



                                                                Fonctions                                   Tâches
                         Projet                                                            Analyse
                                                 Analyse
                                                                                               Design
                                                                                                     Code
     Analyse                                             Design
                                                                                                        Test
                                                                                           Analyse
                                                                  Code                         Design

                                                                                                               Jours
                                                                                                     Code
                                                                                                        Test
                    Design                                               Test
                                                     Années                                Analyse
                                                 Analyse                                       Design
                                                                                                     Code
                                                         Design                                         Test
                                                                                SemainesAnalyse
                         Code                                                                Design
                                                                  Code
                                                                                                     Code
                                                                                                        Test
                                                                                           Analyse
                                                                         Test
                                                                                               Design
                                                 Analyse
                                  Test                                                               Code
                                                                                                        Test
                                                         Design                            Analyse
                                                                                               Design
                                                                  Code                               Code
                                                                                                        Test
                                                                                           Analyse
                                                                         Test                  Design
                                                                                                     Code
                                                                                                        Test
                                                                                                               11
                                         Hortis GRC SA - www.hortis.ch
Introduction à XP
Plannification à la SCRUM


        Client et développeurs écrivent ensembles les
         fonctionalités sur un support (cartes ou JIRA):
               User stories;
        Le client donne des priorités à chaque
         fonctionalités ,
        Les développeurs fractionnent chaque
         fonctionalité en tâches,
        Les développeurs attribuent “une mesure de
         complexité” à chaque tâche.
                                                                12
                                Hortis GRC SA - www.hortis.ch
Introduction à XP
Plannification à la SCRUM


        La mesure de complexité peut se convertir en
         temps de réalisation,
               vélocité (auto-calibrée!);
        La complexité de chaque fonctionalité est
         calculée comme la somme des complexités de
         chaque tâche,
        Le client décide alors de la prochaine livraison
         du système.


                                                                13
                                Hortis GRC SA - www.hortis.ch
Introduction à XP
Plannification à la SCRUM


        Si une date de livraison est en passe d’être
         dépassée...
        ... on signale le probléme au client...
        ... qui décidera des fonctionalités a retirer pour
         conserver la date de livraison;
        Après une “bonne” livraison, le client décide de
         la mise en service.



                                                          14
                          Hortis GRC SA - www.hortis.ch
Introduction à XP
Structure en itérations et livraisons




    User Stories
                                                                               Sénarios de test
                                   New user
             Requirements                                              Bugs
                                    stories


                       Plannifi-    Release                               Latest                  Recette
                                                   Iteration                         Acceptance             Livraison
                                     plan                                version                   client
                        cation


               Structure


                                   Estimation de
    Architecture                     la vélocité




                                                                                                               15
                                               Hortis GRC SA - www.hortis.ch
Introduction à XP
Les 8 chemins vers XP


   Sépar. métier et technique                                         Simplicité


                    Test                                         Programmer en paires


          Intégration continue                                       Code à tous


        Livraisons fréquentes                                        Refactoring


                                                                                        16
                                 Hortis GRC SA - www.hortis.ch
Introduction à XP
Séparation métier et technique


        Le client connait son métier,
        Les développeurs connaissent leurs outils,
        Le client définit les priorités,
        Les développeurs définissent les délais.




                                                           17
                           Hortis GRC SA - www.hortis.ch
Introduction à XP
Séparation métier et technique


        Le client a le dernier mot pour
                   doit           les développeurs pas!
               décider des enchainements (workflow),
               définir les champs, les menus et les boutons,
               choisir une charte graphique;
        Les développeurs ont le dernier mot pour pas!
                          doivent        le client
               décider d’une architecture,
               choisir leurs outils (langage, data base, etc...),
               définir les classes et les interfaces.


                                                                     18
                                Hortis GRC SA - www.hortis.ch
Introduction à XP
Tests


        Test Driven Design:
               Écrire un test avant de coder;
        Tests unitaires écrits par les développeurs:
               Tester tout ce qui peut “foirer”,
               utiliser les valeurs limites;
        Tests d’acceptance écrits par le client:
               Vérification des requirements,
               Bon départ pour la documentation;
        Be prepared for changes!
                                                                 19
                                 Hortis GRC SA - www.hortis.ch
Introduction à XP
Intégration Continue


        Chaque changement est immédiatement
         inclus dans un système déployé,
        Le déploiement fait partie du développement,
        Un système utilisable existe en permanence,
               les développeurs peuvent essayer le système,
               le client aussi!
        Be prepared for changes!



                                                                   20
                                   Hortis GRC SA - www.hortis.ch
Introduction à XP
Livraisons fréquentes


        Conséquence directe du principe d’intégration
         continue,
        Le client a le système en main le plus tôt
         possible,
        Cela lui donne l’occasion de réagir avant qu’il
         ne soit trop tard,
        Choc des nouvelles fonctionnalités atténué,
        Be prepared for changes!

                                                         21
                         Hortis GRC SA - www.hortis.ch
Introduction à XP
Simplicité

        Écrire du code lisible (pas de virtuosité),
               Les autres doivent pouvoir le lire,
               vous aussi, après quelques semaines!
        Les intentions doivent être claires:
               Utiliser des standards (format, coding),
               Éviter les abbréviations,
               Éviter les commentaires;
        Ne pas prévoir le futur (vous n’êtes pas devin):
               C’est une perte de temps pour aujourd’hui,
               Ce sera une perte de temps demain!
                                                                22
                                Hortis GRC SA - www.hortis.ch
Introduction à XP
Programmation par paires


        2 personnes font plus que le double de travail,
        “One types while the other thinks,”
        Une variation des paires est le meilleur moyen
         de faire circuler l’information,
        Les nouveaux venus sont promptement
         intégrés,
        Les juniors apprennent beaucoup plus vite...
        … et donc, contribuent beaucoup plus vite!

                                                         23
                         Hortis GRC SA - www.hortis.ch
Introduction à XP
Le code appartient à tous


        Chaque développeur doit savoir tout faire,
        Pas de chasse gardée, pas de “prima donna”,
        Personne ne doit être indispensable,
        Donc, le projet ne s’arrêtera pas si quelqu’un
         s’absente,
        Le principe de simplicité est un pré-requis.




                                                         24
                         Hortis GRC SA - www.hortis.ch
Introduction à XP
Refactoring


        Amélioration continue qui fait partie du
         développement,
        Architecture évolutive, qui s’adapte:
               “This skill helps develop software that stays soft,
                and allows more focus on features and less on
                infrastructure, delivering more value without
                risking the long term.” (Ron Jeffries)
        Be prepared for changes!


                                                                      25
                                Hortis GRC SA - www.hortis.ch
Introduction à XP
Conséquences sur le code

        Coder dans l’ordre suivant:
               “Make it run ”
                 Créer un cas test, le faire passer,
               “Make it good ”
                Refactorer le code pour en améliorer la lisibilité et
                l’architecture,
               “Make it fast ”
                Si besoin est, optimiser l’exécution;
        “Say things once and once only! ”
               Ne rien duplifier
               “extract method” au lieu de “cut&paste”.
                                                                   26
                                Hortis GRC SA - www.hortis.ch
Introduction à XP
Les 8 chemins vers XP (conclusion)


   Sépar. métier et technique                                              Simplicité
   Customers know their business,                             Clearly stated code, no duplicated logic,
   Developer team knows how to use the tools.                 fewest number of objects.

                    Test                                              Programmer en paires
                                                              “One types, the other thinks”. This ensures
   Automated tests ensure that a change does
   not create new errors. Business test cases.                the best communication within the team.


          Intégration continue                                            Code à tous
                                                              Anyone would can contribute to the code will.
   Customers can always see a working version.
                                                              Customers get the best of our developers.
   Full control over development.

        Livraisons fréquentes                                             Refactoring
   Customers make their product evolve with                   When adding a new feature, existing code is
   the market. Changes are possible on the fly.               adapted if needed, ensuring code reuse.


                                                                                                    27
                                      Hortis GRC SA - www.hortis.ch
Introduction à XP
Questions


                              ?

                                                    28
                    Hortis GRC SA - www.hortis.ch
Introduction à XP

Mais conteúdo relacionado

Destaque

Masque carrière en informatique
Masque   carrière en informatiqueMasque   carrière en informatique
Masque carrière en informatiquejulleb0253
 
Principe du Puits de données pour un SI simple, agile, anticipant les Big Data
Principe du Puits de données pour un SI simple, agile, anticipant les Big DataPrincipe du Puits de données pour un SI simple, agile, anticipant les Big Data
Principe du Puits de données pour un SI simple, agile, anticipant les Big DataRené MANDEL
 
Design et société hypothèse ID+
Design et société hypothèse ID+Design et société hypothèse ID+
Design et société hypothèse ID+dominique78
 
Ingénierie du bâtiment en France
Ingénierie du bâtiment en FranceIngénierie du bâtiment en France
Ingénierie du bâtiment en FranceCharlotte Herry
 
Naviguer avec nvda
Naviguer avec nvdaNaviguer avec nvda
Naviguer avec nvdaE2m Gig
 
Présentation du projet d'ouverture des données événementielles - v2
Présentation du projet d'ouverture des données événementielles - v2Présentation du projet d'ouverture des données événementielles - v2
Présentation du projet d'ouverture des données événementielles - v2StereoluxLab
 
Adquirir mentalidad POSITIVA y PROACTIVA
Adquirir mentalidad POSITIVA y PROACTIVAAdquirir mentalidad POSITIVA y PROACTIVA
Adquirir mentalidad POSITIVA y PROACTIVADavid Comí
 
Slides présentation OLPC C2S Avril 2008
Slides présentation OLPC C2S Avril 2008Slides présentation OLPC C2S Avril 2008
Slides présentation OLPC C2S Avril 2008Depend
 
Café du web twitter
Café du web twitterCafé du web twitter
Café du web twitterLoic Gervais
 
Regards croisés sur la Francophonie -Visioconférence - AIGEME
Regards croisés sur la Francophonie -Visioconférence - AIGEMERegards croisés sur la Francophonie -Visioconférence - AIGEME
Regards croisés sur la Francophonie -Visioconférence - AIGEMEkrynudino
 
Ponencia albert arno
Ponencia albert arnoPonencia albert arno
Ponencia albert arnomktfarma
 

Destaque (20)

Coding fast and slow
Coding fast and slowCoding fast and slow
Coding fast and slow
 
Masque carrière en informatique
Masque   carrière en informatiqueMasque   carrière en informatique
Masque carrière en informatique
 
Principe du Puits de données pour un SI simple, agile, anticipant les Big Data
Principe du Puits de données pour un SI simple, agile, anticipant les Big DataPrincipe du Puits de données pour un SI simple, agile, anticipant les Big Data
Principe du Puits de données pour un SI simple, agile, anticipant les Big Data
 
Sfsic14 140604-proulx
Sfsic14 140604-proulxSfsic14 140604-proulx
Sfsic14 140604-proulx
 
Paris insolite vol
Paris insolite volParis insolite vol
Paris insolite vol
 
Design et société hypothèse ID+
Design et société hypothèse ID+Design et société hypothèse ID+
Design et société hypothèse ID+
 
Sample
SampleSample
Sample
 
Ingénierie du bâtiment en France
Ingénierie du bâtiment en FranceIngénierie du bâtiment en France
Ingénierie du bâtiment en France
 
LEY 9 1979
LEY  9 1979LEY  9 1979
LEY 9 1979
 
Naviguer avec nvda
Naviguer avec nvdaNaviguer avec nvda
Naviguer avec nvda
 
Présentation du projet d'ouverture des données événementielles - v2
Présentation du projet d'ouverture des données événementielles - v2Présentation du projet d'ouverture des données événementielles - v2
Présentation du projet d'ouverture des données événementielles - v2
 
Adquirir mentalidad POSITIVA y PROACTIVA
Adquirir mentalidad POSITIVA y PROACTIVAAdquirir mentalidad POSITIVA y PROACTIVA
Adquirir mentalidad POSITIVA y PROACTIVA
 
La dura verdad[1]
La dura verdad[1]La dura verdad[1]
La dura verdad[1]
 
Slides présentation OLPC C2S Avril 2008
Slides présentation OLPC C2S Avril 2008Slides présentation OLPC C2S Avril 2008
Slides présentation OLPC C2S Avril 2008
 
2011 04-06 leccioninfantes
2011 04-06 leccioninfantes2011 04-06 leccioninfantes
2011 04-06 leccioninfantes
 
Café du web twitter
Café du web twitterCafé du web twitter
Café du web twitter
 
Torres monsó: Les foques
Torres monsó: Les foquesTorres monsó: Les foques
Torres monsó: Les foques
 
Los riesgos laborales
Los riesgos laboralesLos riesgos laborales
Los riesgos laborales
 
Regards croisés sur la Francophonie -Visioconférence - AIGEME
Regards croisés sur la Francophonie -Visioconférence - AIGEMERegards croisés sur la Francophonie -Visioconférence - AIGEME
Regards croisés sur la Francophonie -Visioconférence - AIGEME
 
Ponencia albert arno
Ponencia albert arnoPonencia albert arno
Ponencia albert arno
 

Semelhante a eXtreme Programming, une introduction

Nuxeo Summer Seminar 2007 - Micro Research (FR)
Nuxeo Summer Seminar 2007 - Micro Research (FR)Nuxeo Summer Seminar 2007 - Micro Research (FR)
Nuxeo Summer Seminar 2007 - Micro Research (FR)Stefane Fermigier
 
QSOS 2.0 Solutions Linux 2009
QSOS 2.0 Solutions Linux 2009QSOS 2.0 Solutions Linux 2009
QSOS 2.0 Solutions Linux 2009Raphaël Semeteys
 
Présentation des métiers du design numérique, janvier 2009
Présentation des métiers du design numérique, janvier 2009Présentation des métiers du design numérique, janvier 2009
Présentation des métiers du design numérique, janvier 2009designers interactifs
 
Présentation de CoreTechnologie
Présentation de CoreTechnologiePrésentation de CoreTechnologie
Présentation de CoreTechnologieCORETECHNOLOGIE
 
Various procedures for solutions development
Various procedures for solutions developmentVarious procedures for solutions development
Various procedures for solutions developmentPierre Kacha
 
Friday Web 16 01 2009
Friday Web 16 01 2009Friday Web 16 01 2009
Friday Web 16 01 2009Arnaud_Pukan
 
Techniques d’UX & UI Design
Techniques d’UX & UI DesignTechniques d’UX & UI Design
Techniques d’UX & UI DesignMicrosoft
 
CORETECHNOLOGIE - 20 ans d'innovation logicielle
CORETECHNOLOGIE - 20 ans d'innovation logicielleCORETECHNOLOGIE - 20 ans d'innovation logicielle
CORETECHNOLOGIE - 20 ans d'innovation logicielleCORETECHNOLOGIE
 
20120612 06 - Un framework d'analyse de logiciels issu de la recherche
20120612 06 - Un framework d'analyse de logiciels issu de la recherche20120612 06 - Un framework d'analyse de logiciels issu de la recherche
20120612 06 - Un framework d'analyse de logiciels issu de la rechercheLeClubQualiteLogicielle
 
Innovative Architecture Design
Innovative Architecture DesignInnovative Architecture Design
Innovative Architecture DesignAirmis
 
Le rôle de l’architecte Agile - Mathieu Boisvert
Le rôle de l’architecte Agile - Mathieu BoisvertLe rôle de l’architecte Agile - Mathieu Boisvert
Le rôle de l’architecte Agile - Mathieu BoisvertPyxis Technologies
 
NDepend 5 en action par son créateur
NDepend 5 en action par son créateurNDepend 5 en action par son créateur
NDepend 5 en action par son créateurMicrosoft
 
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeSoirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeTelecomValley
 
Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...
Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...
Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...Publicis Sapient Engineering
 
Présentation du SOA et BPM par Rs2i_AtelierFocusInnovation_06022014
Présentation du SOA et BPM par Rs2i_AtelierFocusInnovation_06022014Présentation du SOA et BPM par Rs2i_AtelierFocusInnovation_06022014
Présentation du SOA et BPM par Rs2i_AtelierFocusInnovation_06022014Marc Bourhis
 

Semelhante a eXtreme Programming, une introduction (20)

Nuxeo Summer Seminar 2007 - Micro Research (FR)
Nuxeo Summer Seminar 2007 - Micro Research (FR)Nuxeo Summer Seminar 2007 - Micro Research (FR)
Nuxeo Summer Seminar 2007 - Micro Research (FR)
 
QSOS 2.0 Solutions Linux 2009
QSOS 2.0 Solutions Linux 2009QSOS 2.0 Solutions Linux 2009
QSOS 2.0 Solutions Linux 2009
 
C'est quoi un bon dev ?
C'est quoi un bon dev ?C'est quoi un bon dev ?
C'est quoi un bon dev ?
 
Présentation des métiers du design numérique, janvier 2009
Présentation des métiers du design numérique, janvier 2009Présentation des métiers du design numérique, janvier 2009
Présentation des métiers du design numérique, janvier 2009
 
Présentation de CoreTechnologie
Présentation de CoreTechnologiePrésentation de CoreTechnologie
Présentation de CoreTechnologie
 
Acfas 13-05-2010
Acfas 13-05-2010Acfas 13-05-2010
Acfas 13-05-2010
 
Intro IA CJD
Intro IA CJDIntro IA CJD
Intro IA CJD
 
Various procedures for solutions development
Various procedures for solutions developmentVarious procedures for solutions development
Various procedures for solutions development
 
Friday Web 16 01 2009
Friday Web 16 01 2009Friday Web 16 01 2009
Friday Web 16 01 2009
 
Techniques d’UX & UI Design
Techniques d’UX & UI DesignTechniques d’UX & UI Design
Techniques d’UX & UI Design
 
CORETECHNOLOGIE - 20 ans d'innovation logicielle
CORETECHNOLOGIE - 20 ans d'innovation logicielleCORETECHNOLOGIE - 20 ans d'innovation logicielle
CORETECHNOLOGIE - 20 ans d'innovation logicielle
 
20120612 06 - Un framework d'analyse de logiciels issu de la recherche
20120612 06 - Un framework d'analyse de logiciels issu de la recherche20120612 06 - Un framework d'analyse de logiciels issu de la recherche
20120612 06 - Un framework d'analyse de logiciels issu de la recherche
 
Elaborer un logiciel
Elaborer un logicielElaborer un logiciel
Elaborer un logiciel
 
Innovative Architecture Design
Innovative Architecture DesignInnovative Architecture Design
Innovative Architecture Design
 
Conception projet web
Conception projet webConception projet web
Conception projet web
 
Le rôle de l’architecte Agile - Mathieu Boisvert
Le rôle de l’architecte Agile - Mathieu BoisvertLe rôle de l’architecte Agile - Mathieu Boisvert
Le rôle de l’architecte Agile - Mathieu Boisvert
 
NDepend 5 en action par son créateur
NDepend 5 en action par son créateurNDepend 5 en action par son créateur
NDepend 5 en action par son créateur
 
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeSoirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
 
Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...
Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...
Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...
 
Présentation du SOA et BPM par Rs2i_AtelierFocusInnovation_06022014
Présentation du SOA et BPM par Rs2i_AtelierFocusInnovation_06022014Présentation du SOA et BPM par Rs2i_AtelierFocusInnovation_06022014
Présentation du SOA et BPM par Rs2i_AtelierFocusInnovation_06022014
 

Mais de hortis

Mardi gras du 2 juin 2010 : CSIM2
Mardi gras du 2 juin 2010 : CSIM2Mardi gras du 2 juin 2010 : CSIM2
Mardi gras du 2 juin 2010 : CSIM2hortis
 
Presentation Adi 14052009
Presentation Adi 14052009Presentation Adi 14052009
Presentation Adi 14052009hortis
 
Collections&Generics
Collections&GenericsCollections&Generics
Collections&Genericshortis
 
Témoignage Agilité Ari 21/11/08
Témoignage Agilité Ari 21/11/08Témoignage Agilité Ari 21/11/08
Témoignage Agilité Ari 21/11/08hortis
 
Retour Experience Pair Programming XPDay Genève 2009
Retour Experience Pair Programming XPDay Genève 2009Retour Experience Pair Programming XPDay Genève 2009
Retour Experience Pair Programming XPDay Genève 2009hortis
 
Mardi Gras 'Integration Continue'
Mardi Gras 'Integration Continue'Mardi Gras 'Integration Continue'
Mardi Gras 'Integration Continue'hortis
 

Mais de hortis (6)

Mardi gras du 2 juin 2010 : CSIM2
Mardi gras du 2 juin 2010 : CSIM2Mardi gras du 2 juin 2010 : CSIM2
Mardi gras du 2 juin 2010 : CSIM2
 
Presentation Adi 14052009
Presentation Adi 14052009Presentation Adi 14052009
Presentation Adi 14052009
 
Collections&Generics
Collections&GenericsCollections&Generics
Collections&Generics
 
Témoignage Agilité Ari 21/11/08
Témoignage Agilité Ari 21/11/08Témoignage Agilité Ari 21/11/08
Témoignage Agilité Ari 21/11/08
 
Retour Experience Pair Programming XPDay Genève 2009
Retour Experience Pair Programming XPDay Genève 2009Retour Experience Pair Programming XPDay Genève 2009
Retour Experience Pair Programming XPDay Genève 2009
 
Mardi Gras 'Integration Continue'
Mardi Gras 'Integration Continue'Mardi Gras 'Integration Continue'
Mardi Gras 'Integration Continue'
 

eXtreme Programming, une introduction

  • 1. Be prepared for changes! Hortis GRC SA - www.hortis.ch Introduction à XP
  • 2. eXtreme Programming, une introduction Par Didier Besset didier.besset@hortis.ch Hortis GRC SA - www.hortis.ch
  • 3. Coût du développement software 10000 8000 6000 Cost But de XP 4000 2000 0 0 5 10 15 20 Time Barry W. Boehm , Software Engineering Economics, Prentice Hall PTR, 1981; ISBN: 0138221227 3 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 4. eXtreme Programming: principes  Développement itératifs,  Plannification adaptable, pas rigide,  Architecture évolutive, non-contraignante,  Des tests, des tests, et encore des tests,  Be prepared for changes! 4 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 5. La Métaphore du Cycle eXtreme Programming Méthodologies Rapid Application Héritées des gros systèmes Development5
  • 6. Historical Perspective eXtreme Programming Méthodologies Rapid Application Héritées des gros systèmes Development6
  • 7. Perspective littéraire  Voltaire (1694-1778), Dictionaire Philosophique :  “ Le bon sens est la chose du monde la mieux partagée, car chacun pense en être bien pourvu.” 7 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 8. eXtreme Programming en quelques mots  Utilisation du bon sens,  Faire les choses simplement,  Priviliégier la communication,  Interagir de près avec le client;  Faire tout cela à 100%,  Sans compromis!  Be prepared for changes! 8 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 9. Perspective littéraire  René Descartes (1596-1650), Discours de la méthode : • “ ... La seconde, de diviser chacune des difficultés que j’examinerais, en autant de parcelles qu’il se pourrait, et qui serait requis pour les mieux résoudre.” (page 47 de l’édition G.F. 1966) 9 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 10. Méthodologie “Cascade” Analyse Années Design Code Analyse dépassée! Test 10 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 11. Application de la 2ème méthode de Descartes Fonctions Tâches Projet Analyse Analyse Design Code Analyse Design Test Analyse Code Design Jours Code Test Design Test Années Analyse Analyse Design Code Design Test SemainesAnalyse Code Design Code Code Test Analyse Test Design Analyse Test Code Test Design Analyse Design Code Code Test Analyse Test Design Code Test 11 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 12. Plannification à la SCRUM  Client et développeurs écrivent ensembles les fonctionalités sur un support (cartes ou JIRA):  User stories;  Le client donne des priorités à chaque fonctionalités ,  Les développeurs fractionnent chaque fonctionalité en tâches,  Les développeurs attribuent “une mesure de complexité” à chaque tâche. 12 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 13. Plannification à la SCRUM  La mesure de complexité peut se convertir en temps de réalisation,  vélocité (auto-calibrée!);  La complexité de chaque fonctionalité est calculée comme la somme des complexités de chaque tâche,  Le client décide alors de la prochaine livraison du système. 13 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 14. Plannification à la SCRUM  Si une date de livraison est en passe d’être dépassée...  ... on signale le probléme au client...  ... qui décidera des fonctionalités a retirer pour conserver la date de livraison;  Après une “bonne” livraison, le client décide de la mise en service. 14 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 15. Structure en itérations et livraisons User Stories Sénarios de test New user Requirements Bugs stories Plannifi- Release Latest Recette Iteration Acceptance Livraison plan version client cation Structure Estimation de Architecture la vélocité 15 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 16. Les 8 chemins vers XP Sépar. métier et technique Simplicité Test Programmer en paires Intégration continue Code à tous Livraisons fréquentes Refactoring 16 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 17. Séparation métier et technique  Le client connait son métier,  Les développeurs connaissent leurs outils,  Le client définit les priorités,  Les développeurs définissent les délais. 17 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 18. Séparation métier et technique  Le client a le dernier mot pour doit les développeurs pas!  décider des enchainements (workflow),  définir les champs, les menus et les boutons,  choisir une charte graphique;  Les développeurs ont le dernier mot pour pas! doivent le client  décider d’une architecture,  choisir leurs outils (langage, data base, etc...),  définir les classes et les interfaces. 18 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 19. Tests  Test Driven Design:  Écrire un test avant de coder;  Tests unitaires écrits par les développeurs:  Tester tout ce qui peut “foirer”,  utiliser les valeurs limites;  Tests d’acceptance écrits par le client:  Vérification des requirements,  Bon départ pour la documentation;  Be prepared for changes! 19 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 20. Intégration Continue  Chaque changement est immédiatement inclus dans un système déployé,  Le déploiement fait partie du développement,  Un système utilisable existe en permanence,  les développeurs peuvent essayer le système,  le client aussi!  Be prepared for changes! 20 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 21. Livraisons fréquentes  Conséquence directe du principe d’intégration continue,  Le client a le système en main le plus tôt possible,  Cela lui donne l’occasion de réagir avant qu’il ne soit trop tard,  Choc des nouvelles fonctionnalités atténué,  Be prepared for changes! 21 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 22. Simplicité  Écrire du code lisible (pas de virtuosité),  Les autres doivent pouvoir le lire,  vous aussi, après quelques semaines!  Les intentions doivent être claires:  Utiliser des standards (format, coding),  Éviter les abbréviations,  Éviter les commentaires;  Ne pas prévoir le futur (vous n’êtes pas devin):  C’est une perte de temps pour aujourd’hui,  Ce sera une perte de temps demain! 22 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 23. Programmation par paires  2 personnes font plus que le double de travail,  “One types while the other thinks,”  Une variation des paires est le meilleur moyen de faire circuler l’information,  Les nouveaux venus sont promptement intégrés,  Les juniors apprennent beaucoup plus vite...  … et donc, contribuent beaucoup plus vite! 23 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 24. Le code appartient à tous  Chaque développeur doit savoir tout faire,  Pas de chasse gardée, pas de “prima donna”,  Personne ne doit être indispensable,  Donc, le projet ne s’arrêtera pas si quelqu’un s’absente,  Le principe de simplicité est un pré-requis. 24 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 25. Refactoring  Amélioration continue qui fait partie du développement,  Architecture évolutive, qui s’adapte:  “This skill helps develop software that stays soft, and allows more focus on features and less on infrastructure, delivering more value without risking the long term.” (Ron Jeffries)  Be prepared for changes! 25 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 26. Conséquences sur le code  Coder dans l’ordre suivant:  “Make it run ” Créer un cas test, le faire passer,  “Make it good ” Refactorer le code pour en améliorer la lisibilité et l’architecture,  “Make it fast ” Si besoin est, optimiser l’exécution;  “Say things once and once only! ”  Ne rien duplifier  “extract method” au lieu de “cut&paste”. 26 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 27. Les 8 chemins vers XP (conclusion) Sépar. métier et technique Simplicité Customers know their business, Clearly stated code, no duplicated logic, Developer team knows how to use the tools. fewest number of objects. Test Programmer en paires “One types, the other thinks”. This ensures Automated tests ensure that a change does not create new errors. Business test cases. the best communication within the team. Intégration continue Code à tous Anyone would can contribute to the code will. Customers can always see a working version. Customers get the best of our developers. Full control over development. Livraisons fréquentes Refactoring Customers make their product evolve with When adding a new feature, existing code is the market. Changes are possible on the fly. adapted if needed, ensuring code reuse. 27 Hortis GRC SA - www.hortis.ch Introduction à XP
  • 28. Questions ? 28 Hortis GRC SA - www.hortis.ch Introduction à XP