Jeudi 29 Juin s’est tenue notre soirée “CRAFT AFTERTECH’ BY CELLENZA” avec comme invité de marque Sandro MANCUSO!
Pour ceux qui ne le connaissent pas, Sandro est une figure importante du software craftsmanship, fondateur de la LSCC et auteur de “The Software Craftsman: Professionalism, Pragmatism, Pride – 2014”.

Pour moi c’était une expérience riche et très agréable car j’ai eu le privilège d’assurer la deuxième partie de la présentation – Une démonstration technique d’un refactoring IDD (Interaction Driven Design) dans le “monde Microsoft”.

L’approche IDD consiste à adopter une organisation/design fonctionnel(le) d’un code source pour répondre à 2 principales questions :

  • “Tell me what the system is about?”
  • “Tell me what the system does?”

L’idée est de regrouper les unités sémantiques d’un logiciel afin d’améliorer la navigation et la lecture d’un code source.
Il y’a principalement 3 unités d’organisation dans cette approche :

  • L’unité Models : Contenant la déclaration de ce que manipule le logiciel (répondant à la première question)
  • L’unité Actions : Contenant les différentes primitives de traitement “fonctionnel” (répondant à la deuxième question)
  • L’unité Infrastructure : Contenant tout le bootstrapping technique du logiciel (base de données, Réseau, helpers… et toutes les autres joyeusetés techniques qui n’implémentent pas de behaviour fonctionnel).

Certains d’entre vous seront tentés de l’assimiler à d’autres patterns/design assez connus tels que l’architecture Hexagonale [Cockburn05], les DDD Tachtical patterns [Evans04] ou encore CQRS [Young06] ce qui n’est sans doute pas le cas, cette approche ne constitue ni une bijection, ni une projection de ces formes de modélisation, elle vise simplement et de manière très PRAGMATIQUE à consolider les “fonctions” métiers d’un code source et à en améliorer leur cohésion.

Pour plus d’informations sur cette philosophie, je vous invite vivement à consulter la vidéo de la session IDD/NCRAFT sur VIMEO – vous trouverez le support de la session sur SlideShare Craft Design.

L’exercice que j’ai montré lors de la soirée était basé sur un code source on-ne-peut-plus ordinaire, à savoir, une belle application e-commerce développée en ASP.NET MVC et organisée en strates techniques démunie de toute organisation fonctionnelle nous permettant de répondre aux deux questions ci-dessus.

Le but de l’exercice était de “refactorer” le module de commande (checkout) afin de lui conférer une meilleure organisation et une cohésion sémantique

La soirée fut très réussie car nous avons accueillis plus de 90 participants de tous bords qui étaient venus échanger leurs expériences et leur savoir-faire dans une ambiance très conviviale.
Pour ma part j’ai été ravi de mon expérience avec Sandro qui, cela va sans dire, est une personne exceptionnelle au parcours hors norme!

Je vous donne rendez-vous pour mon prochain article de blog dans lequel je parlerai de notre magnifique journée de bootcamp Craftsmanship avec Sandro à la barre!
Teaser 🙂

++