SlideShare une entreprise Scribd logo
1  sur  58
Télécharger pour lire hors ligne
Software Craftsmanship
                  en pratique




      Jean-Laurent de Morlhon - 20 Octobre 2011
Jean-Laurent de Morlhon

            Directeur Technique
                   Xebia

             +12 ans expérience IT
            +6 ans pratiques agiles


                  @morlhon
              http://blog.xebia.fr
             jlmorlhon @ xebia.fr
Jean-Laurent de Morlhon




              http://serpodile.com
Jean-Laurent de Morlhon




             Développeur
Master Plan


1) Qu'est ce que le Software Craftsmanship ?

   2) Comment *je* le mets en pratique.
1
Software
Craftsmanship
     ???
CRAFTMAN-CHIPS
                 @elemerdy
craftsmanship
http://www.artisanat.fr/
http://www.economicthought.net/2011/02/selective-attention/
Historique
    Livre                                            1ère Conf
 Pragmatic                    1ère Conf          Craftsmanship US        Paris
Programmers               Craftsmanship EU                            Software
                                                                    Craftsmanship
                                                                     Community

              "Craftsmanship            Manifeste
                 over crap"           Craftsmanship




 1999             2008             2009                    2010         2011



                                                 Livre          London
                         Livre
                                             Apprencticeship   Software
                      Clean Code                             Craftsmanship
                                                Patterns
                                                               Comunity
Software Craftsmanship




        est une approche de développement logiciel qui
             met l'accent sur les «coding skills» des
                          développeurs.
Crafts.man




  Un homme qui pratique son métier avec une grande habileté.
! ART
   http://dannorth.net/2011/01/11/programming-is-not-a-craft/
16
En bref...

• Une définition commune
• Métaphores que l'on peut interpréter de
  façon très différentes (art, guilde ...)

• Manifeste au points flous, lié au manifeste
  agile
La marque "Agile"
oublie les pratiques
    techniques.
Scrum en 2011...
• Avec des post-its et des stand-
  ups
• ... Sans itérations...
• ... Sans rétrospectives...
• ... Sans pratiques techniques...
• ...                  http://www.martinfowler.com/bliki/FlaccidScrum.html
Coding

         Process
Coding   Process
Respect
 ingénieur logiciel

        !=

     Respect
ingénieur structure
Savoir dire Non !
Apprentissage
© 2004 Warner Bros. Entertainment Inc. All Rights Reserved.
Musique

                                                                                  Musicien                            Professeur de
                                   Musiciens d’élite
                                                                               professionnels                           musique
    5 ans                             2-3 h / Semaine                          2-3 h / Semaine 2-3 h / Semaine
    8 ans                              6 h / Semaine                           2-3 h / Semaine 2-3 h / Semaine
    12 ans                             8 h / Semaine                            6 h / Semaine   4 h / Semaine
    16 ans                            22 h / Semaine                           11 h / Semaine 7 h / Semaine
    20 ans                             30+ / Semaine                           24 h / Semaine 12 h / Semaine
  Nb heures
 Accumulées :                          10 000 heures                              8 000 heures                         4 000 heures


The Role of Deliberate Practice in the Acquisition of Expert Performance K. Anders Ericsson, Ralf Th. Krampe, and Clemens Tesch-Romer; 1993
En résumé
• Un mouvement.
• Agile *avec* les pratiques techniques
• Respect du rôle de l'ingénieur
• Apprentissage / Mentoring
2
En pratique...
AGILE
                        TDD


SOLID           CRAFT     Entrainement




  Déploiement
                         YAGNI
    Continu
Agile...

XP   Scrum      Kanban
SOLID
     5 Principes


Single Responsability
Open Closed
Liskov Substitution
Interface Segregation
Dependency Inversion
                   http://blog.xebia.fr/2011/07/18/les-principes-solid/
http://lostechies.com/derickbailey/2009/02/11/solid-development-principles-in-motivational-pictures/




                    Jenga
