Agilité

Le Software Craftsmanship : l’agilité au service des développeurs

Mathias Barré, Développeur Java/angular @DeliaTechnologies
Mathias Barré, Développeur Java/angular @DeliaTechnologies
February 10, 2022
11 min

Dans les dernières années, et plus particulièrement depuis la crise sanitaire de 2020, la quête de sens est devenue un critère indispensable dans la recherche de bien-être au travail. Dans le contexte de cette recherche, on retrouve souvent les mêmes critères appréciés par les collaborateurs : des projets ayant du sens, une reconnaissance de la part de l’employeur, une juste répartition des valeurs, un suivi de la carrière ainsi qu’une satisfaction du travail bien fait.

Vous reprendrez bien un peu de dette technique ?

Le dernier point est encore plus pertinent dans le cas des développeurs, qui fournissent une expertise technique pour répondre à un besoin précis. Si vous évoluez dans le monde de l’informatique, vous avez probablement déjà travaillé (ou travaillerez un jour) sur un projet « mal codé » : avec des fondations bancales sur lesquelles on empile les fonctionnalités, avec peu (pas ?) de pratiques de TDD, pas de documentation, un code peu lisible, etc..

Ce genre de projets (en plus d’être peu attrayant) augmente considérablement le coût du logiciel, et à différents niveaux. Sur le plan financier, du code mal conçu va obligatoirement engendrer des coûts de maintenance importants (parfois jusqu’à atteindre plusieurs fois les frais de développement du logiciel !). Sur le plan de la communication, ce sont les bugs à répétition qui vont ternir l’image du fabricant auprès du client.

Sur le plan humain, un logiciel mal conçu va générer de la frustration chez les développeurs. Si la dette technique de celui-ci a pris une ampleur trop importante, ils n’auront pas le temps de faire une refonte en profondeur, et se contenteront d’accumuler les correctifs sur un code déjà rafistolé, ce qui va créer de nouveaux bugs. Ils auront l’impression de faire du mauvais travail, de ne rien apprendre, et les bugs incessants donneront l’impression de ne plus avancer…

La conclusion inévitable pour ces projets, c’est que les développeurs finiront tôt ou tard par chercher des horizons plus attrayants. En effet, les projets de mauvaise qualité et la sensation de travail bâclé sont une des causes principales du turn-over des développeurs dans les entreprises numériques d’aujourd’hui. Couplé à un marché du travail très dynamique et compétitif, il peut être difficile de conserver les savoir-faire et les compétences au sein d’une équipe.

Ce genre de situation désagréable peut avoir des origines diverses et variées : des délais trop serrés qui empêchent de livrer du code de qualité, peu de communication entre les développeurs, pas d’outils d’intégration continue, un état d’esprit qui ne valorise pas la qualité du livrable dans l’entreprise ou bien un mélange de tous ces points.

Make software development great again

Make software development great again

