SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
Monothéisme ou Darwinisme, deux solutions pour ignorer le problème




Frédéric Fadel       Aspectize                                            1
    Le pourquoi ?

       Y a-t-il un problème ?

     Les idées reçues

     Le comment


Frédéric Fadel    Aspectize      2
    Contre la méthode
       Paul Feyerabend
     Zen and the art of motorcycle maintenance
       Robert Pirsig
     Birth of the Chaordic Age
       Dee Hock
     The Pragmatic Programmer
       Andrew Hunt & David Thomas

Frédéric Fadel     Aspectize                      3
Pourquoi ? Ya -t-il un problème ?




Frédéric Fadel        Aspectize          4
    Question
       Si l'approche Agile est la solution, quel est le problème ?
           ▪ Le coût des développements informatiques ?

           ▪ L'efficacité des systèmes d'information ?

           ▪ L'inadéquation entre ce qui est livré et ce qui est attendu ?

           ▪ L'incapacité de prévoir et/ou d'adhérer aux coûts ?

           ▪ …



Frédéric Fadel          Aspectize                                            5
    Les réalités du quotidien
      Besoin de prévoir et d'estimer les coûts

      Il y a souvent confusion entre besoin et solution

      Les besoins ne sont pas toujours définis

      Les ambiguïtés des échanges humains

      Les erreurs quotidiennes

      L'évolution des besoins

      …



Frédéric Fadel        Aspectize                            6
    La précision (artificielle) exigée par une machine
      …

    Question ?
      Comment faire cohabiter le flou quotidien avec la précision machine ?

    Deux réponses classiques
      Réponse du monothéiste

      Réponse du darwiniste




Frédéric Fadel       Aspectize                                             7
    Le monothéiste
       Croit qu'il y a une bonne façon de…
       Il suffit de réfléchir beaucoup
       Il suffit de spécifier le besoin clairement
       Il suffit de concevoir correctement la solution
       Pour cela il suffit de mettre en place un processus
        garantissant les trois points précédents
       Le reste étant un détail de codage

Frédéric Fadel                      Aspectize                 8
    Le monothéiste a une approche abstraite qui se résume à
     réfléchir d'abord développer après c.à.d.
      Tenter l’impossible :
          ▪ Consacrer beaucoup de temps à réfléchir et analyser le problème pour lever les
            ambiguïtés, éviter les erreurs, prévoir les évolutions…

      Sacrifier l’architecture
          ▪ Utiliser les outils et technologies RAD pour rattraper le temps "perdu"
      C'est l'approche rigide, "traditionnelle", "académique"… mise en avant par des
          méthodologies style OO, UML… qui rigidifient l'homme : elle est adaptée au
          bâtiment, l'armée et l'usine.



Frédéric Fadel           Aspectize                                                           9
    Le darwiniste
       Croit qu'il y a une bonne façon de…
       Il suffit …
        ▪ d'avoir un gars qui connait le besoin sous la main
        ▪ d'avoir des développeurs compétents et motivés
        ▪ d'avoir un environnement sympa (coca, pizza, café…)
        ▪ de mettre l'accent sur l'excellence technique
        ▪ de s'y mettre à deux
        ▪ de se réunir debout et régulièrement se mettre en cause
       L'évolution se chargera du reste

Frédéric Fadel                        Aspectize                     10
    C'est une approche de rêveur
       Qui s'est construite essentiellement en opposition au
          monothéisme, à ses coûts et ses échecs :
           ▪ L'aéroport de Denver
           ▪ Accord 1, Accord 2, Chorus, Copernic (canard : 21/1/9)
           ▪ FoxMeyer…
       Qui a son lot d'échecs et de déceptions :
           ▪ Projet C3 qui a donné naissance à XP
           ▪ …


Frédéric Fadel                              Aspectize                 11
Les idées reçues




Frédéric Fadel          Aspectize   12
    Taille des projets Agiles
       Plus le projet est gros, plus l'agilité a de la valeur
        ▪ Parce que c'est plus facile de réussir un petit projet
       Mettre des contraintes a priori sur la taille de la
          salle de réunion est stupide
           ▪ Cela n'empêche que souvent, une bonne façon de
             communiquer c'est parler de vive voix
           ▪ Mais ce n'est pas la seule, ni toujours la meilleure



Frédéric Fadel                             Aspectize                13
    TDD…
       Il n'y a pas de doute :
        ▪ Que des tests (unitaires ou pas) sont nécessaires.
        ▪ Qu'il faille manger la banane par les deux bouts
                 ▪ La qualité s'améliore si l'auteur d'un bout de code se met à la
                   place de son utilisateur
       Mais dire que l'architecture doit être trouvée par
          tâtonnement c'est une technique de Shadoks.
           ▪ Comme si les voitures étaient conçues par crash test !


Frédéric Fadel                                      Aspectize                        14
    Les tests :
       Doivent-ils être exécutés :
           ▪ Automatiquement ? Oui.
           ▪ Impérativement ? Oui.
       Peuvent-ils, doivent-ils être produits :
           ▪ Automatiquement ? Sûrement pas. Chez MS :
                 ▪ les moins de 30 ans codent
                 ▪ les plus de 30 ans testent : avec salaire élevé et prime sur défaillances
                   trouvées.
           ▪ Exhaustivement ? Sûrement pas.
                 ▪ Le choix de ce qu'on teste et pourquoi on teste est un choix intelligent.

Frédéric Fadel                                         Aspectize                               15
    … Refactoring…
       Il n'y a pas de doute
        ▪ Qu'un bout de code mal conçu, mal écrit, pas adapté à la
           situation, trop complexe, pas assez robuste… doit être
           réécrit et le plus tôt possible
                 ▪ Don't Live with Broken Windows
                 ▪ Fixing Broken Windows
           ▪ Mais une analyse d'impact bien au delà des tests
             unitaires doit aussi être faite.


Frédéric Fadel                                  Aspectize            16
    … Refactoring
       Connaître des ruses, astuces, techniques et outils
        pour minimiser l'impact du changement est une
        bonne chose.
       Mais faire du refactoring une méthode de
        conception ou une habitude de développement
        comme le suggère notre ami Martin Fowler, fait
        penser à nos amis Shadoks.
       Le refactoring c'est de la maintenance corrective
           ▪ Nécessaire , oui ! Evitable, non ! Structurant, NON.