Ecrire du logiciel ce n'est pas une partie de
http://lostechies.com/derickbailey/2009/02/11/solid-development-principles-in-motivational-pictures/




                       faire.
  Ce n'est pas parce qu'on peut le faire qu'il faut le
http://lostechies.com/derickbailey/2009/02/11/solid-development-principles-in-motivational-pictures/




  Une opération à coeur ouvert n'est pas
 nécessaire lorsqu'on enfile un vêtement.
http://lostechies.com/derickbailey/2009/02/11/solid-development-principles-in-motivational-pictures/




                                                                                             Ca cancane comme un canard, ressemble à un canard mais à
                                                                                             besoin de pile. Vous avez surement la mauvaise abstraction.
http://lostechies.com/derickbailey/2009/02/11/solid-development-principles-in-motivational-pictures/




             Où voulez vous brancher cela ?
http://lostechies.com/derickbailey/2009/02/11/solid-development-principles-in-motivational-pictures/




                      électrique dans le mur ?
      Est ce que vous souderiez directement un branchement
YAGNI


You Aren't Going to Need It !
Exercice
Q: Vous avez un jar exécutable qui démarre
  du code que l'on veut lancer
  régulièrement.
  L'accès au logs passés est important.
  Un novice doit pouvoir les visualiser.


1: Cron Job
2: Talend
3: Quartz Scheduler
4: Jenkins
5: Je code tout, Threads & Future FTW !
red
                 switch !




           TDD
refactor   flow   green
TDD

      C'est difficile.

On y arrive, ça s'apprends.

Ils n'en reviennent jamais.
Déploiement Continu

 Build < 2-3 minutes.
 Dépendance binaire
 Test unitaire + intégration
 Déploiement de l'application complète
 Dés la 1ère itération (sans surcout)
http://happyprog.com/pairhero
S'entrainer !

Kata (seul)
Coding Dojo (en groupe)
Code Retreat (tout plein)
Planning de CodeRetreat usuel

 10h00                                         14h00
         Code Session 1     Code Session 4

         Retrospective 1    Retrospective 4
 11h00                                         15h00
         Code Session 2     Code Session 5

         Retrospective 2    Retrospective 5
 12h00                                         16h00
         Code Session 3     Code Session 6

         Retrospective 3
                                               16h40
 13h00                     Day Retrospective
                                               ...
             Lunch

 14h00
Global Day of Code Retreat




    3 décembre 2011
Pratiquez
de nouveaux
  langages
Et à l'horizon...

• Domain Driven Design
• Clean Code...
• TDD ++ (practice, practice, practice !)
• 1 langage par an
raising the bar
?

Contenu connexe

Tendances

Le PMO Framework du PMI: qu’est-ce que c’est et à quoi cela devrait servir?
Le PMO Framework du PMI: qu’est-ce que c’est et à quoi cela devrait servir?Le PMO Framework du PMI: qu’est-ce que c’est et à quoi cela devrait servir?
Le PMO Framework du PMI: qu’est-ce que c’est et à quoi cela devrait servir?
PMI-Montréal
 

Tendances (20)

Mob Programming
Mob ProgrammingMob Programming
Mob Programming
 
Le PMO Framework du PMI: qu’est-ce que c’est et à quoi cela devrait servir?
Le PMO Framework du PMI: qu’est-ce que c’est et à quoi cela devrait servir?Le PMO Framework du PMI: qu’est-ce que c’est et à quoi cela devrait servir?
Le PMO Framework du PMI: qu’est-ce que c’est et à quoi cela devrait servir?
 
Agile Marketing: Exploring Scrumban
Agile Marketing: Exploring ScrumbanAgile Marketing: Exploring Scrumban
Agile Marketing: Exploring Scrumban
 
Sikuli for Mobile Testing
Sikuli for Mobile TestingSikuli for Mobile Testing
Sikuli for Mobile Testing
 
Les pratiques Scrum
Les pratiques ScrumLes pratiques Scrum
Les pratiques Scrum
 
