SlideShare a Scribd company logo
1 of 20
Faire du code centré sur l’humain !
            par Yannick Grenzinger
                 @ygrenzinger




                                      1
Faire du code
centré sur
l’humain difficile de faire du code
   Pourquoi est il si
    qu’un autre humain puisse facilement
    comprendre et maintenir ?

    Parce que nous avons tous notre vision du
    monde !

    Mais les concepts du design et de l’utilisabilité
    peuvent nous aider !


                                                        2
Yannick Grenzinger
•@ygrenzinger
•Développeur chez Objet Direct
•avec une passion pour la psychologie, l’agilité et l’expérience utilisateur (UX)
en général

•Blog UX : http://ux-fr.com
•http://about.me/yannick.grenzinger

                                                                                    3
“Always code as if the guy who ends
  up maintaining your code will be a
violent psychopath who knows where
              you live.”
            Martin Golding




                                       4
5
Le modèle mental du code
  Modèle mental
       –
  codeur original



      ≠
  Modèle mental
        -
   mainteneur

                           6
Les ergonomes ont déjà trouvé des
 solutions pour les objets de tous
            les jours !

      Design centré sur
        l’utilisateur



                                     7
Voir le code comme un objet ?



             =
                                8
Créons de bonnes affordances




                               9
Les concepts




               10
Associations symboliques

                 Dans le code :
                    le nommage
                    les patterns
                    …



                                   11
Associations naturelles
         Behaviour driven development:
         • Given [condition]
         • When [action]
         • Then [resultat]




                                         12
Contraintes
     Evitons le code générique:

     •   main (String[] args){ … }

     •   void changeValeur(
             Object o,
             String nomChamp,
             Object val)
                                     13
Visibilité
       Evitons ce genre de piège :

       @Service
       Class MonService {

             @Scheduled
             void chaqueMatin() {
                   reveilleToi();
             }

             @Transactional
             void reveilleToi() { … }
       }


                                        14
Codons pour l’erreur

              code défensif

              Trace d’erreurs
                 claires et complètes



                                        15
Standardisez !

                  Faites des
             opérations similaires
                  pour des
               tâches similaires



                                     16
La boucle de feedback
              •   Test Driven Development

              •   Intégration continue

              •   Déploiement continu

              Permettent d’accélérer le
                 feedback !




                                            17
Documentez !
     “Good code is its own best documentation.”
                  Steve McConnell

     Mais ne laissez pas le développeur seul face à
                     votre génie ;)




                                                      18
En appliquant ces concepts
    Votre modèle
       mental




       =
 Celui du mainteneur   + documentation



                                         19
Vous aurez un code

  plus facile à comprendre
          plus lisible
      plus maintenable

centré sur l’humain !




                             20

More Related Content

Viewers also liked

COI - Conférence Connectivité Numérique dans l'Indianocéanie - Oct 2013
COI - Conférence Connectivité Numérique dans l'Indianocéanie - Oct 2013COI - Conférence Connectivité Numérique dans l'Indianocéanie - Oct 2013
COI - Conférence Connectivité Numérique dans l'Indianocéanie - Oct 2013Franck Dasilva
 
Unidad 1 pai
Unidad 1  paiUnidad 1  pai
Unidad 1 paiaimorales
 
La locomotora (pagina 3)3 jul1890
La locomotora (pagina 3)3 jul1890La locomotora (pagina 3)3 jul1890
La locomotora (pagina 3)3 jul1890Fer Alvarez
 
Mission Ecoter - Region Alsace
Mission Ecoter - Region AlsaceMission Ecoter - Region Alsace
Mission Ecoter - Region AlsaceLudovic Dublanchet
 
Liquid clear
Liquid clearLiquid clear
Liquid clearJhordan
 
Los animales
Los animalesLos animales
Los animaleszthephan
 