Frédéric Fadel                            Aspectize                 17
    Industrialisation… Robotisation ?
       Métriques
        ▪ Mesurer quoi ?
        ▪ Pourquoi ?
       Processus
        ▪ Automatiser quoi ?
        ▪ Pourquoi ?




Frédéric Fadel                 Aspectize   18
 Métriques
        ▪ Nécessaire pour détecter les dérives ?
                 ▪ OUI
           ▪ Suffisant pour garantir l'absence de dérive ?
                 ▪ NON
           ▪ Nécessaire ou suffisant pour garantir la qualité ?
                 ▪ NON et NON
           ▪ Peuvent réduire la qualité ?
                 ▪ Peut être ?
                    C'est toujours plus facile de respecter la lettre que l'esprit !


Frédéric Fadel                                       Aspectize                          19
 Processus
           ▪ Pour améliorer le travail en équipe ? Forcément.
                 ▪ Gestion des sources, des builds, de l'intégration continue, de
                  l'exécution des tests…

           ▪ Dans la mesure où ça se substitue à la communication et
                 favorise la robotisation, bien sûr que non 
           ▪ Automatiser les tâches bêtes favorise l'agilité
           ▪ Automatiser les tâches nécessitant analyse nuit à l'agilité
                 ▪ Le CargoCultisme nous guette


Frédéric Fadel                                       Aspectize                      20
Comment ?




Frédéric Fadel   Aspectize   21
    We value :
       Working software
        ▪ over comprehensive documentation
       Responding to change
        ▪ over following a plan
       Customer collaboration
        ▪ over contract negotiation
       Individuals and interactions
        ▪ over processes and tools

Frédéric Fadel                        Aspectize   22
    CMM :
       Nous déclarons que la qualité d’un produit logiciel est intimement
          liée à la qualité de son processus de fabrication. C’est pourquoi
          nous mesurons la conformité de ce processus (Watts Humphrey).

     Agile :
       Nous déclarons que la qualité d’un produit logiciel est intimement
          liée à la qualité de ce produit logiciel. C’est pourquoi nous
          mesurons la qualité de ce produit logiciel (Jean-Pierre Vickoff).

Frédéric Fadel                                 Aspectize                      23
    L'animiste urbain
      Croit qu'il y n'y a pas une bonne façon de…
      Pense que c'est aux applications d'être agiles
       ▪ Qu'il faut donner vie aux applications
       ▪ Qu'il faut les dynamiser
       ▪ Qu'il faut assouplir les applications
                 ▪ pour qu'elles soient évolutives
          ▪ Qu'il faut les développer agile
          ▪ Prend très aux sérieux :
                 ▪ Responding to change over following a plan (manifeste Agile)

Frédéric Fadel              Aspectize                                             24
 Il considère que les ambiguïtés, erreurs et évolutions sont
          inévitables (voire souhaitables)
      Il est convaincu que le développement de l'application ne s'arrête
          pas le jour de livraison. Que l'application va évoluer et doit
          changer même après la livraison.
      Il est convaincu que les ambiguïtés se lèvent, les erreurs se
          corrigent et les évolutions s'imaginent et se décrivent mieux si
          les interlocuteurs sont devant un produit certes incomplet mais
          bien réel et qui tourne.


Frédéric Fadel         Aspectize                                       25
 C'est pourquoi il développe d'abord pour que l'application
          développée serve dès le début en tant que catalyseur :
          ▪ D'estimation des coûts
          ▪ D'évaluation des risques
          ▪ D'expression des besoins
          ▪ Conception de la solution
          ▪ Tests de fonctionnalités

      Bref il se met dans une situation de maintenance continue sur
          l'application dès le premier jour. Il développe pour le long terme.


Frédéric Fadel          Aspectize                                          26
    Se sortir du cercle vicieux
                                        Croissance
                                         de code



                                                             Croissance
                   Besoin de
                                                                 de
                 code défensif
                                                             complexité




                         Besoin de                   Croissance
                        plus de tests                de fragilité


Frédéric Fadel                                   Aspectize                27
    Et entrer dans un cercle vertueux
                                       Réduire le
                                         code



                   Réduire le                                Réduire la
                 code défensif                              complexité




                         Réduire les                Augmenter
                           tests                    la robustesse


Frédéric Fadel                                  Aspectize                 28
    Réduire la complexité
       En réduisant le couplage (Orthogonalité)

       En réduisant le code (DRY)
           ▪ La perfection est atteinte non quand il ne reste rien à ajouter, mais
                 quand il ne reste rien à enlever.
                                                                 Antoine de Saint-Exupéry

       En bâtissant une architecture sur les invariants techniques
           ▪ En abandonnant l'orienté objet


Frédéric Fadel                                       Aspectize                          29
    Distinguer et isoler :
       Les besoins métier évolutifs d'une architecture technique

          stable (le quoi du comment)
           ▪ Imaginer de réutiliser la couche technique pour un autre métier

       La présentation, le métier et le stockage

           ▪ Imaginer de réutiliser la couche métier avec un autre IHM

           ▪ Imaginer de réutiliser la couche métier avec un autre stockage



