Software Craftsmanship
                  en pratique




      Jean-Laurent de Morlhon - 4 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
http://serpodile.com
Master Plan


Qu'est ce que le Software Craftsmanship ?

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

                                                                   2nde conf
              "Craftsmanship            Manifeste              Craftsmanship EU
                 over crap"           Craftsmanship




 1999             2008             2009                    2010




                         Livre                   Livre
                      Clean Code             Apprencticeship
                                                Patterns
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/
13
Software Craftsmanship: En pratique
Software Craftsmanship: En pratique
Software Craftsmanship: En pratique
En bref...

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

  • Manifeste au points flous, lié au
    manifeste agile
La marque "Agile"
oublie les pratiques
    techniques.
• Scrum...
• ... Sans itérations...
• ... Sans pratiques techniques...
• ... Sans rétrospectives...
• ...


                               http://www.martinfowler.com/bliki/FlaccidScrum.html
Coding

         Process
Coding   Process
Respect
 ingénieur logiciel

        !=

     Respect
ingénieur structure
Savoir dire Non !
Apprentissage
Software Craftsmanship: En pratique
© 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
Software Craftsmanship: En pratique
En résumé
• Un mouvement.
• Agile *avec* les pratiques techniques
• Respect du rôle de l'ingénieur
• Apprentissage / Mentoring
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 exécute du
  code que l'on veut rendre exécutable
  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: Je code tout, Threads & Future FTW
5: Jenkins
red
                 switch !




           TDD
refactor   flow   green
TDD

      C'est difficile.

On y arrive, ça s'apprends.

Ils n'en reviennent jamais.
Software Craftsmanship: En pratique
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)
Typical CodeRetreat Planning

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




   december 3rd 2011
Software Craftsmanship: En pratique
Learn
   New
Languages
Et à l'horizon...

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

Contenu connexe

PPTX
Tipos de navegadores
PDF
Linux Presentation
PDF
Software Craftsmanship : en Pratique - AgileTour
PPTX
Mia-Software at MD Day 2010
PPT
Lean Software Development et pratiques Agiles
PPT
Crm Software Salesboom.com Salesforce.com
PPTX
Introduction au génie logiciel
PPT
LRA_presentation2011[1]
Tipos de navegadores
Linux Presentation
Software Craftsmanship : en Pratique - AgileTour
Mia-Software at MD Day 2010
Lean Software Development et pratiques Agiles
Crm Software Salesboom.com Salesforce.com
Introduction au génie logiciel
LRA_presentation2011[1]

En vedette (20)

PDF
Citizens of the World: Finding Joy through International Picture Books
PPTX
Lesion renal aguda LRA
PPTX
Institutional Repositories: What the Open Access agenda means for a modern in...
PDF
17 02-24 lara investor presentation
PPTX
The Stars My Destination
PPTX
Joseph Kony and the LRA
PPT
Leicester Research Archive (LRA): the work of a repository administrator
PPTX
Missles flight control systems
PPTX
Macro diagrams and definitions
PDF
Le Software Defined Storage, pour éliminer toutes les contraintes du stockage
PDF
Présentation Conférence des TechTrends
PPT
Bâtir une équipe F Lussier V1.2 Fra
PPT
3.4 Demand And Supply Side Policies
PPT
3.3 Macro Economic Models
PPT
ingenieria del software
PDF
Social Software und Web 2.0: Semantic Wikis, Social Tagging und eLearning 2.0
PDF
Open Source Software im geschäftskritischen Einsatz
PPT
Projektmanagement 2.0: Social Software für die Projektkommunikation
PDF
Risiken von Open Source Software
PDF
Das Potential von freier Software (Open Source) für KMUs
Citizens of the World: Finding Joy through International Picture Books
Lesion renal aguda LRA
Institutional Repositories: What the Open Access agenda means for a modern in...
17 02-24 lara investor presentation
The Stars My Destination
Joseph Kony and the LRA
Leicester Research Archive (LRA): the work of a repository administrator
Missles flight control systems
Macro diagrams and definitions
Le Software Defined Storage, pour éliminer toutes les contraintes du stockage
Présentation Conférence des TechTrends
Bâtir une équipe F Lussier V1.2 Fra
3.4 Demand And Supply Side Policies
3.3 Macro Economic Models
ingenieria del software
Social Software und Web 2.0: Semantic Wikis, Social Tagging und eLearning 2.0
Open Source Software im geschäftskritischen Einsatz
Projektmanagement 2.0: Social Software für die Projektkommunikation
Risiken von Open Source Software
Das Potential von freier Software (Open Source) für KMUs
Publicité

Similaire à Software Craftsmanship: En pratique (20)

PDF
Ingénierie agile : N&rsquo;oubliez pas vos développeurs
PDF
Soirée Qualité Logicielle avec Sonar
PDF
Iut lyon 1 introduction à l'agilité - 20 juin 2012
PDF
Scikit Learn: Développement communautaire
PDF
PPTX
20131024 qualité de code et sonar - mug lyon
PDF
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
PDF
Session mons 22 mars
PDF
Sonar 2.0 au GenevaJUG par Freddy Mallet
PDF
Sonar 2.0 au JUG Genève
PDF
Le projet Tiger à l'EPITA
PDF
Initiation à la programmation école primaire neuville
PDF
DevOps, freedom to get stuff done
PDF
Patrons de conception de la programmation fonctionnelle
ODP
Introduction a l_agilite_iut_lyon_1_decembre2011
PPTX
10 ans de Code (Agile Bordeaux 2019).pptx
PDF
XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoan...
PPTX
Soutenance séminaire bibliographique
PPTX
At strasbourg 2012 - Les déconnectés de la matrice
PPT
Daily ddd
Ingénierie agile : N&rsquo;oubliez pas vos développeurs
Soirée Qualité Logicielle avec Sonar
Iut lyon 1 introduction à l'agilité - 20 juin 2012
Scikit Learn: Développement communautaire
20131024 qualité de code et sonar - mug lyon
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
Session mons 22 mars
Sonar 2.0 au GenevaJUG par Freddy Mallet
Sonar 2.0 au JUG Genève
Le projet Tiger à l'EPITA
Initiation à la programmation école primaire neuville
DevOps, freedom to get stuff done
Patrons de conception de la programmation fonctionnelle
Introduction a l_agilite_iut_lyon_1_decembre2011
10 ans de Code (Agile Bordeaux 2019).pptx
XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoan...
Soutenance séminaire bibliographique
At strasbourg 2012 - Les déconnectés de la matrice
Daily ddd
Publicité

Plus de Jean-Laurent de Morlhon (9)

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

Dernier (7)

PPTX
Cours Electrotechnique L2 - Séance 6.pptx
PDF
Frais et décompte dans SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
COURS GCDs Chap 9.pdf tous les éléments.
PDF
Architecture logicielle et Modeles de Conception
PDF
IPTV Meilleur - Le Meilleur Abonnement IPTV en France pour 2025
PDF
Analyse technique approfondie pour la gestion des transports dans SAP S/4HANA...
PPTX
test pour la présentation foire de Chalôns V1
Cours Electrotechnique L2 - Séance 6.pptx
Frais et décompte dans SAP S/4HANA Transportation Management, S4TM3 Col26
COURS GCDs Chap 9.pdf tous les éléments.
Architecture logicielle et Modeles de Conception
IPTV Meilleur - Le Meilleur Abonnement IPTV en France pour 2025
Analyse technique approfondie pour la gestion des transports dans SAP S/4HANA...
test pour la présentation foire de Chalôns V1

Software Craftsmanship: En pratique