Scrum gathering Paris 2013 - test automation strategy for Scrum Projects
Scrum gathering Paris 2013 -  test automation strategy for Scrum ProjectsScrum gathering Paris 2013 -  test automation strategy for Scrum Projects
Scrum gathering Paris 2013 - test automation strategy for Scrum Projects
 
Agile Metrics...That Matter
Agile Metrics...That MatterAgile Metrics...That Matter
Agile Metrics...That Matter
 
Top 50 Scaled Agile Interview Question and Answers | Edureka
Top 50 Scaled Agile Interview Question and Answers | EdurekaTop 50 Scaled Agile Interview Question and Answers | Edureka
Top 50 Scaled Agile Interview Question and Answers | Edureka
 
Introduction à l'Agilité - Cours complet 1 jour
Introduction à l'Agilité - Cours complet 1 jourIntroduction à l'Agilité - Cours complet 1 jour
Introduction à l'Agilité - Cours complet 1 jour
 
Product Vision Board PowerPoint template
Product Vision Board PowerPoint templateProduct Vision Board PowerPoint template
Product Vision Board PowerPoint template
 
Kanban in Action Workshop
Kanban in Action WorkshopKanban in Action Workshop
Kanban in Action Workshop
 
Diffusion de la méthode BDD chez AXA via les 3 amigos
Diffusion de la méthode BDD chez AXA via les 3 amigosDiffusion de la méthode BDD chez AXA via les 3 amigos
Diffusion de la méthode BDD chez AXA via les 3 amigos
 
Lean vs scrum
Lean vs scrumLean vs scrum
Lean vs scrum
 
Initiation Scrum
Initiation ScrumInitiation Scrum
Initiation Scrum
 
Performance testing locust
Performance testing   locustPerformance testing   locust
Performance testing locust
 
API Testing With Katalon Studio
API Testing With Katalon StudioAPI Testing With Katalon Studio
API Testing With Katalon Studio
 
[Product Camp 2020] - Níveis de Maturidade em Prod Ops - Thiago Belluf - Favo
[Product Camp 2020] - Níveis de Maturidade em Prod Ops - Thiago Belluf - Favo[Product Camp 2020] - Níveis de Maturidade em Prod Ops - Thiago Belluf - Favo
[Product Camp 2020] - Níveis de Maturidade em Prod Ops - Thiago Belluf - Favo
 
User Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh VaradharajanUser Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh Varadharajan
 
Scrumban
ScrumbanScrumban
Scrumban
 
Agile & Scrum Training
Agile & Scrum TrainingAgile & Scrum Training
Agile & Scrum Training
 

En vedette

LRA_presentation2011[1]
LRA_presentation2011[1]LRA_presentation2011[1]
LRA_presentation2011[1]
Nathon Chacon
 
Macro diagrams and definitions
Macro diagrams and definitionsMacro diagrams and definitions
Macro diagrams and definitions
12jostma
 
3.4 Demand And Supply Side Policies
3.4   Demand And Supply Side Policies3.4   Demand And Supply Side Policies
3.4 Demand And Supply Side Policies
Andrew McCarthy
 
3.3 Macro Economic Models
3.3   Macro Economic Models3.3   Macro Economic Models
3.3 Macro Economic Models
Andrew McCarthy
 

En vedette (20)

Mia-Software at MD Day 2010
Mia-Software at MD Day 2010Mia-Software at MD Day 2010
Mia-Software at MD Day 2010
 
Lean Software Development et pratiques Agiles
Lean Software Development et pratiques AgilesLean Software Development et pratiques Agiles
Lean Software Development et pratiques Agiles
 
Software Craftsmanship: En pratique
Software Craftsmanship: En pratiqueSoftware Craftsmanship: En pratique
Software Craftsmanship: En pratique
 
Crm Software Salesboom.com Salesforce.com
Crm Software Salesboom.com Salesforce.comCrm Software Salesboom.com Salesforce.com
Crm Software Salesboom.com Salesforce.com
 
Introduction au génie logiciel
Introduction au génie logicielIntroduction au génie logiciel
Introduction au génie logiciel
 
LRA_presentation2011[1]
LRA_presentation2011[1]LRA_presentation2011[1]
LRA_presentation2011[1]
 
Citizens of the World: Finding Joy through International Picture Books
Citizens of the World: Finding Joy through International Picture BooksCitizens of the World: Finding Joy through International Picture Books
Citizens of the World: Finding Joy through International Picture Books
 
Lesion renal aguda LRA
Lesion renal aguda LRALesion renal aguda LRA
Lesion renal aguda LRA
 
Institutional Repositories: What the Open Access agenda means for a modern in...
Institutional Repositories: What the Open Access agenda means for a modern in...Institutional Repositories: What the Open Access agenda means for a modern in...
Institutional Repositories: What the Open Access agenda means for a modern in...
 
17 02-24 lara investor presentation
17 02-24 lara investor presentation17 02-24 lara investor presentation
17 02-24 lara investor presentation
 
The Stars My Destination
The Stars My DestinationThe Stars My Destination
The Stars My Destination
 
Joseph Kony and the LRA
Joseph Kony and the LRAJoseph Kony and the LRA
Joseph Kony and the LRA
 
Leicester Research Archive (LRA): the work of a repository administrator
Leicester Research Archive (LRA): the work of a repository administratorLeicester Research Archive (LRA): the work of a repository administrator
Leicester Research Archive (LRA): the work of a repository administrator
 
Missles flight control systems
Missles flight control systemsMissles flight control systems
Missles flight control systems
 
Macro diagrams and definitions
Macro diagrams and definitionsMacro diagrams and definitions
Macro diagrams and definitions
 
Le Software Defined Storage, pour éliminer toutes les contraintes du stockage
Le Software Defined Storage, pour éliminer toutes les contraintes du stockageLe Software Defined Storage, pour éliminer toutes les contraintes du stockage
Le Software Defined Storage, pour éliminer toutes les contraintes du stockage
 
Présentation Conférence des TechTrends
Présentation Conférence des TechTrendsPrésentation Conférence des TechTrends
Présentation Conférence des TechTrends
 
Bâtir une équipe F Lussier V1.2 Fra
Bâtir une équipe F Lussier V1.2 FraBâtir une équipe F Lussier V1.2 Fra
Bâtir une équipe F Lussier V1.2 Fra
 
3.4 Demand And Supply Side Policies
3.4   Demand And Supply Side Policies3.4   Demand And Supply Side Policies
3.4 Demand And Supply Side Policies
 
3.3 Macro Economic Models
3.3   Macro Economic Models3.3   Macro Economic Models
3.3 Macro Economic Models
 

Similaire à Software Craftsmanship : en Pratique - AgileTour

Ingénierie agile : N&rsquo;oubliez pas vos développeurs
Ingénierie agile : N&rsquo;oubliez pas vos développeursIngénierie agile : N&rsquo;oubliez pas vos développeurs
Ingénierie agile : N&rsquo;oubliez pas vos développeurs
Xavier NOPRE
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec Sonar
ElsassJUG
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
Clement Bouillier
 
Présentation designer weekend
Présentation designer weekendPrésentation designer weekend
Présentation designer weekend
designerwe
 
AUF11 - 01 Introduction
AUF11 - 01 IntroductionAUF11 - 01 Introduction
AUF11 - 01 Introduction
otb
 

Similaire à Software Craftsmanship : en Pratique - AgileTour (20)

Ingénierie agile : N&rsquo;oubliez pas vos développeurs
Ingénierie agile : N&rsquo;oubliez pas vos développeursIngénierie agile : N&rsquo;oubliez pas vos développeurs
Ingénierie agile : N&rsquo;oubliez pas vos développeurs
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec Sonar
 