Ventajas - Desvetajas tTIC
Ventajas - Desvetajas tTICVentajas - Desvetajas tTIC
Ventajas - Desvetajas tTICblogmaestria
 
El pensamiento complejo nuevo
El pensamiento complejo nuevoEl pensamiento complejo nuevo
El pensamiento complejo nuevoaleja8
 
Exos Suites Arithmetiques
Exos   Suites ArithmetiquesExos   Suites Arithmetiques
Exos Suites Arithmetiquesatire
 
Presentación
PresentaciónPresentación
Presentaciónkrito19
 
Prueba mensual de redes
Prueba mensual de redesPrueba mensual de redes
Prueba mensual de redesalexandrabas
 

Viewers also liked (20)

COI - Conférence Connectivité Numérique dans l'Indianocéanie - Oct 2013
COI - Conférence Connectivité Numérique dans l'Indianocéanie - Oct 2013COI - Conférence Connectivité Numérique dans l'Indianocéanie - Oct 2013
COI - Conférence Connectivité Numérique dans l'Indianocéanie - Oct 2013
 
Unidad 1 pai
Unidad 1  paiUnidad 1  pai
Unidad 1 pai
 
La locomotora (pagina 3)3 jul1890
La locomotora (pagina 3)3 jul1890La locomotora (pagina 3)3 jul1890
La locomotora (pagina 3)3 jul1890
 
Mission Ecoter - Region Alsace
Mission Ecoter - Region AlsaceMission Ecoter - Region Alsace
Mission Ecoter - Region Alsace
 
Liquid clear
Liquid clearLiquid clear
Liquid clear
 
Base de datos
Base de datosBase de datos
Base de datos
 
Masacre del mozote
Masacre del mozoteMasacre del mozote
Masacre del mozote
 
Los animales
Los animalesLos animales
Los animales
 
Ventajas - Desvetajas tTIC
Ventajas - Desvetajas tTICVentajas - Desvetajas tTIC
Ventajas - Desvetajas tTIC
 
Perfil profesional gbi
Perfil profesional gbiPerfil profesional gbi
Perfil profesional gbi
 
El pensamiento complejo nuevo
El pensamiento complejo nuevoEl pensamiento complejo nuevo
El pensamiento complejo nuevo
 
Recetas exoticas del cacao
Recetas exoticas del cacaoRecetas exoticas del cacao
Recetas exoticas del cacao
 
Exos Suites Arithmetiques
Exos   Suites ArithmetiquesExos   Suites Arithmetiques
Exos Suites Arithmetiques
 
#Et6-At13-L'agrégation
#Et6-At13-L'agrégation#Et6-At13-L'agrégation
#Et6-At13-L'agrégation
 
Formulario de access
Formulario de accessFormulario de access
Formulario de access
 
Presentación
PresentaciónPresentación
Presentación
 
Conacultainba
ConacultainbaConacultainba
Conacultainba
 
La toussaint
La toussaintLa toussaint
La toussaint
 
Prueba mensual de redes
Prueba mensual de redesPrueba mensual de redes
Prueba mensual de redes
 
Melanie 6ºb
Melanie 6ºbMelanie 6ºb
Melanie 6ºb
 

Similar to Faire du-code-centre-sur-l-humain devoxx

10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptx10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptxGuillaume Saint Etienne
 
Recruter et travailler avec un développeur
Recruter et travailler avec un développeurRecruter et travailler avec un développeur
Recruter et travailler avec un développeurMatthieuSegret
 
Comment faire du Data SEO sans savoir programmer ?
Comment faire du Data SEO sans savoir programmer ?Comment faire du Data SEO sans savoir programmer ?
Comment faire du Data SEO sans savoir programmer ?Vincent Terrasi
 
Introduction à l'agilité
Introduction à l'agilitéIntroduction à l'agilité
Introduction à l'agilitéJonas Vonlanthen
 