Pour pallier certains de ces points, le manifeste du Software Craftsmanship a été publié en 2009 (https://manifesto.softwarecraftsmanship.org/#/fr-fr) avec le slogan : Raise the bar. Les 4 piliers du manifeste sont les suivants :

Ce manifeste est à considérer comme complémentaire au manifeste agile : il ne s’y oppose pas (d’où l’utilisation du “mais aussi”), mais apporte au contraire une dimension supplémentaire à l’agilité et la rend beaucoup plus pertinente. On y retrouve des valeurs bien connues de l’agilité, avec une notion de professionnalisme accentuée par rapport au manifeste agile : faire un logiciel qui fonctionne, mais aussi (mais surtout ?) faire un bon logiciel. Avec cette culture, l’idée est de ne pas focaliser les développeurs uniquement sur le fonctionnel et l’expérience client (bien que primordiaux), mais de faire un logiciel qui respecte des standards, qui est bien conçu et dont on peut être fier.

Prêts à devenir un artisan du logiciel ?

padawan

Assez de théorie, place à la pratique !

Avec ces bases, vous pouvez déjà vous considérer comme un padawan du Software Craftsmanship, c’est la première étape vers l’illumination ! Mais le plus dur reste à venir. En effet, il faut maintenant mettre en place cette culture sur vos projets par plusieurs moyens. Tout d’abord au niveau de la qualité du code :

Ensuite, une fois votre code devenu propre et bien conçu, il faut absolument le partager aux autres : l’échange de connaissances est un principe clé du Software Craftsmanship.

Et enfin, il ne faut pas hésiter à utiliser les outils dont nous disposons aujourd’hui pour améliorer la fiabilité de notre code :

Il existe bien sûr d’autres outils et méthodes pour améliorer la qualité de vos logiciels, mais je vous laisse les trouver par vous-même ! En effet, le Software Craftsmanship est avant tout un état d’esprit, par lequel la curiosité nous pousse sans cesse à s’améliorer et à faire des découvertes, sans oublier de les partager à la communauté.

bravo

Vous voilà prêts à devenir un artisan du logiciel !

Avec ces informations, vous avez déjà une base solide pour commencer à travailler votre artisanat du logiciel et à en faire profiter les autres. Ce partage doit se faire de façon pédagogique bien sûr, sans culpabiliser les développeurs ni prendre une posture condescendante. Tout le monde peut apporter sa pierre à l’édifice !

Vous constaterez que la plupart de ces principes suivent des recommandations très simples et probablement déjà entendues en formation. En effet, le Software Craftsmanship est avant tout une mise en avant du bon sens, par laquelle on prône des techniques efficaces ayant fait leurs preuves. En complément de la souplesse des méthodes agiles, ces principes aideront les développeurs à améliorer leur bien-être au travail, en étant plus confiants dans leur domaine, et passionnés par ce qu’ils font.

Chez Delia Technologies, les collaborateurs font en sorte de promouvoir le Software Craftsmanship dans leurs différentes missions par la mise en place de bonnes pratiques et de techniques DevOps. L’accent est mis sur le partage des compétences via nos différentes plateformes (telles que France DevOps par exemple), sur lesquelles les intervenants mettent en commun leur savoir-faire pour faire progresser la communauté.

En plus d’être productif, un développeur fournissant un travail de qualité est un développeur enclin à s’inscrire dans la durée et à être passionné par son métier. Pour citer Stendhal : “La vocation, c’est avoir pour métier sa passion”, ce point est sans doute le plus important. A votre tour de devenir un artisan du logiciel ! :)

Dans les dernières années, et plus particulièrement depuis la crise sanitaire de 2020, la quête de sens est devenue un critère indispensable dans la recherche de bien-être au travail. Dans le contexte de cette recherche, on retrouve souvent les mêmes critères appréciés par les collaborateurs : des projets ayant du sens, une reconnaissance de la part de l’employeur, une juste répartition des valeurs, un suivi de la carrière ainsi qu’une satisfaction du travail bien fait.

Vous reprendrez bien un peu de dette technique ?

Le dernier point est encore plus pertinent dans le cas des développeurs, qui fournissent une expertise technique pour répondre à un besoin précis. Si vous évoluez dans le monde de l’informatique, vous avez probablement déjà travaillé (ou travaillerez un jour) sur un projet « mal codé » : avec des fondations bancales sur lesquelles on empile les fonctionnalités, avec peu (pas ?) de pratiques de TDD, pas de documentation, un code peu lisible, etc..

Ce genre de projets (en plus d’être peu attrayant) augmente considérablement le coût du logiciel, et à différents niveaux. Sur le plan financier, du code mal conçu va obligatoirement engendrer des coûts de maintenance importants (parfois jusqu’à atteindre plusieurs fois les frais de développement du logiciel !). Sur le plan de la communication, ce sont les bugs à répétition qui vont ternir l’image du fabricant auprès du client.

Sur le plan humain, un logiciel mal conçu va générer de la frustration chez les développeurs. Si la dette technique de celui-ci a pris une ampleur trop importante, ils n’auront pas le temps de faire une refonte en profondeur, et se contenteront d’accumuler les correctifs sur un code déjà rafistolé, ce qui va créer de nouveaux bugs. Ils auront l’impression de faire du mauvais travail, de ne rien apprendre, et les bugs incessants donneront l’impression de ne plus avancer…

