Le Software Craftsmanship est un terme qui semble parfois receler plein de mystères et de concepts complexes. Pourtant, il s’agit là simplement d’un mouvement qui a pour ambition de nous aider à créer des produits dont nous soyons fiers.
C’est pourquoi, je vous propose de venir explorer ce qui se cache derrière ce terme si énigmatique qu’est le Software Craftsmanship. Voyons ensemble les enjeux de l’état d’esprit Craftsmanship et ce que nous pouvons en tirer au quotidien.
2. Je suis Nastasia, développeur fan de software craftsmanship et de Big Data.
Je travaille pour Zenika, une SSII avec 7 agences en France, 1 à Singapour et 1 en cours de construction à Montréal. Nous nous intéressons à plein
de choses : Agilité, Web, ...
Je vous propose une présentation sur le software craftsmanship pour comprendre ce qui se cache et découle de ce terme parfois vu de manière si
énigmatique.
Speaker notes
3.
4. Merci aux sponsors d'Agile Grenoble ainsi qu'aux organisateurs, speakers et auditeurs.
Speaker notes
5.
6. Comme l'informatique, c'est nouveau, on est en droit de se demander de quoi il s'agit.
Est-ce de l'ingénierie ?
On voit très souvent ce parallèle-là.
Après tout, originellement, les ingénieurs construisent des choses.
On fait des logiciels. La différence est peut-être juste dans l’immatérialité.
Speaker notes
7.
8. Est-ce que c'est de la science ?
On parle de sciences de l'informatique.
Speaker notes
9.
10. Est-ce que c'est un domaine industriel ?
On parle d'industrialisation avec l'automatisation de tâches répétitives.
Speaker notes
11.
12. Est-ce que c'est de l'art ?
On est dans la construction de quelque chose.
Le fait-on avec esthétisme.
Y a-t-il une notion d'esthétisme ?
Y a t-il un code beau ? ou pas beau ?
Speaker notes
13. OU ALORS ?
Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
16. Celle de l'artisanat.
Software craftsmanship = artisanat du logiciel
Nous utilisons un savoir-faire pour construire des choses à vocation utilitaire.
Speaker notes
20. J'expliquais que j'étais comme un constructeur de chaises.
Je devais maîtriser des outils, des éléments (tissu, bois) pour construire une chaise qui réponde aux besoins et dure dans le temps.
J'expliquais qu'il n'y a pas deux manières identiques de faire une chaise, qu'il y aura toujours des différences dans le rendu entre deux constructeurs
de chaise, mais que la chaise répondra aux besoins.
Je tissais la métaphore de l'artisanat sans m'en rendre compte.
Speaker notes
21. LE SOFTWARE CRAFTSMANSHIP EST UN ÉTAT
D'ESPRIT
Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
22. Cette métaphore nous amène vers un état d'esprit.
Le software craftsmanship n'est pas un set de pratiques, mais bien un état d'esprit qui découle d'une métaphore :
- Veille technique
- Vie communautaire
- Vie professionnelle/privée équilibrée
Speaker notes
23. WHAT IS SOFTWARE DESIGN?
Jack W. Reeves
1992
Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
24. Le début officiel (même si l'idée est là depuis le début) vient d'un article qui interroge sur ce qu'est la conception d'un logiciel.
Speaker notes
26. En 1992, le C++ et l'orienté objet suscitent un fort engouement.
Jack W. Reeves explique que cet engouement vient du fait que le C++ permet de concevoir plus facilement une application.
Speaker notes
27.
28. Il a assisté à une conférence qui se demandait si l'informatique était bien de l'ingénierie.
Mais qu'est-ce que l'ingénierie ?
C'est construire une documentation qu'on donne à une équipe qu'on ne connaît pas et qui va réaliser le produit sans l'intervention du concepteur.
Mais en informatique, qu'est-ce que la documentation et qu'est-ce que la main d'oeuvre ?
Speaker notes
29.
30. La main d'oeuvre, c'est le compilateur/interprétateur. L'informatique ce sont des 1 et des 0.
Le code c'est la documentation.
Construire un logiciel aujourd'hui c'est facile, mais le concevoir c'est compliqué. Et le travail est davantage là-dedans et celui-ci est artisanal.
Speaker notes
31.
32. C'est comme ça qu'il met en avant l'artisanat du logiciel.
Speaker notes
33. THE PRAGMATIC PROGRAMMER - FROM JOURNEYMAN
TO MASTER
Andrew Hunt and David Thomas
1999
Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
34. En 2001, nous avons un livre bien plus connu qui pose l'idée que c'est en développant qu'on devient développeur et qui met la pratique au coeur du
métier.
Speaker notes
35. SOFTWARE CRAFTSMANSHIP, THE NEW IMPERATIVE
Pete McBreen
2001
Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
36. En 2001, ce livre explique que l'ingénierie n'est rien d'autre qu'une métaphore et que du coup on a le droit d'en proposer une autre.
Speaker notes
37.
38. En 1968, une conférence mettait en avant l'ingénierie dans l'informatique. Ils étaient sur de grosses applications avec de forts besoins en sécurité
(du style NASA) et construisaient le hardware et le software.
Mais aujourd'hui, la plupart des besoins ne ressemblent pas à ça.
Speaker notes
39.
40. L'artisanat répond plus aux besoins les plus courants de rapidité et d'agilité.
Speaker notes
41. 2002 - Object Mentor fait du Software Apprenticeship
2006 - 8thLight est la première Software Craftsmanship company
Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
42. 2002 et 2006 : des entreprises s'intéressent officiellement au software craftsmanship
Speaker notes
50. Puisque la proposition d'Uncle Bob n'a pas été ajouté au manifeste agile, on crée un manifest craft
Le but est d'élever le niveau
Speaker notes
51. Pas seulement des logiciels opérationnels,
mais aussi des logiciels bien conçus.
Pas seulement l'adaptation aux changements,
mais aussi l'ajout constant de la valeur.
Pas seulement les individus et leurs interactions,
mais aussi une communauté de professionnels.
Pas seulement la collaboration avec les clients,
mais aussi des partenariats productifs.
Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
52. On reconnaît le manifeste agile.
L'idée c'est de souligner ce qui est sous-jacent
Speaker notes
53.
54. Il n'y a pas d'opposition avec l'agilité, mais plutôt l'envie de redonner de l'importance à certaines idées agiles qui ont été laissées de côté
Speaker notes
55. UN RETOUR A L'EXTREME PROGRAMMING
Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
56. Comme l'extrême programming.
On parle souvent de Scrum, de Kanban, mais peu d'extrême programming.
Sa particularité : essayer de trouver des solutions pour un code agile
Speaker notes
57.
58. Contre le taylorisme, il s'agit de trouver d'autres manières de fonctionner.
Ca donne lieu à des principes, des valeurs et des pratiques.
Speaker notes
60. Tous ces principes n'appartiennent pas au mouvement craftsmanship. C'est juste qu'on remet sur le devant de la scène de vieux concepts.
Speaker notes
63. je vais essayer de répondre à des interrogations/problèmes que vous pourriez avoir/rencontrer.
Speaker notes
64. IL EST DIFFICILE D'ÊTRE CONTRE LE MANIFESTE
Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
65. En effet, le manifeste n'ayant rien de violent en soi, il peut paraître difficile de s'y sentir opposé.
C'est un éclairage.
Speaker notes
66. LE #SOFTWARECRAFTSMANSHIP A TENDANCE A
DEVENIR UN BUZZWORD
Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
67. En effet, la tentation du buzzword n'est jamais loin.
Pourtant, c'est dommage de ne pas en parler.
Speaker notes
68. EST-CE QUE LES DÉVELOPPEURS SONT VRAIMENT
DES ARTISANS DU CODE ?
Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
69. Tout le monde ne sera pas d'accord avec ça.
Mais l'important c'est l'état d'esprit qui découle de cette métaphore.
Speaker notes
70. LE SOFTWARE CRAFTSMANSHIP EST UN ÉTAT
D'ESPRIT
Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
71. L'important est que c'est un état d'esprit
Pas un set de pratiques qui peuvent toujours être remises en question, mais plutôt une démarche, une approche
Speaker notes
72. UN MOUVEMENT : EQUIPE, PARTAGE
Comment mieux faire ?
Coding dojo
Kata
Lectures
73. Et comment ça peut se matérialiser ?
L'idée est d'élever le niveau., donc de trouver des moyens de s'améliorer.
Coding dojo, lecture
Speaker notes
76. Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
LE CRAFTSTMANSHIP, UN IDÉAL
D'ARTISTES ?
77. Alors déjà, on peut dire qu'artisan et artiste sont deux choses différentes
Quand on dit artiste, on entend quelque chose d'esthétique et de beau.
Alors, j'ai cherché ce qu'était un code beau et j'ai trouvé.
Speaker notes
78.
79. Ca c'est un code beau.
Et moi aussi j'adore les codes beaux ... dans les films.
Mais Matrix c'est un film. Personne n'a envie d'un code comme ça.
Quand on parle de "code beau" on veut du code maintenable, lisible, debuguable, où on puisse ajouter de nouvelles fonctionnalités facilement. Et ça
ça veut dire business, time to market, ...
Speaker notes
81. J'aimerais vous citer Lao Tseu, sage chinois.
Mais que vient-il faire ici ?
Lao Tseu avait déjà compris l'esprit craft avant nous.
Et en effet.
L'idée n'est pas d'être dans un idéal, mais de sortir un produit. Mais pour se faire il faut que la fleur soit belle pour avoir un beau fruit.
Comme quoi les sages d'antan ont encore tant à nous apprendre
Speaker notes
83. Il y a une dée qui voudrait qu'on oppose qualité du code et qualité du produit fini
Une équipe qui rogne sur la qualité est une équipe qui s'autoalimente en travail et du coup c'est une équipe qui a du mal à être dans les délais et qui
a du mal à être dans les coups.
Speaker notes
84. BUILD THE RIGHT THING
Itérations courtes
Equipe dev/fonctionnel
85. Oui il faut livrer la bonne chose. Et c'est pour ça peut-être que le DDD est une discussion des meetups craft.
Speaker notes
86. BUILD THE THING RIGHT
Tests : TDD, BDD
Base de code propre
Refactoring
87. Mais il faut aussi livrer la chose comme il faut.
Et c'est pour ça qu'on s'interroge sur les meilleures manières d'y parvenir : TDD, refactoring, ...
Speaker notes
88.
89. On veut construire des cathédrales qui durent pas et non pas qu'on jette tous les 2 ans.
Le refactoring doit permettre à Notre Dame d'exister des siècles après en étant toujours aussi belle et solide
Speaker notes
91. La dette technique, c'est une image forte.
Si on ne rembourse jamais et qu'on continue à emprunter toujours et toujours, à un moment donné, il n'y a plus d'argent et les huissiers viennent
frapper à votre porte.
Là, il n'y a plus de produit qui fonctionne. Il n'y a plus rien. Et on est tenté de tout réécrire mais c'est dommage
Speaker notes
92.
93. Les boy scoots quand ils campent laissent le lieu plus propre que quand ils y sont arrivés.
Cette image va bien avec le code.
Speaker notes
94.
95. Et c'est comme ça qu'on va vite.
La qualité, ça permet d'aller vite. Et pas le contraire.
Speaker notes
97. But du craftsmanship à mon sens c'est la fierté de toute l'équipe (dev, client, PO, ...) vis-à-vis de ce qu'on réalise
Speaker notes
98. Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
LE CRAFTSTMANSHIP, UN IDÉAL
D'ARTISTES ?
Non, ce n'est pas ça
Souci d'efficacité
Intérêt porté au produit
Intérêt porté à la satisfaction
Fierté
99. Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
LE CRAFTSTMANSHIP,
UN TRUC RÉSERVÉ
AUX HÉROS ?
100. Il y a aussi cette idée que je trouve parfois, que c'est un truc réservé aux warriors.
Speaker notes
101.
102. Outre le fait que c'est une communauté accueillante pour tout le monde, la question du héros est posée.
Speaker notes
104. Je pense qu'on a tous envie d'être un héros. Qui n'a jamais eu envie d'être Wonder Woman ?
D'être fort, d'être admiré. D'être celui qui va toujours plus loin. Qui en bave, qui se prend des coups mais qui se relève toujours ?
La personne qui éteint le feu tous les jours.
Mais pourquoi est-ce que ça devrait être le feu tous les jours ?
Pourquoi est-ce qu'on devrait faire toujours plus d'heures ?
Est-ce bien normal ? Est-ce bien la solution ?
Personnellement je l'ai fait. J'ai essayé d'être un héros
Je faisais de plus grosses heures. Je ne disais jamais "non".
Speaker notes
105.
106. Mais au bout d'un moment, je ressemblais plus à un chat qui dort tout le temps qu'à wonder woman : j'étais juste épuisée.
Je pouvais bien rester 1000 heures de plus par jour, mais je n''étais capable de rien.
Speaker notes
107.
108. Alors après chacun à son rythme et sa capacité à encaisser des heures de travail.
Il faut se connaître.
Le sommeil, c'est aussi de la dette.
Speaker notes
109. DEDICATION AND PROFESSIONALISM ARE MORE
ABOUT DISCIPLINE THAN HOURS (UNCLE BOB)
Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
110. UN BON DEV AVEC DE TRÈS BONNES HABITUDES
(KENT BECK)
Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
112. Il faut savoir dire "non" ou plutôt trouver les moyens d'énoncer un vrai "oui".
Speaker notes
113. RIEN NE SERT DE PRÉTENDRE, IL FAUT ÊTRE
DISCIPLINÉ
Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
114. Les super héros ça n'existe pas.
Personne n'a de pouvoir.
Speaker notes
115. Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
LE CRAFTSTMANSHIP,
UN TRUC RÉSERVÉ
AUX HÉROS ?
Certainement pas
Tout le monde est le bienvenu
Wonder woman c'est un
personnage fictif
Discipline est le maître mot
Ecoute d'un rythme et
discipline pour agir
efficacement et non faire
semblant
116. Agile Grenoble 2017 - Nastasia Saby @saby_nastasia - Zenika
LE CRAFTSTMANSHIP,
UN TRUC HYPE ?
Euh 1992 ?
117.
118. Craftsmanship : un état d'esprit.
Du buzzword pas nouveau.
Et qui a pour but d'apporter de la fierté.
Bref soyez heureux
Speaker notes