Les Code Reviews : le guide de survie
Les Code Reviews : le guide de survieLes Code Reviews : le guide de survie
Les Code Reviews : le guide de survieNicolas VERINAUD
 
2016 octo wp_culture_code_software_craftsmanship
2016 octo wp_culture_code_software_craftsmanship2016 octo wp_culture_code_software_craftsmanship
2016 octo wp_culture_code_software_craftsmanshipChristophe Monnier
 
Microservices IRL - Devoxx-fr 2016
Microservices IRL - Devoxx-fr 2016Microservices IRL - Devoxx-fr 2016
Microservices IRL - Devoxx-fr 2016Stephan Lagraulet
 
Synergies entre DEV et SEO (SeoCampus 2019)
Synergies entre DEV et SEO (SeoCampus 2019)Synergies entre DEV et SEO (SeoCampus 2019)
Synergies entre DEV et SEO (SeoCampus 2019)LVLUP
 
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...SEO CAMP
 
Appréhender et s'adapter aux mutations de l'économie numérique.
Appréhender et s'adapter aux mutations de l'économie numérique. Appréhender et s'adapter aux mutations de l'économie numérique.
Appréhender et s'adapter aux mutations de l'économie numérique. Thibaut Brousse
 
Working effectively with legacy code
Working effectively with legacy codeWorking effectively with legacy code
Working effectively with legacy codeMathieu Gandin
 
Le DevOps : La clé de la transformation digitale ?
Le DevOps : La clé de la transformation digitale ?Le DevOps : La clé de la transformation digitale ?
Le DevOps : La clé de la transformation digitale ?Amico Fabien
 
La Duck Conf - Les fakes news du low-code
La Duck Conf - Les fakes news du low-code La Duck Conf - Les fakes news du low-code
La Duck Conf - Les fakes news du low-code OCTO Technology
 
Design thinking- La pensée design- التفكير التصميمي
Design thinking- La pensée design- التفكير التصميميDesign thinking- La pensée design- التفكير التصميمي
Design thinking- La pensée design- التفكير التصميميZohra Kaafar
 
JCertif 2012 : Scrum avec Icescrum
JCertif 2012 : Scrum avec IcescrumJCertif 2012 : Scrum avec Icescrum
JCertif 2012 : Scrum avec IcescrumRossi Oddet
 
Construire un produit open source, en mode lean, agile et open standards
Construire un produit open source, en mode lean, agile et open standardsConstruire un produit open source, en mode lean, agile et open standards
Construire un produit open source, en mode lean, agile et open standardsNyco
 

Similar to Faire du-code-centre-sur-l-humain devoxx (20)

10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptx10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptx
 
Recruter et travailler avec un développeur
Recruter et travailler avec un développeurRecruter et travailler avec un développeur
Recruter et travailler avec un développeur
 
Projet+com02.ppt
Projet+com02.pptProjet+com02.ppt
Projet+com02.ppt
 
Lmo02.ppt
Lmo02.pptLmo02.ppt
Lmo02.ppt
 
Comment faire du Data SEO sans savoir programmer ?
Comment faire du Data SEO sans savoir programmer ?Comment faire du Data SEO sans savoir programmer ?
Comment faire du Data SEO sans savoir programmer ?
 
Introduction à l'agilité
Introduction à l'agilitéIntroduction à l'agilité
Introduction à l'agilité
 
Les Code Reviews : le guide de survie
Les Code Reviews : le guide de survieLes Code Reviews : le guide de survie
Les Code Reviews : le guide de survie
 
DDD FOR POs.pdf
DDD FOR POs.pdfDDD FOR POs.pdf
DDD FOR POs.pdf
 
2016 octo wp_culture_code_software_craftsmanship
2016 octo wp_culture_code_software_craftsmanship2016 octo wp_culture_code_software_craftsmanship
2016 octo wp_culture_code_software_craftsmanship
 
