Publié par
Il y a 3 années · 3 minutes · Craft

[DevoxxFR] Software Craftsmanship

Sandro Mancuso a présenté une conférence passionnante au sujet du Software Craftsmanship. Digne héritier d’Uncle Bob Martin, il a étayé ses propos à l’aide d’anecdotes de son expérience professionnelle.

Pitch

After over ten years since the Agile summit, software projects are still failing and developers are still behaving and being treated as factory workers. The software development industry is still very amateur when compared to other professions. Why Agile was not sufficient? Why so many clients are unhappy with their software projects? Why is it so difficult to find good developers? In this talk Sandro will be explaining: what Software Craftsmanship really is, the value of technical practices, what it means to be a professional software developer, and what to do to satisfy our customers.

La conférence

Sandro a abordé les sujets suivants :

  • Retour sur le Manifest Agile : les 10 dernières années de pratique de l’agilité se sont concentrées sur les gens, les interactions et la construction d’équipe, qui sont devenus plus importants que les pratiques techniques au cœur de notre métier. « Many agile projects are now, steadily and iteratively, producing mediocre software ».
  • L’ère Agile : depuis la révolution agile, les processus se sont beaucoup améliorés, mais pas les pratiques techniques, qui sont passées au second plan. Cependant, les méthodes Agiles ne résolvent pas les problèmes, mais les mettent en lumière.
  • The Wrong Notion of Time : lorsque l’on tente de faire les choses sous pression, on prend des raccourcis et on produit de la mauvaise qualité. Toutefois, le temps gagné de cette manière aura un coût majoré (dette technique) lors du développement des fonctionnalités futures.
  • Focus sur le Craftsmanship Manifesto : ce qui est primordial, c’est le logiciel et non les processus ni les idées. Si le logiciel est mauvais, le projet est voué à l’échec, peu importe les processus à l’œuvre (Agile ou pas). D’où la création d’un manifeste pour le Software Craftsmanship, qui se veut être capable de relever la barre :
    « Not only working software, but also well-crafted software »
    « Not only responding to change, but also steadily adding value »
    « Not only individuals and interactions, but also a community of professionals »
    « Not only customer interaction, but also productive partnerships »
  • Une définition du Software Craftsmanship : les développeurs ont également, au même titre que le client, un enjeu non négligeable lié à la réussite du projet : leur réputation. C’est pourquoi le Software Craftsmanship peut avoir une définition courte en un mot : professionnalisme. Une définition plus complète serait la suivante : « le Software Cratftsmanship consiste à remettre responsablité, professionnalisme, pragmatisme et fierté dans le développement logiciel ».
  • Le context, les pratiques agiles applicables : le fameux « Vous ne connaissez pas mon contexte, je n’ai pas le choix je ne peux pas faire du code propre » n’est pas recevable car votre problème est plus commun que vous ne le pensez. Pour y répondre, il y a les pratiques Extreme Programming (XP), qui sont indépendantes du contexte.
  • Focus sur la pratique : les pratiques XP (TDD, pair programming, refactoring, intégration continue…) ajoutent de la valeur et ont donc des conséquences économiquement bénéfiques. C’est en ces termes pécuniaires qu’il faut en parler aux managers, car c’est le seul argument qu’ils entendent. Exemple du pair programming : il fournit un retour d’information, ou feedback, sur la lisibilité et les erreurs, ce qui économise du temps, donc de l’argent.

Vous pourrez retrouver l’intégralité de la conférence sur Parleys.

En parallèle, vous pouvez consulter le nouveau livre de Sandro Mancuso : Software Craftsmanship, Professionalism Pragmatism Pride.

Julien Smadja
Julien Smadja est consultant manager chez Xebia où il intervient notamment sur des projets NodeJS et AngularJS 2. Ses 10 ans d'expérience ont principalement été axées sur le développement d'applications Java, la qualité et la testabilité.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *