Software Craftsmanship

Software Craftsmanship

La fin de la « dette technique » : du passé ne pas faire table rase

Dans les articles qui précèdent, j'ai exprimé l'idée de remplacer, dans le modèle que nous utilisons lorsque nous parlons de "gérer la dette technique" d'une solution logicielle, le diagnostic : Notre solution est endettée techniquement par l'hypothèse : Notre solution repose sur des procédés en conflit Cette hypothèse permet de répondre plus efficacement au problème de la "dette technique" en ce qu'elle substitue à une métaphore inopérante des outils permettant d'appréhender plus précisément et plus efficacement le problème en question. Le propos n'est pas de…

Lire la suite
Software Craftsmanship

La fin de la « dette technique » : résoudre les conflits

Dans les articles précédents, j'ai essayé d'établir sur la base d'exemples (simples) cette observation : Lorsque nous considérons une solution logicielle existante, nous parlons souvent de la "dette technique" qui caractérise cette solution. Par ce terme, nous voulons pointer un certains nombre de défauts de qualité (de maintenabilité, etc.), qui sont comme autant de manquements à un état de l'art communément admis, lequel reste en fait indéfini et hypothétique. Le terme de “dette technique”, popularisé par Ward Cunningham, désignait initialement un procédé particulier de conception…

Lire la suite
Software Craftsmanship

Vos tests d’infrastructure de bout-en-bout avec Kitchen

Au cours de précédents articles, nous vous avons introduit le Test Driven Development sur du code d’infrastructure avec des outils tels que Molecule ou Terratest. Dans cet article, nous vous présenterons Kitchen-CI, un outil qui permet, avec l’aide de bibliothèques de test comme InSpec ou ServerSpec, de tester les différentes briques de son infrastructure. Kitchen Kitchen-CI (de son vrai nom) est un outil écrit en Ruby par les développeurs de Chef. À l’aide de plugins spécifiques, il permet d’effectuer des tests pour vérifier la conformité…

Lire la suite
Software Craftsmanship

« Dette Technique » et procédés en conflit

Dans mon précédent article, je me proposais de bannir le terme "Dette Technique" de mon vocabulaire de travail lorsque celui-ci n'est pas utilisé dans son acception initiale : [Contracter une Dette Technique] : procédé (heuristic) dans lequel on contrevient temporairement à l'état de l'art du projet afin de réaliser un objectif intermédiaire prioritaire. mais dans cette acception, devenue générale dans notre industrie et au delà : La Dette Technique : état général d'une solution jugée non conforme à l'état de l'art minimal communément admis dans…

Lire la suite
Software Craftsmanship

En finir avec la « dette technique »

The First Law of Technology Transfer: Long-range good tends to be sacrificed to short-range good. The Second Law of Technology Transfer: Short-range feasibility tends to be sacrificed to long-range perfection. Jerry Weinberg - Quality Software Management (Dans toute cette discussion, le terme : procédé (heuristic) fait référence à une méthode utilisée dans un contexte donné, sans garantie de résultat, pouvant contredire d'autres procédés, qui permet de réduire le temps de recherche d'une solution, et dont l'acceptation dépend du contexte d'utilisation et non d'un standard absolu.…

Lire la suite
Software Craftsmanship

Transmettre la culture de la qualité logicielle : l’exemple du webcenter d’AXA

Produire du code de qualité est une question de culture et de savoir-faire spécifiques. Ce fait est souvent sous-estimé dans les organisations. Pourtant la non-qualité du code produit des effets bien visibles : désengagement des développeurs, time to market plus long, fonctionnalités dans les applications plus difficiles à ajouter ou à faire évoluer, risques d'indisponibilité de l’application... Comment dans ces conditions créer au niveau des équipes comme de l’entreprise tout entière une véritable culture de la qualité autour du code ? Retour d’expérience avec Antoine…

Lire la suite
Software Craftsmanship

Sortir de la consanguinité logicielle

Depuis plusieurs années que je suis consultant chez OCTO, j’ai eu plusieurs fois l’occasion d’auditer le fonctionnement d’équipes de développement, que ce soit pour des audits internes ou des due diligences techniques. Dans ce contexte,  j'ai pu constater un comportement récurrent dans de nombreuses entreprises, notamment chez les startups numériques.

Lire la suite
Software Craftsmanship

Démarrer un projet plus vite que l’UDD

De nos jours, il n'est plus besoin de vanter les mérites d'une usine de développement (UDD) au sein d'un projet. La systématisation des tâches de vérification (compilation, standards de code, tests unitaires, etc.) aide grandement à repérer rapidement les problèmes de qualité. Cependant, il peut arriver en début de projet que celle-ci se laisse désirer et qu'il faille commencer les développements en son absence. Voyons donc comment assurer un minimum des bienfaits de la systématisation dès le lancement de projet. Dépôt Git Si vous développez…

Lire la suite