Microservices IRL - Devoxx-fr 2016
Microservices IRL - Devoxx-fr 2016Microservices IRL - Devoxx-fr 2016
Microservices IRL - Devoxx-fr 2016
 
No code low code
No code low codeNo code low code
No code low code
 
Synergies entre DEV et SEO (SeoCampus 2019)
Synergies entre DEV et SEO (SeoCampus 2019)Synergies entre DEV et SEO (SeoCampus 2019)
Synergies entre DEV et SEO (SeoCampus 2019)
 
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
 
Appréhender et s'adapter aux mutations de l'économie numérique.
Appréhender et s'adapter aux mutations de l'économie numérique. Appréhender et s'adapter aux mutations de l'économie numérique.
Appréhender et s'adapter aux mutations de l'économie numérique.
 
Working effectively with legacy code
Working effectively with legacy codeWorking effectively with legacy code
Working effectively with legacy code
 
Le DevOps : La clé de la transformation digitale ?
Le DevOps : La clé de la transformation digitale ?Le DevOps : La clé de la transformation digitale ?
Le DevOps : La clé de la transformation digitale ?
 
La Duck Conf - Les fakes news du low-code
La Duck Conf - Les fakes news du low-code La Duck Conf - Les fakes news du low-code
La Duck Conf - Les fakes news du low-code
 
Design thinking- La pensée design- التفكير التصميمي
Design thinking- La pensée design- التفكير التصميميDesign thinking- La pensée design- التفكير التصميمي
Design thinking- La pensée design- التفكير التصميمي
 
JCertif 2012 : Scrum avec Icescrum
JCertif 2012 : Scrum avec IcescrumJCertif 2012 : Scrum avec Icescrum
JCertif 2012 : Scrum avec Icescrum
 
Construire un produit open source, en mode lean, agile et open standards
Construire un produit open source, en mode lean, agile et open standardsConstruire un produit open source, en mode lean, agile et open standards
Construire un produit open source, en mode lean, agile et open standards
 

More from VISEO

Tendances Mobile 2018
Tendances Mobile 2018Tendances Mobile 2018
Tendances Mobile 2018VISEO
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...VISEO
 
Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...
Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...
Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...VISEO
 
Css.more.or.less
Css.more.or.lessCss.more.or.less
Css.more.or.lessVISEO
 
Phonegap
PhonegapPhonegap
PhonegapVISEO
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJSVISEO
 
Devoxx 2012 Gregory Weinbach - il n y a pas de bon modele metier
Devoxx 2012   Gregory Weinbach - il n y a pas de bon modele metierDevoxx 2012   Gregory Weinbach - il n y a pas de bon modele metier
Devoxx 2012 Gregory Weinbach - il n y a pas de bon modele metierVISEO
 
Sexy.le.developpement.web.mobile
Sexy.le.developpement.web.mobileSexy.le.developpement.web.mobile
Sexy.le.developpement.web.mobileVISEO
 

More from VISEO (9)

Tendances Mobile 2018
Tendances Mobile 2018Tendances Mobile 2018
Tendances Mobile 2018
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
 
Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...
Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...
Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...
 
Css.more.or.less
Css.more.or.lessCss.more.or.less
Css.more.or.less
 
Phonegap
PhonegapPhonegap
Phonegap
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJS
 
Devoxx 2012 Gregory Weinbach - il n y a pas de bon modele metier
Devoxx 2012   Gregory Weinbach - il n y a pas de bon modele metierDevoxx 2012   Gregory Weinbach - il n y a pas de bon modele metier
Devoxx 2012 Gregory Weinbach - il n y a pas de bon modele metier
 
Sexy.le.developpement.web.mobile
Sexy.le.developpement.web.mobileSexy.le.developpement.web.mobile
Sexy.le.developpement.web.mobile
 