Iut lyon 1 introduction à l'agilité - 20 juin 2012
Iut lyon 1   introduction à l'agilité - 20 juin 2012Iut lyon 1   introduction à l'agilité - 20 juin 2012
Iut lyon 1 introduction à l'agilité - 20 juin 2012
 
Scikit Learn: Développement communautaire
Scikit Learn: Développement communautaireScikit Learn: Développement communautaire
Scikit Learn: Développement communautaire
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
 
Le projet Tiger à l'EPITA
Le projet Tiger à l'EPITALe projet Tiger à l'EPITA
Le projet Tiger à l'EPITA
 
Php 100k
Php 100kPhp 100k
Php 100k
 
Présentation designer weekend
Présentation designer weekendPrésentation designer weekend
Présentation designer weekend
 
At strasbourg 2012 - Les déconnectés de la matrice
At strasbourg 2012 - Les déconnectés de la matriceAt strasbourg 2012 - Les déconnectés de la matrice
At strasbourg 2012 - Les déconnectés de la matrice
 
Sonar 2.0 au GenevaJUG par Freddy Mallet
Sonar 2.0 au GenevaJUG par Freddy MalletSonar 2.0 au GenevaJUG par Freddy Mallet
Sonar 2.0 au GenevaJUG par Freddy Mallet
 
Sonar 2.0 au JUG Genève
Sonar 2.0 au JUG GenèveSonar 2.0 au JUG Genève
Sonar 2.0 au JUG Genève
 
DevOps, freedom to get stuff done
DevOps, freedom to get stuff doneDevOps, freedom to get stuff done
DevOps, freedom to get stuff done
 
Session mons 22 mars
Session mons 22 marsSession mons 22 mars
Session mons 22 mars
 
AUF11 - 01 Introduction
AUF11 - 01 IntroductionAUF11 - 01 Introduction
AUF11 - 01 Introduction
 
.Net pour le développeur Java - une source d'inspiration?
.Net pour le développeur Java - une source d'inspiration?.Net pour le développeur Java - une source d'inspiration?
.Net pour le développeur Java - une source d'inspiration?
 
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
 
Initiation à la programmation école primaire neuville
Initiation à la programmation   école primaire neuvilleInitiation à la programmation   école primaire neuville
Initiation à la programmation école primaire neuville
 
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
 
Daily ddd
Daily dddDaily ddd
Daily ddd
 
08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentation08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentation
 

Plus de Jean-Laurent de Morlhon

Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Jean-Laurent de Morlhon
 

Plus de Jean-Laurent de Morlhon (9)

Culture du Programmeur
Culture du ProgrammeurCulture du Programmeur
Culture du Programmeur
 
Git fu
Git fuGit fu
Git fu
 
Code retreat june24th
Code retreat june24thCode retreat june24th
Code retreat june24th
 
SVN to GitHUb
SVN to GitHUbSVN to GitHUb
SVN to GitHUb
 
Comment j'ai remplacé 30% de mes développeurs en adoptant l'agilité... et aut...
Comment j'ai remplacé 30% de mes développeurs en adoptant l'agilité... et aut...Comment j'ai remplacé 30% de mes développeurs en adoptant l'agilité... et aut...
Comment j'ai remplacé 30% de mes développeurs en adoptant l'agilité... et aut...
 
Scrum, 3 Ans après...
Scrum, 3 Ans après...Scrum, 3 Ans après...
Scrum, 3 Ans après...
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
 
Scrum & VIdal Retour d'experience
Scrum & VIdal Retour d'experienceScrum & VIdal Retour d'experience
Scrum & VIdal Retour d'experience
 
Construire une ligne de produit logiciel "toyotisme ou fordisme" ?
Construire une ligne de produit logiciel "toyotisme ou fordisme" ?Construire une ligne de produit logiciel "toyotisme ou fordisme" ?
Construire une ligne de produit logiciel "toyotisme ou fordisme" ?
 

Software Craftsmanship : en Pratique - AgileTour