
Code-Garage #68 - Introduction à l'artisanat logiciel (software craftmanship)
Durée: 7m54s
Date de sortie: 21/07/2023
Êtes-vous un.e artisan logiciel sans le savoir ? Connaissez-vous le manifeste et sa relation avec l'agilité ?
Notes de l'épisode :
Notes de l'épisode :
- Article d'origine : https://code-garage.fr/blog/qu-est-ce-qu-un-artisan-logiciel-software-craftmanship/
- La méthodologie Agile : https://code-garage.fr/blog/qu-est-ce-que-la-methodologie-agile/
- Farnell (sponsor) : https://fr.farnell.com
Salut et bienvenue dans ce nouvel épisode du podcast de Code Garage,
je m'appelle Nicolas Van Dambernar et aujourd'hui on va parler de l'artisanat logiciel,
mais avant un petit mot du sponsor du jour.
Un réseau mondial de connaissance et l'engagement de vous accompagner à toutes les étapes de vos projets.
De la recherche à la conception en passant par la maintenance, Farnel,
votre fournisseur de produits électroniques et industriels.
Pour en savoir plus, rendez-vous sur fr.farnel.com.
Alors rapidement avant de rentrer dans le cœur du sujet,
j'ai un conseil à vous donner, c'est que si vous n'avez pas encore écouté l'épisode
où je parle de ce qu'est la méthodologie agile,
c'est diffoncé maintenant,
puisque il y a pas mal de choses qu'on va dire ici qui s'appuient
sur des infos que j'ai déjà donnés dans l'épisode de l'agile,
donc vous le trouverez dans les listes des podcasts.
Je vous conseille de le faire tout de suite.
Alors un artisan logiciel qu'on appelle parfois artisan développeur ou software craftsman en anglais,
c'est un développeur ou une développeuse qui applique dans son travail la philosophie décrite
dans le manifeste de l'artisan logiciel.
Alors l'artisan logiciel, c'est pas une philosophie alternative à la conception agile,
c'est en fait une extension de celle-ci.
A l'origine, le software craftmanship avait même été proposé pour devenir la cinquième règle
du manifeste agile, mais la décision dans les gens qui ont créé justement cette règle,
et pas fait l'unanimité.
Donc il faut juste retenir qu'un artisan logiciel,
c'est avant tout un développeur qui respecte la méthodologie agile.
C'est au moins le point de départ.
Alors qu'est-ce qui dit ce manifeste de l'artisan logiciel ?
Eh bien il reprend les quatre principes du manifeste agile,
mais il l'est fait évoluer.
Première règle de l'artisan logiciel,
c'est pas seulement des logiciels opérationnels,
mais également des logiciels bien conçus.
Deuxième règle, pas seulement l'adaptation au changement,
mais aussi l'ajout constant de valeur.
Ce que c'est pas parce qu'on a des changements,
qu'on a de l'ajout de valeur,
et bien c'est la deuxième règle de l'artisan logiciel.
Troisième règle, pas seulement les individus et leurs interactions,
mais aussi une communauté professionnelle,
comme on peut le retrouver dans l'artisanat classique.
Quatrième et dernière règle,
pas seulement la collaboration avec les clients,
mais aussi des partenariats productifs.
Alors la première chose qu'on peut remarquer,
c'est qu'au travers des mots utilisés,
eh bien ce manifeste,
il tend à porter une vision de longévité,
qui transcende l'idée simple de projet et de produit,
pour aller s'inscrire sur le plus long terme.
Derrière ce manifeste, et cette idée générale de pérennité,
se cache en réalité quelques valeurs sous-jacentes,
que partagent justement tous les artisans,
et qui constituent une espèce de philosophie de l'artisanat logiciel.
Parmi ces valeurs,
on retrouve par exemple la qualité,
qui va être la robustesse du logiciel,
et le fait qu'il va pouvoir tenir dans le temps,
le professionnalisme,
que ce soit envers les créations de ce qu'on produit,
mais également envers les partenariats qu'on a avec les entreprises,
avec les autres employés, avec tout nos partenaires,
le savoir-faire évidemment.
Le partage d'expérience, pour que tout le monde monte en compétences,
est l'humilité,
l'humilité dans le sens de la remise en question,
et de pas simplement agir sur des principes appris,
des dogmes,
mais des choses qu'on va remettre en question,
et qu'on ne va jamais s'arrêter d'apprendre.
Pour vivre de son travail dans les respect de ces valeurs,
l'artisan doit mettre en place des outils et des méthodes
pour faciliter son quotidien,
et améliorer la qualité de son travail.
C'est justement sur ces outils et méthodes
utilisés par les artisans logiciels qu'on va se concentrer.
Alors évidemment,
comme je l'ai dit dans la partie sur l'humilité et la remise en question,
il est important de noter que l'artisan logiciel,
ce n'est pas un moule à l'intérieur duquel tous les adeptes
doivent utiliser les mêmes outils et doivent faire ça sans réfléchir.
Non évidemment,
ceux, les outils et les principes que je vais vous présenter,
ce sont des exemples que pas mal de développeurs et développeuses
qui se reconnaissent dans l'artisan logiciel
et qui suivent ces principes,
utilisent, mettent en place,
mais évidemment, on peut dire qu'il y a autant de manière
de faire de l'artisan logiciel qu'il n'y a d'artisan.
Pour la qualité du code,
un Craftman va par exemple s'appuyer sur des méthodes,
des patrons et des paradigmes de conception
pour rendre les logiciels plus robustes et le code plus propre.
Parmi ces méthodes, on vous trouvera par exemple le Kiss,
qui pide simple, stupide, donc c'est garder quelque chose de très simple,
le Dry, don't repeat yourself,
le principe solide que vous connaissez certainement,
mais aussi pour d'autres, ça va être donc l'object orienté de programming, la PO,
le domain driven design, le TDD, le test driven développement et plein d'autres.
Il faut noter que si le TDD n'est pas nécessairement utilisé par tous les artisans logiciels,
les tests, que ce soit des tests unitaire,
d'intégration, de nos régressions, end-to-end, etc.
ont une place normalement très importante dans la vie du Craftman,
puisque c'est la seule chose qui peut garantir
une certaine qualité de logiciel à long terme.
Pour le partage de connaissance,
on va pouvoir mettre en place des sessions de per-programming,
par exemple, ou de MOB programming,
qui consiste à travailler à plusieurs sur une même machine,
ou sur un même écran, avec un seul clavier en tout cas.
Si jamais le concept de per-programming vous intéresse ou que vous ne connaissez pas trop,
vous pouvez aller écouter un précédent podcast
dans lequel je détaille un petit peu la méthode de travail
et comment ça se passe et surtout les vrais bienfaits que ça peut avoir.
Alors après il y a la participation à des conférences,
des ateliers, des podcasts, ou même l'écriture d'un blog technique,
par exemple, ce sont des bons moyens pour qu'un artisan puisse transmettre ses connaissances.
Ce n'est pas toujours obligatoire, parfois c'est simplement de la
transmission de connaissance en interne au sein de l'entreprise,
mais parfois ce sont les moyens qui sont utilisés.
Pour la gestion de projet, le pilotage dans toutes les méthodologies
de gestion de projet agile, ça peut être du scrum,
par exemple, mais ça peut être d'autres choses,
et ça va permettre à l'artisan de se remettre en question et réfléchir,
parfois de manière collective, à des pistes d'amélioration de son travail
à la fin de chaque sprint pendant la rétrospective, etc.
Voilà, un petit peu, tout, cérémonie,
vont participer à la remise en question puisqu'on va revenir
sur ce qui s'est bien passé, mais surtout ce qui s'est mal passé
et donc continuer son amélioration personnelle et avec les autres.
Alors évidemment, cet épisode, ça reste une introduction
au principe du software craftmanship, qui est en pratique une philosophie,
une méthode de travail beaucoup plus complexe.
Si jamais le sujet vous intéresse,
je vous invite à lire le livre d'un des pionniers de l'artisanat logiciel.
Ce livre, c'est The Clean Code par Robert C. Martin.
Alors évidemment, vous n'allez pas forcément trouver énormément d'infos
sur la philosophie du craftmanship, mais plutôt comment créer un code propre
et maintenant, et tout ça, et donc ça, ça fait réellement partie de la vie
de l'artisan logiciel au sens propre du terme.
J'espère que cet épisode vous a été utile.
Moi, je vous donne rendez-vous la semaine prochaine pour un prochain épisode du podcast
ou directement sur code-garage.fr pour retrouver tous les autres épisodes,
tous les articles de blogs, la newsletter et bien évidemment tous les cours complets
où vous pouvez y accéder pour un abonnement de 19h49 par mois
avec les projets, les exercices, les certificats de réussite,
tout ce dont vous avez besoin pour vous former correctement.
A la semaine prochaine, salut !
Episode suivant:
Les infos glanées
Code-Garage
Découvrons ensemble des sujets passionnants autour du métier de dev et de la programmation en général !
Tags
Code-Garage #69 - Le fonctionnement des web workers