Faire du-code-centre-sur-l-humain devoxx

  • 1. Faire du code centré sur l’humain ! par Yannick Grenzinger @ygrenzinger 1
  • 2. Faire du code centré sur l’humain difficile de faire du code Pourquoi est il si qu’un autre humain puisse facilement comprendre et maintenir ? Parce que nous avons tous notre vision du monde ! Mais les concepts du design et de l’utilisabilité peuvent nous aider ! 2
  • 3. Yannick Grenzinger •@ygrenzinger •Développeur chez Objet Direct •avec une passion pour la psychologie, l’agilité et l’expérience utilisateur (UX) en général •Blog UX : http://ux-fr.com •http://about.me/yannick.grenzinger 3
  • 4. “Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.” Martin Golding 4
  • 5. 5
  • 6. Le modèle mental du code Modèle mental – codeur original ≠ Modèle mental - mainteneur 6
  • 7. Les ergonomes ont déjà trouvé des solutions pour les objets de tous les jours ! Design centré sur l’utilisateur 7
  • 8. Voir le code comme un objet ? = 8
  • 9. Créons de bonnes affordances 9
  • 11. Associations symboliques Dans le code : le nommage les patterns … 11
  • 12. Associations naturelles Behaviour driven development: • Given [condition] • When [action] • Then [resultat] 12
  • 13. Contraintes Evitons le code générique: • main (String[] args){ … } • void changeValeur( Object o, String nomChamp, Object val) 13
  • 14. Visibilité Evitons ce genre de piège : @Service Class MonService { @Scheduled void chaqueMatin() { reveilleToi(); } @Transactional void reveilleToi() { … } } 14
  • 15. Codons pour l’erreur code défensif Trace d’erreurs claires et complètes 15
  • 16. Standardisez ! Faites des opérations similaires pour des tâches similaires 16
  • 17. La boucle de feedback • Test Driven Development • Intégration continue • Déploiement continu Permettent d’accélérer le feedback ! 17
  • 18. Documentez ! “Good code is its own best documentation.” Steve McConnell Mais ne laissez pas le développeur seul face à votre génie ;) 18
  • 19. En appliquant ces concepts Votre modèle mental = Celui du mainteneur + documentation 19
  • 20. Vous aurez un code plus facile à comprendre plus lisible plus maintenable centré sur l’humain ! 20

