Le Software craftsmanship ou comment le développement logiciel retrouve ses lettres de noblesse

Le “Software craftsmanship”.... voilà encore un buzzword de Geek incompréhensible du grand public. À croire que les informaticiens prennent un malin plaisir à utiliser du vocabulaire réservé aux initiés. Et pourtant la traduction du terme peut rapidement nous mettre sur la voie. Par “l'artisanat du logiciel” il faut simplement comprendre une approche de conception des applications informatiques mettant l’accent sur le savoir-faire et la compétence des développeurs. Loin d’un simple phénomène de mode le craftsmanship se révèle être une petite révolution culturelle dans le monde de l’industrie du logiciel.

Le développement logiciel considéré comme un art à part entière

Transformation digitale et croissance fulgurante du numérique obligent, les entreprises sont en permanence à la recherche de compétences performantes pour faire face à la réalisation “d’apps” en tout genre (applications mobiles et sites Web). Les développeurs sont assurément les “rois du marché de l’emploi en France”, dixit l’article du monde.fr du 19 septembre 2016. L'étude LinkedIn qui y est citée montre en effet que les diplômés en développement sont les profils les plus recherchés par les recruteurs, parfois avant même leur sortie de l’école, avec un classement en première position dans le top 20 des métiers les plus recherchés en informatique. Même si le marché français accuse depuis quelques années, comme tous les pays d’Europe, une pénurie pour ce type de profil, la situation nationale tendrait à s’améliorer au regard d’une étude Indeed de mars 2016. En effet l’écart entre la demande des entreprises et l’offre candidats s’étant réduit de 8% en 2 ans, la France serait légèrement moins en difficulté que ses partenaires européens.

Face à cette rareté de ressources et la demande grandissante du secteur, la tentation est grande pour les acteurs du domaine de se décréter experts en développement logiciels (qu’il s’agisse des postulants eux-mêmes comme des prestataires de services informatiques). Même si aujourd’hui les langages informatiques sont beaucoup plus simples à appréhender qu’auparavant, la connaissance d’un outil de programmation ne fait pas automatiquement un bon développeur au même titre que la compréhension de la langue ne donne pas forcément un bon écrivain. De plus la tendance de l’industrie du logiciel à l’externalisation à (très) bas coût induit des problématiques récurrentes de maintenabilité, d’évolutivité et de performance. Un logiciel correctement structuré nécessite un savoir-faire, du professionnalisme, des bonnes pratiques et une responsabilisation des codeurs. Les exigences de fiabilité dans le monde du digital ne laissent plus la place aux conceptions sauvages et aux “pisseurs de lignes“. Il ne suffit pas qu'un logiciel soit fonctionnel, mais il faut qu'il soit bien conçu.

La démarche de “software craftsmanship” propose de répondre à ces maux avec la rédaction en 2008 d’un manifeste, complément à celui de l’Agile, signé par des figures célèbres du monde du développement logiciels comme Robert Martin (co-auteur du manifeste Agile) et Kent Beck (créateur de l’Extreme Programming). Comme pour l’Agile, le manifeste pour le Software craftsmanship s’appuie sur 4 valeurs :

●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.

Ce mouvement qui prône la culture du code de qualité considère le développement comme une activité artistique à part entière et à une une forme de création originale. Certains déclarent même que celle-ci devrait être désignée comme partie intégrante à la catégorie du 10ème art.

Et sur le plan pragmatique ?

La démarche du craftsmanship apporte des réponses pragmatiques au travers d’outils et de méthodes permettant à tout développeur de s’améliorer et devenir un véritable artisan dans toute sa dimension vertueuse du terme. Le livre blanc d’Octo Technology “ Culture Code – Software Craftsmanship, better places with better code” propose des pistes d’actions en ce sens :

●Transmettre une culture de la qualité logicielle et de l’excellence technique par l’apprentissage permanent, le binomage des équipes, des revues de codes collectives et la création d’une communauté de bonnes pratiques.

●Maintenir la maintenabilité avec le suivi systématique d’indicateurs

●Nommer un Tech Lead portant la vision technique du produit et favorisant l’apprentissage et l’autonomie de l’équipe

●Diminuer la dette technique

●Écrire du code compréhensible

●Choisir les bons outils de tests automatisés

●Opter pour une méthode de développement itérative et incrémentale “Test Driven Development” typique de l’Agile

Prêt pour transformer vos développeurs en craftsmen (ou craftswomen) ?

Yvan Michel, consultant

Retrouvez l'ensemble des articles de notre Rendez-vous "Adopte un geek !"

 

    Bruno VINCENT
    Bruno VINCENT

    Très bon article, merci Yvan!

    Contenus suggérés par rapport à cette publication

    Pas de résultat