Software Craftsmanship

  • posté le
  • par ESENS

OK alors celui-là faut vraiment que j'en parle !! Software Craftsmanship, c'est le meilleur meetup que j'ai pu faire jusque là...

Des lightning talks et des ateliers (débats et katas) sont au programme de chaque soirée auxquelles se réunissent en énorme majorité des développeurs, toutes technos confondues. 

kata.jpghighres_437662256.jpeg

         Pas ces katas là …                                      … mais ceux-là  

Pour ceux qui ne connaissent pas, Software Craftsmanship est une philosophie adressée aux développeurs voulant associer le métier de "producteur de logiciel", à celui de l'artisanat.

C'est une association que j'aime beaucoup dans le principe et que j'utilisais déjà en 2009, sans connaitre le mouvement . Dans les grandes lignes, un Software Craftsman est un expert dans son domaine, gageant et responsable, pas dans un sens politique mais plutôt déontologique, de la qualité du code livré de par son savoir-faire et son amour du travail bien fait (ainsi que de sa bonne suivie des pratiques agiles vous diront certains). Un Software Craftsman est aussi quelqu'un qui aime partager sa passion et en terme général, permettre l'élévation de ses compétences et de celles des autres. (Pour plus d'informations, voirhttp://manifesto.softwarecraftsmanship.org).

 

C'est sur ce concept que se base ce meetup, en essayant via une promotion des bonnes pratiques et de la constante remise en question, d'orienter les attendants en leur proposant des débats et des présentations sur des sujets divers et variés, en restant dans le contexte du Logiciel.

Les activités sont la plupart du temps proposées et votées en début de séance afin de permettre a chacun d'y trouver son bonheur.

 

appp_frontmap.png

Ce soir là, 2 lightning talks se sont déroulés avant de présenter les activités :

 

Lightning Talk : Impact Mapping

 

Sandro Mancusso, organisateur du meetup homologue londonien, commença donc par nous parler d'une méthodologie de définition d'un produit par ses besoins : l'Impact Mapping.

 

L'Impact Mapping, via l'utilisation d'un outil de mind-mapping (tel Freemind), est sensé vous permettre de définir et clarifier les fonctionnalités de votre produit en les associant a des périmètres fonctionnels eux même liés a des profils utilisateurs.

map.png

Un des grands avantages de cette pratique est de permettre de décomposer votre architecture logicielle de manière fonctionnelle. Très pratique si vous êtes amateur du Domain Driven Design.

Étant moi-même un adepte des spécifications fonctionnelles par arbre d'exigences, je m'y retrouve également beaucoup dans cette méthode.

 

Lightning Talk : The Expert, a political analysis

 

La seconde présentation fut quant à elle d'un autre genre. Le principe était de décortiquer EE manière politique les relations au sein de la vidéo "The Expert".

 Simon Guimezanes nous présenta donc son analyse des personnes assistant a la réunion, des leviers pour politiques s'appliquant, ainsi que des erreurs de jugement politique qu'ils avaient pu faire.

 

the-expert-22-638.jpg

 

Très intéressant, j'aurais beaucoup aimé que ce lightning talk soit plus long et nous présente plus en profondeur les leviers politiques mis a notre disposition en tant que développeurs, en réunion ou non.

La sélection des sujets

 

Vint enfin la proposition des sujets parmi lesquels furent choisis :

  - Table ronde : la conduite du changement sur un produit non agile

  - Kata : Extreme Carpaccio

  - Un troisième sujet dont je ne me rappelle plus

 

J’ai pour ma part choisi le Kata proposé par Diego Lemos intitulé : “Extreme Carpaccio”, sensé être un mélange du Kata “Extreme Startup” et “Elephant Carpaccio”.

 

Kata : Extreme Carpaccio

 

Le principe de ce Kata était de développer une application permettant de traiter des requêtes HTTP contenant un prix, et de retourner ce prix avec les taxes et les réductions du pays associé appliquées.

 

Chaque prix renvoyé permettait alors de gagner, ou perdre de l’argent en fonction de la validation du prix renvoyé. C’est cette perte d’argent lors d’une mauvaise réponse qui est en fait la valeur ajouté du Kata et qui oblige les équipes à découper verticalement leur application (en traitant l’ensemble des fonctionnalités sur un petit périmètre), pour commencer à gagner de l’argent le plus rapidement possible.

 

Vertical_slice.png

Vertical slicing

 

Malheureusement, j’ai trouvé les explications peu claires sur cette perte d’argent et sur l’objectif du Kata (La perte d’argent n’est expliquée qu’à la fin de la documentation).

De plus, le Kata est assez récent et j’ai eu le “bonheur” de découvrir que le client Node.js n’arrivait pas à réceptionner d’événement “end” sur les requêtes HTTP, empêchant ainsi le traitement de ces dernières. J’ai cependant quand même pu me débrouiller en montant moi-même un client express.

J’ai également l’habitude, quand je travaille avec Node.js, de redéployer et redémarrer automatiquement mon serveur dès que je sauvegarde mes changements et ce mode de développement n’est vraiment pas pratique lorsque vous payez chaque erreur que fait votre application lorsqu’elle est déployée.

 

Enfin bref, un Kata plutôt intéressant, présentant les avantages du découpage vertical d’une application… bien que la présentation et documentation du Kata aurait pu être plus soignée.

 

La revue

 

###p
ès>

 

Pour finir, un tour complet des participants fut effectué lors duquel chaque personne eut l’occasion de s’exprimer, sur un sujet lié au Software Craftsmanship ou pas.

 

Conclusion

 

téléchargement.jpg

 

J’ai vraiment beaucoup aimé ce meetup, on y discute des langages et des bonne pratiques de développement en général, mais également de gestion de projet, technique ou non. Si vous ne pouvez aller qu’à un seul meetup par mois, je vous conseille vivement d’aller à celui-ci, que vous pouvez suivre via ###a href="ce" class="redactor-linkify-object">http://www.meetup.com/paris-so... lien (les meetups ont lieu une fois par mois, et le prochain meetup aura lieu le 15 Juin).

PARTAGER CET ARTICLE