Editor's Notes

  1. Bonjour, je suis Yannick Grenzinger, développeur chez Objet Direct, un des sponsors de Devoxx France. En plus de mon métier de dev, j’ai une passion pour la psychologie, l’agilité et l’expérience utilisateur en général. J’ai d’ailleurs un blog à ce sujet : ux-fr.com et vous pourrez trouver plus d’information sur ma page about.me .
  2. J’imagine que tout le monde ici code comme si la personne qui maintenait votre code serait un dangereux psychopate qui sait où vous habitez. Vous suiviez les principes d’Oncle Bob. Vous faites du code propre, compréhensible, maintenable.
  3. Et pourtant cela semble toujours finir en un code incompréhensible où la qualité se mesure au nombre de jurons à la minute. Les autres sont ils trop mauvais pour comprendre notre superbe code ?
  4. En fait nous avons tous notre façon de comprendre et d’interpréter notre monde. En fonction de notre pensée, du contexte et du problème, nous créons un modèle mental. La projection de ce modèle mental correspond au code que nous écrivons. A partir de ce code, le développeur qui vient maintenir le code va se construire son propre modèle mental. Et même s’il comprend le problème, il va très souvent construire un modèle mental très différent du codeur original. La différence entre ces deux modèles mentaux est l’origine de notre problème. Alors comment les rendre identique ?
  5. Le domaine du design avec des personnes a déjà étudié et trouvé des solutions à ce problème de modèle mental. Donald Norman, professeur en sciences cognitives, a d’ailleurs créé le design centré sur l’être humain. Pourquoi ne pas faire la même chose en tant que développeur ?
  6. Peut-être pourrions-nous voir notre code comme un objet qui va être réutilisé par des utilisateurs, d'autres codeurs et on pourrait parler de code centré sur l’humain
  7. Vous n’avez pas l’impression que cette porte ressemble fortement au code qu’on n’a l’habitude de croiser tous les jours ? L'affordance est la capacité d’un objet à suggérer sa propre utilisation. Par exemple pour qu’un code soit facilement utilisable, il doit avoir la capacité à suggérer sa propre utilisation. On parle de bonne affordance. La porte que vous voyez est un exemple de  mauvaise affordance. Je vous propose de mettre en avant les différents concepts qui vont nous aider à construire du code centré sur l'humain
  8. Les associations sont la pour rendre simple les relations entre les opérations possibles et leurs effets . On voit ici l’exemple : Le nommage et les patterns sont ainsi des associations symboliques construites par la communauté des développeurs ou par l’équipe. Le nommage : get, set, addElement, removeElement … Les patterns : xxxBuilder, xxxFactory …
  9. En parlant de nommage, on peut aller plus loin et utiliser le langage qui est une des meilleurs associations naturelles dans le cadre abstrait du code. Les DSL type Behaviour driven development sont un très bon exemple.
  10. Pourquoi arrivent-on à construire facilement une moto en Lego ? Parce que chaque pièce de Lego nous contraint à placer les éléments d’une certaine façon. Les contraintes limitent les actions possibles. Cela guide l’utilisateur et réduit les risques d’erreur. Un code très générique et très flexible manquera de contraintes et sera plus difficile à comprendre.
  11. Le tableau de bord d’une voiture nous fournit beaucoup d’indicateurs sur l’état des opérations et les actions possibles.  On parle de bonne visibilité. Les problèmes arrivent quand on ne peut voir ce qui se passe. Or, pour réduire la charge du code on a tendance à rendre beaucoup d’opération invisible, on utilise des frameworks. Ces frameworks ont tendance à donner une mauvaise visibilité. Il faut mettre des métriques, des logs, expliquer à votre utilisateur ce qu’il se passe ! Evitons le piège de l’exemple d’utilisation de Spring ici même. Les deux premières personnes qui trouvent le problème auront un cadeau en fin de session 
  12. En tant que développeurs, nous sommes un peu des équilibristes surtout quand on travaille sur du code legacy  N’hésitez pas à mettre des filets de sécurité ! Nous apprenons en faisant des erreurs . Il faut donc s’y préparer. Faites du code défensif. Mettez une explication de l’erreur précise et claire.
  13. On a tous envi de créer la chaussure rouge au millieu de toutes ces chaussures blanches mais il faut savoir que les systèmes consistants sont plus faciles à apprendre. Faites des opérations similaires pour des tâches similaires. Standardisez et soyez consistant !
  14. Pour comprendre et créer du code, nous fonctionnons tous de la même façon. Avant de coder notre objectif, nous interprétons le code existant. Et en fonction de notre objectif et de cette interprétation, nous écrivons le code qui vient se rajouter au code existant. Les problèmes émergent lors de l’interprétation et de l’écriture du code. Nous avons besoin d’un feedback pour réduire ces problèmes et, plus nous réduisons cette boucle, plus nous sommes efficaces. C’est la que le pair programming, le TDD, l’intégration ou le déploiement continu nous aide à accélérer le feedback.
  15. Enfin on sait tous qu’un bon code n’a pas besoin de documentation comme un objet bien désigné n’a pas besoin d’aide. Cependant vous rencontrerez souvent des problèmes complexes avec des solutions spécifiques et complexe et, dans ce cas, documentez ! Ne laissez pas le développeur seul face à votre génie ;)
  16. Quand nous aurons réussit à appliquer une bonne partie de ces principes, la personne qui aura à comprendre le code pourra ainsi se construire un modèle mental bien plus proche du votre. Vous allez rendre votre mainteneur heureux 
  17. Vous aurez un code plus facile à comprendre, plus lisible, plus maintenable centré sur l’humain ! Merci !