La conclusion inévitable pour ces projets, c’est que les développeurs finiront tôt ou tard par chercher des horizons plus attrayants. En effet, les projets de mauvaise qualité et la sensation de travail bâclé sont une des causes principales du turn-over des développeurs dans les entreprises numériques d’aujourd’hui. Couplé à un marché du travail très dynamique et compétitif, il peut être difficile de conserver les savoir-faire et les compétences au sein d’une équipe.

Ce genre de situation désagréable peut avoir des origines diverses et variées : des délais trop serrés qui empêchent de livrer du code de qualité, peu de communication entre les développeurs, pas d’outils d’intégration continue, un état d’esprit qui ne valorise pas la qualité du livrable dans l’entreprise ou bien un mélange de tous ces points.

Make software development great again

Make software development great again

Pour pallier certains de ces points, le manifeste du Software Craftsmanship a été publié en 2009 (https://manifesto.softwarecraftsmanship.org/#/fr-fr) avec le slogan : Raise the bar. Les 4 piliers du manifeste sont les suivants :

Ce manifeste est à considérer comme complémentaire au manifeste agile : il ne s’y oppose pas (d’où l’utilisation du “mais aussi”), mais apporte au contraire une dimension supplémentaire à l’agilité et la rend beaucoup plus pertinente. On y retrouve des valeurs bien connues de l’agilité, avec une notion de professionnalisme accentuée par rapport au manifeste agile : faire un logiciel qui fonctionne, mais aussi (mais surtout ?) faire un bon logiciel. Avec cette culture, l’idée est de ne pas focaliser les développeurs uniquement sur le fonctionnel et l’expérience client (bien que primordiaux), mais de faire un logiciel qui respecte des standards, qui est bien conçu et dont on peut être fier.

Prêts à devenir un artisan du logiciel ?

padawan

Assez de théorie, place à la pratique !

Avec ces bases, vous pouvez déjà vous considérer comme un padawan du Software Craftsmanship, c’est la première étape vers l’illumination ! Mais le plus dur reste à venir. En effet, il faut maintenant mettre en place cette culture sur vos projets par plusieurs moyens. Tout d’abord au niveau de la qualité du code :

Ensuite, une fois votre code devenu propre et bien conçu, il faut absolument le partager aux autres : l’échange de connaissances est un principe clé du Software Craftsmanship.

Et enfin, il ne faut pas hésiter à utiliser les outils dont nous disposons aujourd’hui pour améliorer la fiabilité de notre code :

Il existe bien sûr d’autres outils et méthodes pour améliorer la qualité de vos logiciels, mais je vous laisse les trouver par vous-même ! En effet, le Software Craftsmanship est avant tout un état d’esprit, par lequel la curiosité nous pousse sans cesse à s’améliorer et à faire des découvertes, sans oublier de les partager à la communauté.

bravo

Vous voilà prêts à devenir un artisan du logiciel !

Avec ces informations, vous avez déjà une base solide pour commencer à travailler votre artisanat du logiciel et à en faire profiter les autres. Ce partage doit se faire de façon pédagogique bien sûr, sans culpabiliser les développeurs ni prendre une posture condescendante. Tout le monde peut apporter sa pierre à l’édifice !

Vous constaterez que la plupart de ces principes suivent des recommandations très simples et probablement déjà entendues en formation. En effet, le Software Craftsmanship est avant tout une mise en avant du bon sens, par laquelle on prône des techniques efficaces ayant fait leurs preuves. En complément de la souplesse des méthodes agiles, ces principes aideront les développeurs à améliorer leur bien-être au travail, en étant plus confiants dans leur domaine, et passionnés par ce qu’ils font.

Chez Delia Technologies, les collaborateurs font en sorte de promouvoir le Software Craftsmanship dans leurs différentes missions par la mise en place de bonnes pratiques et de techniques DevOps. L’accent est mis sur le partage des compétences via nos différentes plateformes (telles que France DevOps par exemple), sur lesquelles les intervenants mettent en commun leur savoir-faire pour faire progresser la communauté.

En plus d’être productif, un développeur fournissant un travail de qualité est un développeur enclin à s’inscrire dans la durée et à être passionné par son métier. Pour citer Stendhal : “La vocation, c’est avoir pour métier sa passion”, ce point est sans doute le plus important. A votre tour de devenir un artisan du logiciel ! :)

D'autres articles pour vous

Tous nos articles →