Frédéric Fadel                                 Aspectize                       30
    Les besoins techniques
       Ne sont pas exprimés par le client (et ne devraient pas l'être)

       TechnicalDebt

           ▪ Ne peuvent pas émerger dans un processus darwiniste surtout si on
                 pratique (et on le devrait) le YAGNI

       Sont connus du technicien expérimenté

       Peuvent être implémentés sous forme "réutilisable" par une
          approche OO, typé, rigide, design time…

Frédéric Fadel                                          Aspectize                31
    Des besoins métier
       Sont souvent exprimés d'une manière approximative

       Emergeront mieux et se clarifieront si l'application ou la
          fonctionnalité est livrée tôt (quelques petits jours)

       Sont orienté données et traitements

       Doivent être implémentés sous forme "réutilisable" par une

          approche dynamique, non typée, souple, runtime…


Frédéric Fadel                               Aspectize               32
    L'architecture technique offre des services configurables de
       appels typés et non typés

       bouchons , intercepteurs, factory, publish/subscribe

       trace, log, gestions des exceptions

       accès aux données, communications interprocess, sécurité

       beaucoup d'autres…

     Hollywood Principle
       Dans la mesure du possible c'est la couche technique qui appelle
          (dynamiquement) le métier (pas l'inverse)

Frédéric Fadel                                Aspectize                    33
    Le métier
       Les données métier (stockées ou pas) se modélisent
          selon un schéma relationnel.
       L'application connaît ce schéma et s'en sert dans ses
          trois couches
       Les traitements métier se modélisent sous forme de
          services (regroupement de méthodes stateless) configurables

Frédéric Fadel                           Aspectize                      34
    Quelques ruses pour développer agile dans .net :
       Des techniques AOP (attributs .net)
           ▪ Découverte de types dynamiques par introspection
       Chargement dynamique de dll (MEF)
        ▪ L'instanciation dynamique d'objet
       Proxys dynamique (Transparent proxy)
        ▪ Pour écrire une Factory générique
        ▪ Pour implémenter la plupart des design pattern


Frédéric Fadel                         Aspectize                35
 Génération de code (IL) à l'exécution
       Utilisations des interfaces
       Données relationnelles en mémoire (DataSet)
       Existence d'un point de passage unique pour
          accéder aux services métier
           ▪ Une fonction ExecuteCommand qui peut tout appeler




Frédéric Fadel                         Aspectize                 36
 Pour les éléments de l'IHM
           ▪ Data binding (dynamique)
                 ▪ Point de passage unique mémoire -> IHM
                 ▪ Point de passage unique IHM -> mémoire
           ▪ Command binding (dynamique)
                 ▪ Point de passage unique pour que l'IHM appelle le métier




Frédéric Fadel                                    Aspectize                   37
 Existence d'un point de passage unique pour lire
          des données
           ▪ Une fonction GetData qui peut tout lire
                 ▪ REST, ADO DataServices
       Existence d'un point de passage unique pour
          écrire, modifier et supprimer des données
           ▪ Une fonction SaveData qui peut tout écrire
                 ▪ "REST"
                 ▪ Style DataAdapter amélioré



Frédéric Fadel                                  Aspectize   38
 Existence d'un point de passage unique
        ▪ Changer de format
        ▪ Transformer les données
        ▪…




Frédéric Fadel                   Aspectize       39

Más contenido relacionado

La actualidad más candente

Impacts de l'adoption de Scrum
Impacts de l'adoption de ScrumImpacts de l'adoption de Scrum
Impacts de l'adoption de ScrumPyxis Technologies
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software Craftsmanshipylemoigne
 
Agilité et modèles de changement
Agilité et modèles de changementAgilité et modèles de changement
Agilité et modèles de changementMathieu Gandin
 
Software Craftsmanship : en Pratique - AgileTour
Software Craftsmanship : en Pratique - AgileTourSoftware Craftsmanship : en Pratique - AgileTour
Software Craftsmanship : en Pratique - AgileTourJean-Laurent de Morlhon
 
Méthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiquesMéthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiquesSirine Barguaoui
 
Principe d'une organisation agile
Principe d'une organisation agilePrincipe d'une organisation agile
Principe d'une organisation agileMathieu Gandin
 
Gestion de projets agiles avec scrum actiskills
Gestion de projets agiles avec scrum actiskillsGestion de projets agiles avec scrum actiskills
Gestion de projets agiles avec scrum actiskillsPierre E. NEIS
 
Trucs et astuces pour débuter sereinement
Trucs et astuces pour débuter sereinementTrucs et astuces pour débuter sereinement
Trucs et astuces pour débuter sereinementLaurence Vagner
 
Agilité et modèles de changement Agile Tour Lille 2011
Agilité et modèles de changement Agile Tour Lille 2011Agilité et modèles de changement Agile Tour Lille 2011
Agilité et modèles de changement Agile Tour Lille 2011Mathieu Gandin
 
La solution-a-la-dette-technique
La solution-a-la-dette-techniqueLa solution-a-la-dette-technique
La solution-a-la-dette-techniqueFabrice Aimetti
 
Le développement logiciel expliqué à votre patron en 24 slides
Le développement logiciel expliqué à votre patron en 24 slidesLe développement logiciel expliqué à votre patron en 24 slides
Le développement logiciel expliqué à votre patron en 24 slidesYassine CHAOUCHE
 
Accompagner la transition agile d’un grand projet
Accompagner la transition agile d’un grand projetAccompagner la transition agile d’un grand projet
Accompagner la transition agile d’un grand projetChristophe Addinquy
 
Alice au pays de l'Agilité
Alice au pays de l'AgilitéAlice au pays de l'Agilité
Alice au pays de l'AgilitéAlice Barralon
 

La actualidad más candente (20)

Impacts de l'adoption de Scrum
Impacts de l'adoption de ScrumImpacts de l'adoption de Scrum
Impacts de l'adoption de Scrum
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software Craftsmanship
 
Agilité et modèles de changement
Agilité et modèles de changementAgilité et modèles de changement
Agilité et modèles de changement
 
Software Craftsmanship : en Pratique - AgileTour
Software Craftsmanship : en Pratique - AgileTourSoftware Craftsmanship : en Pratique - AgileTour
Software Craftsmanship : en Pratique - AgileTour
 
Méthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiquesMéthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiques
 
Principe d'une organisation agile
Principe d'une organisation agilePrincipe d'une organisation agile
Principe d'une organisation agile
 
Gestion de projets agiles avec scrum actiskills
Gestion de projets agiles avec scrum actiskillsGestion de projets agiles avec scrum actiskills
Gestion de projets agiles avec scrum actiskills
 
#7 méthodes
#7 méthodes#7 méthodes
#7 méthodes
 
Trucs et astuces pour débuter sereinement
Trucs et astuces pour débuter sereinementTrucs et astuces pour débuter sereinement
Trucs et astuces pour débuter sereinement
 
Parlons Agilité !
Parlons Agilité !Parlons Agilité !
Parlons Agilité !
 
Breizh campux
Breizh campuxBreizh campux
Breizh campux
 
Agilité et modèles de changement Agile Tour Lille 2011
Agilité et modèles de changement Agile Tour Lille 2011Agilité et modèles de changement Agile Tour Lille 2011
Agilité et modèles de changement Agile Tour Lille 2011
 
Méthodes agiles & Scrum
Méthodes agiles & ScrumMéthodes agiles & Scrum
Méthodes agiles & Scrum
 
La solution-a-la-dette-technique
La solution-a-la-dette-techniqueLa solution-a-la-dette-technique
La solution-a-la-dette-technique
 
Scrum xp
Scrum xpScrum xp
Scrum xp
 
Etude des Frameworks PHP
Etude des Frameworks PHPEtude des Frameworks PHP
Etude des Frameworks PHP
 
Le développement logiciel expliqué à votre patron en 24 slides
Le développement logiciel expliqué à votre patron en 24 slidesLe développement logiciel expliqué à votre patron en 24 slides
Le développement logiciel expliqué à votre patron en 24 slides
 
Accompagner la transition agile d’un grand projet
Accompagner la transition agile d’un grand projetAccompagner la transition agile d’un grand projet
Accompagner la transition agile d’un grand projet
 
Uxdesign & hackathon
Uxdesign & hackathonUxdesign & hackathon
Uxdesign & hackathon
 
Alice au pays de l'Agilité
Alice au pays de l'AgilitéAlice au pays de l'Agilité
Alice au pays de l'Agilité
 

Destacado

De la création à la valorisation des productions audiovisuelles :
De la création à la valorisation des productions audiovisuelles : De la création à la valorisation des productions audiovisuelles :
De la création à la valorisation des productions audiovisuelles : acquier
 
El valor de la diferenciación en los mercados
El valor de la diferenciación en los mercadosEl valor de la diferenciación en los mercados
El valor de la diferenciación en los mercadosAmalio A. Rey
 
Uso didactico-tics-educacion-superior
Uso didactico-tics-educacion-superiorUso didactico-tics-educacion-superior
Uso didactico-tics-educacion-superiorJose Marroquin
 
Henriquez 2
Henriquez 2Henriquez 2
Henriquez 2mjimec
 
Wiki Book, industrialisation de vos réponses à appel d'offre
Wiki Book, industrialisation de vos réponses à appel d'offreWiki Book, industrialisation de vos réponses à appel d'offre
Wiki Book, industrialisation de vos réponses à appel d'offreALTIC Altic
 
Informativo n°31 1° basico a - 17 de octubre de 2014
Informativo n°31   1° basico a - 17 de octubre de 2014Informativo n°31   1° basico a - 17 de octubre de 2014
Informativo n°31 1° basico a - 17 de octubre de 2014Colegio Camilo Henríquez
 
Planisoft comptes annuels et annexes au 31 decembre 2008
Planisoft comptes annuels et annexes au 31 decembre 2008Planisoft comptes annuels et annexes au 31 decembre 2008
Planisoft comptes annuels et annexes au 31 decembre 2008Frontware International
 
Rewics 2012 la crise et alors
Rewics 2012 la crise et alorsRewics 2012 la crise et alors
Rewics 2012 la crise et alorsREALIZ
 
GreenTomatoMedia - Editions de site et Linkbuilding
GreenTomatoMedia - Editions de site et LinkbuildingGreenTomatoMedia - Editions de site et Linkbuilding
GreenTomatoMedia - Editions de site et LinkbuildingSimon Legouge
 
Informativo nº 36 1º basico a - 21 de noviembre
Informativo nº 36   1º basico a - 21 de noviembreInformativo nº 36   1º basico a - 21 de noviembre
Informativo nº 36 1º basico a - 21 de noviembreColegio Camilo Henríquez
 
Villes et communes: le pack de démarrage FACEBOOK
Villes et communes: le pack de démarrage FACEBOOKVilles et communes: le pack de démarrage FACEBOOK
Villes et communes: le pack de démarrage FACEBOOKREALIZ
 
Informativo n°32 -_2°_basico_a_-_24_de_octubre_de_2014-2
Informativo n°32 -_2°_basico_a_-_24_de_octubre_de_2014-2Informativo n°32 -_2°_basico_a_-_24_de_octubre_de_2014-2
Informativo n°32 -_2°_basico_a_-_24_de_octubre_de_2014-2Colegio Camilo Henríquez
 
Nouvelles Acquisitions FéVrier
Nouvelles Acquisitions FéVrierNouvelles Acquisitions FéVrier
Nouvelles Acquisitions FéVrierguestf4081736
 
12 trucs pour ne pas manquer le virage médias sociaux
12 trucs pour ne pas manquer le virage médias sociaux12 trucs pour ne pas manquer le virage médias sociaux
12 trucs pour ne pas manquer le virage médias sociauxThoma Daneau
 

Destacado (20)

Êtes-vous motivé à vendre?
Êtes-vous motivé à vendre?Êtes-vous motivé à vendre?
Êtes-vous motivé à vendre?
 
De la création à la valorisation des productions audiovisuelles :
De la création à la valorisation des productions audiovisuelles : De la création à la valorisation des productions audiovisuelles :
De la création à la valorisation des productions audiovisuelles :
 
El valor de la diferenciación en los mercados
El valor de la diferenciación en los mercadosEl valor de la diferenciación en los mercados
El valor de la diferenciación en los mercados
 
Uso didactico-tics-educacion-superior
Uso didactico-tics-educacion-superiorUso didactico-tics-educacion-superior
Uso didactico-tics-educacion-superior
 
Henriquez 2
Henriquez 2Henriquez 2
Henriquez 2
 
Wiki Book, industrialisation de vos réponses à appel d'offre
Wiki Book, industrialisation de vos réponses à appel d'offreWiki Book, industrialisation de vos réponses à appel d'offre
Wiki Book, industrialisation de vos réponses à appel d'offre
 
1b
1b1b
1b
 
Informativo n°31 1° basico a - 17 de octubre de 2014
Informativo n°31   1° basico a - 17 de octubre de 2014Informativo n°31   1° basico a - 17 de octubre de 2014
Informativo n°31 1° basico a - 17 de octubre de 2014
 
Planisoft comptes annuels et annexes au 31 decembre 2008
Planisoft comptes annuels et annexes au 31 decembre 2008Planisoft comptes annuels et annexes au 31 decembre 2008
Planisoft comptes annuels et annexes au 31 decembre 2008
 
Esthétique du jeu vidéo
Esthétique du jeu vidéoEsthétique du jeu vidéo
Esthétique du jeu vidéo
 
Rewics 2012 la crise et alors
Rewics 2012 la crise et alorsRewics 2012 la crise et alors
Rewics 2012 la crise et alors
 
GreenTomatoMedia - Editions de site et Linkbuilding
GreenTomatoMedia - Editions de site et LinkbuildingGreenTomatoMedia - Editions de site et Linkbuilding
GreenTomatoMedia - Editions de site et Linkbuilding
 
Informativo nº 36 1º basico a - 21 de noviembre
Informativo nº 36   1º basico a - 21 de noviembreInformativo nº 36   1º basico a - 21 de noviembre
Informativo nº 36 1º basico a - 21 de noviembre
 
Villes et communes: le pack de démarrage FACEBOOK
Villes et communes: le pack de démarrage FACEBOOKVilles et communes: le pack de démarrage FACEBOOK
Villes et communes: le pack de démarrage FACEBOOK
 
Informativo n°32 -_2°_basico_a_-_24_de_octubre_de_2014-2
Informativo n°32 -_2°_basico_a_-_24_de_octubre_de_2014-2Informativo n°32 -_2°_basico_a_-_24_de_octubre_de_2014-2
Informativo n°32 -_2°_basico_a_-_24_de_octubre_de_2014-2
 
Aguconf3
Aguconf3Aguconf3
Aguconf3
 
Pourquoi un nouveau logo?
Pourquoi un nouveau logo?Pourquoi un nouveau logo?
Pourquoi un nouveau logo?
 
5º basico b
5º basico b5º basico b
5º basico b
 
Nouvelles Acquisitions FéVrier
Nouvelles Acquisitions FéVrierNouvelles Acquisitions FéVrier
Nouvelles Acquisitions FéVrier
 
12 trucs pour ne pas manquer le virage médias sociaux
12 trucs pour ne pas manquer le virage médias sociaux12 trucs pour ne pas manquer le virage médias sociaux
12 trucs pour ne pas manquer le virage médias sociaux
 

Similar a Agilite Aspectize

12+1 Patterns opérationnels de transition agile
12+1 Patterns opérationnels de transition agile12+1 Patterns opérationnels de transition agile
12+1 Patterns opérationnels de transition agileChristophe Addinquy
 
Des conférences à voir et à revoir
Des conférences à voir et à revoirDes conférences à voir et à revoir
Des conférences à voir et à revoirAnthony Maison
 
Meet up : PO de M**** ! School of PO de beNext
Meet up : PO de M**** ! School of PO de beNextMeet up : PO de M**** ! School of PO de beNext
Meet up : PO de M**** ! School of PO de beNextAlexandre Quach
 
Recherche lead technique désespérément
Recherche lead technique désespérémentRecherche lead technique désespérément
Recherche lead technique désespérémentAgile Montréal
 
Le proces la métamorphose vers l'avenir - exploration des conflits kafkaïen...
Le proces   la métamorphose vers l'avenir - exploration des conflits kafkaïen...Le proces   la métamorphose vers l'avenir - exploration des conflits kafkaïen...
Le proces la métamorphose vers l'avenir - exploration des conflits kafkaïen...nostradamnit
 
Bonnes Pratiques Projet Web - Paris Web 2008
Bonnes Pratiques Projet Web - Paris Web 2008Bonnes Pratiques Projet Web - Paris Web 2008
Bonnes Pratiques Projet Web - Paris Web 2008pdwn
 
Panorama des bonnes pratiques Web - Francois Nonnenmacher - Paris Web 2008
Panorama des bonnes pratiques Web - Francois Nonnenmacher - Paris Web 2008Panorama des bonnes pratiques Web - Francois Nonnenmacher - Paris Web 2008
Panorama des bonnes pratiques Web - Francois Nonnenmacher - Paris Web 2008Association Paris-Web
 
De geek à directeur technique - Conférence UQÀM 2010
De geek à directeur technique - Conférence UQÀM 2010De geek à directeur technique - Conférence UQÀM 2010
De geek à directeur technique - Conférence UQÀM 2010Amaury Bouchard
 
De geek à directeur technique - Conférence SupInfo 2010
De geek à directeur technique - Conférence SupInfo 2010De geek à directeur technique - Conférence SupInfo 2010
De geek à directeur technique - Conférence SupInfo 2010Amaury Bouchard
 
De geek à directeur technique - Conférence Université de Montréal 2010
De geek à directeur technique - Conférence Université de Montréal 2010De geek à directeur technique - Conférence Université de Montréal 2010
De geek à directeur technique - Conférence Université de Montréal 2010Amaury Bouchard
 
De geek à directeur technique - Conférence Epitech 2010
De geek à directeur technique - Conférence Epitech 2010De geek à directeur technique - Conférence Epitech 2010
De geek à directeur technique - Conférence Epitech 2010Amaury Bouchard
 
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...SOAT
 
Sauver la princesse avec un design sprint MIX-iT17
Sauver la princesse avec un design sprint   MIX-iT17Sauver la princesse avec un design sprint   MIX-iT17
Sauver la princesse avec un design sprint MIX-iT17Benjamin Richy
 
Agilité et-le-mal-agile tourbdx-27-10-2016
Agilité et-le-mal-agile tourbdx-27-10-2016Agilité et-le-mal-agile tourbdx-27-10-2016
Agilité et-le-mal-agile tourbdx-27-10-2016nostradamnit
 
Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011agnes_crepet
 
Développer en mode kick-ass à Scrum Day
Développer en mode kick-ass à Scrum DayDévelopper en mode kick-ass à Scrum Day
Développer en mode kick-ass à Scrum DaySamuel Le Berrigaud
 
Agile Tour Paris 2014 : Travailler Avec L'Existant, Sam Cranford
Agile Tour Paris 2014 : Travailler Avec L'Existant, Sam CranfordAgile Tour Paris 2014 : Travailler Avec L'Existant, Sam Cranford
Agile Tour Paris 2014 : Travailler Avec L'Existant, Sam CranfordENSIBS
 
Crise agile chez les développeurs (frug agile 2020)
Crise agile chez les développeurs (frug agile 2020)Crise agile chez les développeurs (frug agile 2020)
Crise agile chez les développeurs (frug agile 2020)Guillaume Saint Etienne
 

Similar a Agilite Aspectize (20)

12+1 Patterns opérationnels de transition agile
12+1 Patterns opérationnels de transition agile12+1 Patterns opérationnels de transition agile
12+1 Patterns opérationnels de transition agile
 
Des conférences à voir et à revoir
Des conférences à voir et à revoirDes conférences à voir et à revoir
Des conférences à voir et à revoir
 
Formation créativité
Formation créativitéFormation créativité
Formation créativité
 
Meet up : PO de M**** ! School of PO de beNext
Meet up : PO de M**** ! School of PO de beNextMeet up : PO de M**** ! School of PO de beNext
Meet up : PO de M**** ! School of PO de beNext
 
Recherche lead technique désespérément
Recherche lead technique désespérémentRecherche lead technique désespérément
Recherche lead technique désespérément
 
Le proces la métamorphose vers l'avenir - exploration des conflits kafkaïen...
Le proces   la métamorphose vers l'avenir - exploration des conflits kafkaïen...Le proces   la métamorphose vers l'avenir - exploration des conflits kafkaïen...
Le proces la métamorphose vers l'avenir - exploration des conflits kafkaïen...
 
Bonnes Pratiques Projet Web - Paris Web 2008
Bonnes Pratiques Projet Web - Paris Web 2008Bonnes Pratiques Projet Web - Paris Web 2008
Bonnes Pratiques Projet Web - Paris Web 2008
 
Panorama des bonnes pratiques Web - Francois Nonnenmacher - Paris Web 2008
Panorama des bonnes pratiques Web - Francois Nonnenmacher - Paris Web 2008Panorama des bonnes pratiques Web - Francois Nonnenmacher - Paris Web 2008
Panorama des bonnes pratiques Web - Francois Nonnenmacher - Paris Web 2008
 
De geek à directeur technique - Conférence UQÀM 2010
De geek à directeur technique - Conférence UQÀM 2010De geek à directeur technique - Conférence UQÀM 2010
De geek à directeur technique - Conférence UQÀM 2010
 
De geek à directeur technique - Conférence SupInfo 2010
De geek à directeur technique - Conférence SupInfo 2010De geek à directeur technique - Conférence SupInfo 2010
De geek à directeur technique - Conférence SupInfo 2010
 
De geek à directeur technique - Conférence Université de Montréal 2010
De geek à directeur technique - Conférence Université de Montréal 2010De geek à directeur technique - Conférence Université de Montréal 2010
De geek à directeur technique - Conférence Université de Montréal 2010
 
De geek à directeur technique - Conférence Epitech 2010
De geek à directeur technique - Conférence Epitech 2010De geek à directeur technique - Conférence Epitech 2010
De geek à directeur technique - Conférence Epitech 2010
 
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
 
Sauver la princesse avec un design sprint MIX-iT17
Sauver la princesse avec un design sprint   MIX-iT17Sauver la princesse avec un design sprint   MIX-iT17
Sauver la princesse avec un design sprint MIX-iT17
 
Novencia agile
Novencia agileNovencia agile
Novencia agile
 
Agilité et-le-mal-agile tourbdx-27-10-2016
Agilité et-le-mal-agile tourbdx-27-10-2016Agilité et-le-mal-agile tourbdx-27-10-2016
Agilité et-le-mal-agile tourbdx-27-10-2016
 
Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011
 
Développer en mode kick-ass à Scrum Day
Développer en mode kick-ass à Scrum DayDévelopper en mode kick-ass à Scrum Day
Développer en mode kick-ass à Scrum Day
 
Agile Tour Paris 2014 : Travailler Avec L'Existant, Sam Cranford
Agile Tour Paris 2014 : Travailler Avec L'Existant, Sam CranfordAgile Tour Paris 2014 : Travailler Avec L'Existant, Sam Cranford
Agile Tour Paris 2014 : Travailler Avec L'Existant, Sam Cranford
 
Crise agile chez les développeurs (frug agile 2020)
Crise agile chez les développeurs (frug agile 2020)Crise agile chez les développeurs (frug agile 2020)
Crise agile chez les développeurs (frug agile 2020)
 

Agilite Aspectize

  • 1. Monothéisme ou Darwinisme, deux solutions pour ignorer le problème Frédéric Fadel Aspectize 1
  • 2. Le pourquoi ?  Y a-t-il un problème ?  Les idées reçues  Le comment Frédéric Fadel Aspectize 2
  • 3. Contre la méthode  Paul Feyerabend  Zen and the art of motorcycle maintenance  Robert Pirsig  Birth of the Chaordic Age  Dee Hock  The Pragmatic Programmer  Andrew Hunt & David Thomas Frédéric Fadel Aspectize 3
  • 4. Pourquoi ? Ya -t-il un problème ? Frédéric Fadel Aspectize 4
  • 5. Question  Si l'approche Agile est la solution, quel est le problème ? ▪ Le coût des développements informatiques ? ▪ L'efficacité des systèmes d'information ? ▪ L'inadéquation entre ce qui est livré et ce qui est attendu ? ▪ L'incapacité de prévoir et/ou d'adhérer aux coûts ? ▪ … Frédéric Fadel Aspectize 5
  • 6. Les réalités du quotidien  Besoin de prévoir et d'estimer les coûts  Il y a souvent confusion entre besoin et solution  Les besoins ne sont pas toujours définis  Les ambiguïtés des échanges humains  Les erreurs quotidiennes  L'évolution des besoins  … Frédéric Fadel Aspectize 6
  • 7. La précision (artificielle) exigée par une machine  …  Question ?  Comment faire cohabiter le flou quotidien avec la précision machine ?  Deux réponses classiques  Réponse du monothéiste  Réponse du darwiniste Frédéric Fadel Aspectize 7
  • 8. Le monothéiste  Croit qu'il y a une bonne façon de…  Il suffit de réfléchir beaucoup  Il suffit de spécifier le besoin clairement  Il suffit de concevoir correctement la solution  Pour cela il suffit de mettre en place un processus garantissant les trois points précédents  Le reste étant un détail de codage Frédéric Fadel Aspectize 8
  • 9. Le monothéiste a une approche abstraite qui se résume à réfléchir d'abord développer après c.à.d.  Tenter l’impossible : ▪ Consacrer beaucoup de temps à réfléchir et analyser le problème pour lever les ambiguïtés, éviter les erreurs, prévoir les évolutions…  Sacrifier l’architecture ▪ Utiliser les outils et technologies RAD pour rattraper le temps "perdu"  C'est l'approche rigide, "traditionnelle", "académique"… mise en avant par des méthodologies style OO, UML… qui rigidifient l'homme : elle est adaptée au bâtiment, l'armée et l'usine. Frédéric Fadel Aspectize 9
  • 10. Le darwiniste  Croit qu'il y a une bonne façon de…  Il suffit … ▪ d'avoir un gars qui connait le besoin sous la main ▪ d'avoir des développeurs compétents et motivés ▪ d'avoir un environnement sympa (coca, pizza, café…) ▪ de mettre l'accent sur l'excellence technique ▪ de s'y mettre à deux ▪ de se réunir debout et régulièrement se mettre en cause  L'évolution se chargera du reste Frédéric Fadel Aspectize 10
  • 11. C'est une approche de rêveur  Qui s'est construite essentiellement en opposition au monothéisme, à ses coûts et ses échecs : ▪ L'aéroport de Denver ▪ Accord 1, Accord 2, Chorus, Copernic (canard : 21/1/9) ▪ FoxMeyer…  Qui a son lot d'échecs et de déceptions : ▪ Projet C3 qui a donné naissance à XP ▪ … Frédéric Fadel Aspectize 11
  • 12. Les idées reçues Frédéric Fadel Aspectize 12
  • 13. Taille des projets Agiles  Plus le projet est gros, plus l'agilité a de la valeur ▪ Parce que c'est plus facile de réussir un petit projet  Mettre des contraintes a priori sur la taille de la salle de réunion est stupide ▪ Cela n'empêche que souvent, une bonne façon de communiquer c'est parler de vive voix ▪ Mais ce n'est pas la seule, ni toujours la meilleure Frédéric Fadel Aspectize 13
  • 14. TDD…  Il n'y a pas de doute : ▪ Que des tests (unitaires ou pas) sont nécessaires. ▪ Qu'il faille manger la banane par les deux bouts ▪ La qualité s'améliore si l'auteur d'un bout de code se met à la place de son utilisateur  Mais dire que l'architecture doit être trouvée par tâtonnement c'est une technique de Shadoks. ▪ Comme si les voitures étaient conçues par crash test ! Frédéric Fadel Aspectize 14
  • 15. Les tests :  Doivent-ils être exécutés : ▪ Automatiquement ? Oui. ▪ Impérativement ? Oui.  Peuvent-ils, doivent-ils être produits : ▪ Automatiquement ? Sûrement pas. Chez MS : ▪ les moins de 30 ans codent ▪ les plus de 30 ans testent : avec salaire élevé et prime sur défaillances trouvées. ▪ Exhaustivement ? Sûrement pas. ▪ Le choix de ce qu'on teste et pourquoi on teste est un choix intelligent. Frédéric Fadel Aspectize 15
  • 16. … Refactoring…  Il n'y a pas de doute ▪ Qu'un bout de code mal conçu, mal écrit, pas adapté à la situation, trop complexe, pas assez robuste… doit être réécrit et le plus tôt possible ▪ Don't Live with Broken Windows ▪ Fixing Broken Windows ▪ Mais une analyse d'impact bien au delà des tests unitaires doit aussi être faite. Frédéric Fadel Aspectize 16
  • 17. … Refactoring  Connaître des ruses, astuces, techniques et outils pour minimiser l'impact du changement est une bonne chose.  Mais faire du refactoring une méthode de conception ou une habitude de développement comme le suggère notre ami Martin Fowler, fait penser à nos amis Shadoks.  Le refactoring c'est de la maintenance corrective ▪ Nécessaire , oui ! Evitable, non ! Structurant, NON. Frédéric Fadel Aspectize 17
  • 18. Industrialisation… Robotisation ?  Métriques ▪ Mesurer quoi ? ▪ Pourquoi ?  Processus ▪ Automatiser quoi ? ▪ Pourquoi ? Frédéric Fadel Aspectize 18
  • 19.  Métriques ▪ Nécessaire pour détecter les dérives ? ▪ OUI ▪ Suffisant pour garantir l'absence de dérive ? ▪ NON ▪ Nécessaire ou suffisant pour garantir la qualité ? ▪ NON et NON ▪ Peuvent réduire la qualité ? ▪ Peut être ?  C'est toujours plus facile de respecter la lettre que l'esprit ! Frédéric Fadel Aspectize 19
  • 20.  Processus ▪ Pour améliorer le travail en équipe ? Forcément. ▪ Gestion des sources, des builds, de l'intégration continue, de l'exécution des tests… ▪ Dans la mesure où ça se substitue à la communication et favorise la robotisation, bien sûr que non  ▪ Automatiser les tâches bêtes favorise l'agilité ▪ Automatiser les tâches nécessitant analyse nuit à l'agilité ▪ Le CargoCultisme nous guette Frédéric Fadel Aspectize 20
  • 22. We value :  Working software ▪ over comprehensive documentation  Responding to change ▪ over following a plan  Customer collaboration ▪ over contract negotiation  Individuals and interactions ▪ over processes and tools Frédéric Fadel Aspectize 22
  • 23. CMM :  Nous déclarons que la qualité d’un produit logiciel est intimement liée à la qualité de son processus de fabrication. C’est pourquoi nous mesurons la conformité de ce processus (Watts Humphrey).  Agile :  Nous déclarons que la qualité d’un produit logiciel est intimement liée à la qualité de ce produit logiciel. C’est pourquoi nous mesurons la qualité de ce produit logiciel (Jean-Pierre Vickoff). Frédéric Fadel Aspectize 23
  • 24. L'animiste urbain  Croit qu'il y n'y a pas une bonne façon de…  Pense que c'est aux applications d'être agiles ▪ Qu'il faut donner vie aux applications ▪ Qu'il faut les dynamiser ▪ Qu'il faut assouplir les applications ▪ pour qu'elles soient évolutives ▪ Qu'il faut les développer agile ▪ Prend très aux sérieux : ▪ Responding to change over following a plan (manifeste Agile) Frédéric Fadel Aspectize 24
  • 25.  Il considère que les ambiguïtés, erreurs et évolutions sont inévitables (voire souhaitables)  Il est convaincu que le développement de l'application ne s'arrête pas le jour de livraison. Que l'application va évoluer et doit changer même après la livraison.  Il est convaincu que les ambiguïtés se lèvent, les erreurs se corrigent et les évolutions s'imaginent et se décrivent mieux si les interlocuteurs sont devant un produit certes incomplet mais bien réel et qui tourne. Frédéric Fadel Aspectize 25
  • 26.  C'est pourquoi il développe d'abord pour que l'application développée serve dès le début en tant que catalyseur : ▪ D'estimation des coûts ▪ D'évaluation des risques ▪ D'expression des besoins ▪ Conception de la solution ▪ Tests de fonctionnalités  Bref il se met dans une situation de maintenance continue sur l'application dès le premier jour. Il développe pour le long terme. Frédéric Fadel Aspectize 26
  • 27. Se sortir du cercle vicieux Croissance de code Croissance Besoin de de code défensif complexité Besoin de Croissance plus de tests de fragilité Frédéric Fadel Aspectize 27
  • 28. Et entrer dans un cercle vertueux Réduire le code Réduire le Réduire la code défensif complexité Réduire les Augmenter tests la robustesse Frédéric Fadel Aspectize 28
  • 29. Réduire la complexité  En réduisant le couplage (Orthogonalité)  En réduisant le code (DRY) ▪ La perfection est atteinte non quand il ne reste rien à ajouter, mais quand il ne reste rien à enlever. Antoine de Saint-Exupéry  En bâtissant une architecture sur les invariants techniques ▪ En abandonnant l'orienté objet Frédéric Fadel Aspectize 29
  • 30. Distinguer et isoler :  Les besoins métier évolutifs d'une architecture technique stable (le quoi du comment) ▪ Imaginer de réutiliser la couche technique pour un autre métier  La présentation, le métier et le stockage ▪ Imaginer de réutiliser la couche métier avec un autre IHM ▪ Imaginer de réutiliser la couche métier avec un autre stockage Frédéric Fadel Aspectize 30
  • 31. Les besoins techniques  Ne sont pas exprimés par le client (et ne devraient pas l'être)  TechnicalDebt ▪ Ne peuvent pas émerger dans un processus darwiniste surtout si on pratique (et on le devrait) le YAGNI  Sont connus du technicien expérimenté  Peuvent être implémentés sous forme "réutilisable" par une approche OO, typé, rigide, design time… Frédéric Fadel Aspectize 31
  • 32. Des besoins métier  Sont souvent exprimés d'une manière approximative  Emergeront mieux et se clarifieront si l'application ou la fonctionnalité est livrée tôt (quelques petits jours)  Sont orienté données et traitements  Doivent être implémentés sous forme "réutilisable" par une approche dynamique, non typée, souple, runtime… Frédéric Fadel Aspectize 32
  • 33. L'architecture technique offre des services configurables de  appels typés et non typés  bouchons , intercepteurs, factory, publish/subscribe  trace, log, gestions des exceptions  accès aux données, communications interprocess, sécurité  beaucoup d'autres…  Hollywood Principle  Dans la mesure du possible c'est la couche technique qui appelle (dynamiquement) le métier (pas l'inverse) Frédéric Fadel Aspectize 33
  • 34. Le métier  Les données métier (stockées ou pas) se modélisent selon un schéma relationnel.  L'application connaît ce schéma et s'en sert dans ses trois couches  Les traitements métier se modélisent sous forme de services (regroupement de méthodes stateless) configurables Frédéric Fadel Aspectize 34
  • 35. Quelques ruses pour développer agile dans .net :  Des techniques AOP (attributs .net) ▪ Découverte de types dynamiques par introspection  Chargement dynamique de dll (MEF) ▪ L'instanciation dynamique d'objet  Proxys dynamique (Transparent proxy) ▪ Pour écrire une Factory générique ▪ Pour implémenter la plupart des design pattern Frédéric Fadel Aspectize 35
  • 36.  Génération de code (IL) à l'exécution  Utilisations des interfaces  Données relationnelles en mémoire (DataSet)  Existence d'un point de passage unique pour accéder aux services métier ▪ Une fonction ExecuteCommand qui peut tout appeler Frédéric Fadel Aspectize 36
  • 37.  Pour les éléments de l'IHM ▪ Data binding (dynamique) ▪ Point de passage unique mémoire -> IHM ▪ Point de passage unique IHM -> mémoire ▪ Command binding (dynamique) ▪ Point de passage unique pour que l'IHM appelle le métier Frédéric Fadel Aspectize 37
  • 38.  Existence d'un point de passage unique pour lire des données ▪ Une fonction GetData qui peut tout lire ▪ REST, ADO DataServices  Existence d'un point de passage unique pour écrire, modifier et supprimer des données ▪ Une fonction SaveData qui peut tout écrire ▪ "REST" ▪ Style DataAdapter amélioré Frédéric Fadel Aspectize 38
  • 39.  Existence d'un point de passage unique ▪ Changer de format ▪ Transformer les données ▪… Frédéric Fadel Aspectize 39