Première réunion Software Craftsmanship Paris

Publié le 28/10/2011, par Nicolas Bétheuil dans Agile | 2 Commentaires

Paris Software Craftsmanship - Première réunion

Il y a une semaine c’est tenu le premier “meetup” de la communauté Software Craftsmanship. Et c’était bien.

Définitions

Tout d’abord un petit aperçu de ce qu’est le Craftsmanship au travers de ce qui nous être présenté jeudi soir.

L’agilité permet de faciliter la réussite d’un projet. Cependant, son application depuis ces dix dernières années a pu amener à une forte focalisation sur le processus, négligeant les autres valeurs comme la relation humaine et le logiciel opérationnel. Le Software Craftsmanship part de ce constat afin d’enrichir les principes agiles. Il met l’accent sur les compétences et même l’excellence individuelle afin d’apporter de la valeur au produit à réaliser.

On trouve sur Paris beaucoup de communautés centrées soit sur les technologies, (Java, JavaScript, NoSql…)  soit sur les processus (French Scrum User Group, conférence Agile France…). La communauté Software Craftsmanship se place dans un espace oublié pour réunir ces deux mondes. C’est une communauté où l’on parlera de technique de développement logiciel comme par exemple de TDD, de conception simple, de binomage…

Si cette communauté devait s’attacher à développer un des 4 principes du manifeste agile, ce serait “working software”. Le mouvement aux Etats-Unis a écrit un manifeste software craftsmanship. Celui ci compléte, explicite et renforce les valeurs du manifeste agile. Ce qui donne :

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 collaboration, but also productive partnerships

http://manifesto.softwarecraftsmanship.org/

Pour ceux qui n’ont pas suivi, Craftsman se traduit par artisan en français. Ce sujet n’a pas été abordé pendant cette soirée, mais pourra sans doute alimenter quelques discussions lors des soirées à venir.

Déroulé de la soirée

Cyrille Martraire est directeur technique chez Arolla et fondateur de cette communauté.

Il nous a expliqué les raisons de son initiative : parmi les communautés naissantes, on distingue les techno centrée (Java,.net, web…) de celles qui seraient plus méthodologiques, autour de l’Agilité, du Lean… Néanmoins, ces deux tendances convergent sur le travailler mieux, autant au niveau technique que organisationnel ainsi que “simplement” se faire PLAISIR au travail. Il présente son initiative comme une troisième possibilité, sans appartenance à une technologie ou à un langage. Parmi les participants (moyenne d’âge autour de la petite trentaine, même si des personnes plus expérimentées étaient présentes), l’écrasante majorité était plus orientée java, même si les langages du web était également représentés. Un .net était également présent.

Cyrille a très vite laissé la parole à Sandro Mancuso, fondateur de la communauté Software Craftsmanship de Londres, il y a un an. Celui ci nous a présenté son idée du métier de développeur, comment il évolue au sein des projets, notamment encadré par les méthodes agiles. Il en est venu assez naturellement à aborder la manière d’améliorer le travail personnel par les pratiques du software craftsmanship.

La deuxième partie prévoyait intitialement un hands-on en TDD. Elle s’est transformée en papotage autour d’un excellent cocktail.

Ce qu’il m’en reste

Ce que j’ai retenu de cette session autant au travers de l’introduction de Cyrille que du talk de Sandro :

  • Le développement est un art qui requiert du temps, de l’expérience, de la pratique
  • Comment garantir à un projet que ce que vous amenez le fait avancer : écrire du code, vérifier que le résultat obtenu est bien celui attendu et vice et versa : c’est normal. Mais si vos tests sont automatisés, reproductibles et que votre code est lisible, maintenable, et compréhensible, ce que vous avez amené aujourd’hui et hier fonctionnera toujours demain, même si vous n’êtes plus là.
  • Les activités de test et de refactoring ne sont pas des tâches, mais des étapes indispensables, par conséquent votre PO ne peut pas les dé-prioriser.
  • L’importance de pratiquer : Comme pour conduire une voiture, au début on est paniqué, puis après on arrive à être naturel et à gérer plusieurs choses à la fois. Pour le TDD ou le pair-programming cela change fondamentalement notre manière de faire, de concevoir mais cela permet de reproduire et de s’améliorer régulièrement en partageant, en échangeant, en communiquant plutôt qu’en stagnant tout seul.
  • Tous les projets sont différents, mais les pratiques pour les faire aboutir ne sont pas si nombreuses, malgré les exigences métier : Sandro a d’ailleurs une fois de plus appuyé sur l’importance des pratiques XP telles que TDD & pair programming. Il a néanmoins nuancé son propos en prenant en compte un contexte organisationnel qui peut parasiter ou freiner l’application des pratiques XP, il se concentre alors sur celles du centre complètement déconnectées du contexte organisationnel qui vient parasiter leur essence.

D’autres remarques qui ne sont pas relatives à l’écriture du code, parce que ce n’est qu’une très petite partie de notre activité :

  • Être Craftsman c’est avoir une attitude positive : en se lamentant sur l’état du projet, quelle image donne-t-on aux débutants et aux collègues qui y contribue ?
  • Le Software Craftsmanship n’est pas une église ou une croyance mais la raison qui s’exprime au travers de l’expérience de chacun
  • Commentaire personnel : comme toute expérience qui s’exprime, tant que l’autre n’a pas fait son apprentissage, cet ensemble de pratique est difficile à accepter et apparaît uniquement comme de l’évangélisation, j’ai vu la lumière, je peux vous montrer le chemin et vous aider à y parvenir.
  • Sandro nous a bien fait part de son peu de considération pour les certifications. Il espère bien ne jamais voir reprise cette idée pour le Software Craftsmanship.
  • Travailler sur du code historique (legacy) c’est comme faire un puzzle 5000 pièces : trouver les angles, les bords, isoler des parties cohérentes afin d’y incorporer les bonnes pratiques
  • Prenez votre carrière en main : parce que comme un dentiste ou un médecin, on ne vous paie pas pour apprendre ou vous remettre à niveau. C’est par contre une activité indispensable : vous devez individuellement maintenir vos connaissances et compétences à un niveau d’employabilité afin de ne pas vous retrouver dans des impasses. Néanmoins, si votre employeur n’est pas capable de vous aider dans cette activité, essayez de faire changer les choses puis, si ça ne fonctionne toujours pas, allez voir ailleurs. Sandro a d’ailleurs fait un délicieux lapsus “Own your company” à la place de “Own your carrier” : pour continuer à évoluer et à vous épanouir vous devriez être votre salarié, posséder votre société …

Comme toutes communautés, elle ne vivra que par l’activité de ses membres.

Être développeur

Cette session m’a également beaucoup fait penser à la session du dernier Paris JUG sur “Être Développeur” : si vous voulez que votre projet réussisse, entourez-vous des bonnes personnes. L’une des autres idées de cette autre soirée était sur la limite d’âge : il n’y en a pas ! Être développeur à 40 ans n’est pas une tare, je dirais même plus que ce sont les bons, très bons qui sont toujours dans cette activité. Il faut néanmoins accepter de faire des missions plus aventureuses… Les Duchess vont d’ailleurs prolonger le débat.

Liens pour aller plus loin

http://craftedsw.blogspot.com

www.meetup.com/paris-software-craftsmanship/

www.meetup.com/london-software-craftsmanship

Crédits Photos: Cyrille, merci !
Avec la généreuse participation & gracieuse relecture de Etienne Charignon & Eric Le Merdy, merci !

Un REX exprimé par des exemples

Publié le 17/10/2010, par Hélène Granboulan Bensalem dans Agile, Valtech | 3 Commentaires

Des scénettes pour illustrer quelques anti-patterns organisationnels

On parle souvent de retour d’expérience (REX). Pour décrire des anti-patterns organisationnels en respectant l’anonymat des projets concernés, je vous propose ici du TDREX.  C’est la mouvance TDD / TDR (Test Driven Development/ Test Drivent Requirement, c’est-à-dire développements / spécifications dirigés par les exemples), qui m’a inspirée. J’ai donc inventé des scénettes – des exemples fictifs – pour exprimer un retour d’expériences difficiles.

Anti-pattern 1 : pas de communication coordonnée

Les différents acteurs du projet communiquent deux par deux au lieu de réunir toutes les personnes impliquées.

Exemple : Marc, Sophie et Eric

Marc et Sophie travaillent sur le même projet avec Eric. Marc prépare les ordinateurs, Sophie forme et explique aux utilisateurs où vont être installés les logiciels, et Eric livre les ordinateurs aux utilisateurs.

Pour s’accorder sur la date de livraison des ordinateurs, qui doit être la plus tôt possible…

1ère version de l’histoire : l’anti-modèle (anti-pattern)

Eric va voir Marc pour savoir quand ils seront préparés, puis il va voir Sophie pour savoir quand elle pourra expliquer. Marc a répondu le 5 octobre (en fait, il peut avoir fini entre le 1 et le 7). Sophie répond Lire la suite »


Afterwork dédié à l’agilité, mercredi 18 février

Publié le 12/02/2009, par Pascal Ognibene dans Agile | 1 Commentaire

Après les Afterwork GWT, qui ont rencontré un très gros succès avec presque 150 personnes sur deux soirées, Valtech poursuit sur sa lancée avec une session dédiée à l’Agilité.

Cet évènement gratuit se déroule dans les locaux de Valtech Training, au rez de chaussée du bâtiment “coeur Défense”, et débutera aux environs de 18h45.

Cette session est ouverte à toutes et tous. C’est un moyen privilégié de découvrir l’agilité et Valtech dans une ambiance conviviale.

Au programme:

  • Une approche pragmatique de l’agilité, avec des retours d’expérience de vrais projets menés par Valtech,
  • Une introduction aux pratiques TDD et TDR,
  • Des démonstrations en live,
  • Et bien sûr, une pause pour se restaurer et échanger sur les sujets qui vous intéressent.

Une soirée à ne pas manquer! Les places sont limitées, et pour les inscriptions ça se passe ici :

Inscription pour l’AfterWork Agilité


Retour sur le JavaCampParis 3

Publié le 2/02/2009, par Anthony Dahanne dans Architecture | 1 Commentaire

Timeline of the Java Camp 3
Ce Samedi 31 Janvier a eu lieu un JavaCamp à Paris, le JavaCampParis 3.

A partir de 9h30 – 10h, les premiers participants sont arrivés; et après un détour par la machine à café, le JavaCamp a démarré.

Les personnes présentes ont alors proposé des sujets qui les intéressaient (et se sont aussi présentées); ensuite, une “refactorisation” des sujets proposés a mis en évidence 7 thèmes :

  • TDD (Test Driven Development)
  • langages de scripting autour de la JVM (Scala, Groovy, Ruby)
  • DDD (Domain Driven Design)
  • les langages RIA et les frameworks Web: GWT, Flex, Wicket
  • Scrum
  • JEE 6 et Spring
  • SOA
  • Les Mocks

Ces thèmes ont pu être débattus/présentés par les participants dans 2 salles et sur 4 créneaux horaires : 10h15 -11h30, 10h45-13h00, 13h30-14h30, 14h45-16h.

Pendant la séance “les langages RIA et les frameworks Web: GWT, Flex, Wicket”, Tarik, et Eric, nous ont présenté Wicket (en avant premiere de ParisJug) et leur framework au dessus Wicket (pour faciliter et mettre à jour dynamiquement les formulaires dans Wicket); et avant de plus partir sur Flex, j’ai pu présenter la mise en oeuvre de GWT.

En abordant les “langages de scripting autour de la JVM (Scala, Groovy, Ruby)”, on a pu parler de la facilité d’intégration, de la mise en oeuvre, de l’intéret et de la pertinence des iDE dans le cadre des développements Scala (qui est compilé), Ruby, Groovy et Java Fx.

En parallèle, dans la salle “Solaris”, les débats ont porté sur la testabilité des programmes java. Nous avons eu un bon aperçu des différentes pratiques et technologies associées aux tests logiciels. En vrac: les x-Unit, Selenium, GreenPepper, FitNesse, Concordion, Bumblebee, SWTBot. Le débat suivant fut une présentation de DDD (Domain Driven Design) par Sébastien Letélié et le principal framework : Qi4j. Une approche intéressante qui est une “sur-couche” à la programmation orientée objet. Cette vision incite les objets java à se décomposer par comportement. On obtient donc un composite formé de plusieurs associations.

Dans l’autre salle, durant la séance “Scrum”, après de brefs retour d’expérience, Eric (pas le même que celui de Wicket, mais le co-organisateur) a pris la parole, et après avoir défini Scrum, nous a fait part de son avis sur combien Scrum peut être mal appliqué, et, ainsi souffrir d’une image négative; d’ailleurs le sujet a ensuite débordé sur le cycle de vie des méthodologies projets (la courbe des experts, early adopters, main stream users, …), et un comparatif entre ces dernières.

Un grand merci aux sponsors de la journée, Sun (pour les locaux) et Valtech (pour le petit déjeuner et les pizzas à midi), ainsi qu’à Jean Yves Pronier (côté Sun pour les locaux), Eric Lefevre-Ardant (co-organisateur avec moi-même), Eric Le Merdy, Claude Falguière (soutiens) et Alexis Moussine-Pouchkine (qui nous a mis en contact avec Jean-Yves), ainsi qu’aux participants pour le bon déroulement de la journée.

D’autres retours:


Nouveau livre de Craig Larman: Scaling Lean & Agile Development

Publié le 16/07/2008, par Eric Lefevre-Ardant dans Agile, Valtech | Ajouter un commentaire

Scaling Lean and Agile Development

Craig Larman, Chief Scientist à Valtech et auteur de nombreux livres dont Applying UML and Patterns et Agile and Iterative Development: A Manager’s Guide, vient de publier un nouvel ouvrage: Scaling Lean & Agile Development: Successful Large, Multisite & Offshore Products With Large-scale Scrum. Ce livre contient ce que Craig appelle “Large-Scale Scrum” (LSS), une collection of conseils pour monter en puissance Scrum sur du développement impliquant des grandes équipes multi-site, ou du développement offshore. Les règles de base de Scrum restent nécessaires en premier lieu. Ce n’est qu’à l’aide de cycles d’inspection et d’adaptation que l’on peut expérimenter un nouveau process; un process empirique plutôt que défini.

Il a également écrit un article sur InfoQ avec Bas Vodde sur les équipes multiples: Choose Feature Teams over Component Teams for Agility.


Valtech à la conférence Agile 2008

Publié le 15/07/2008, par Eric Lefevre-Ardant dans Agile, Valtech | Ajouter un commentaire

La conférence Agile 2008 a lieu dans 3 semaines seulement! Ce sont déjà les tout derniers moments pour s’inscrire (plus de 1200 inscrits il y a une semaine, sur 1600 attendus).

Valtech sera présent à cette conférence. 3 des sujets que nous avons présentés ont été retenus:

Par ailleurs, Eric Lefèvre a co-organisé la track Breaking Acts, une serie de sessions cherchant à faire avancer nos connaissances sur l’agilité.

Nos collègues des autres filiales de Valtech ne sont pas en reste. En particulier, Valtech US assure 8 sessions (!), plus une pour Valtech UK:

Avec un total de 12 sessions, il semblerait que Valtech fournisse le plus gros contingent de présentateurs :-)

Si vous vous rendez à Agile 2008, certains d’entre nous serons reconnaissables à leurs polos Valtech.

Si vous ne pouvez pas vous joindre à nous à Toronto, n’hésitez pas à assister à la présentation de Gilles sur TDR dans nos locaux, lundi 28.




Formation Scrum chez Valtech les 17/18 janvier

Publié le 21/12/2007, par David Gageot dans Agile | Ajouter un commentaire

Valtech Training donne régulièrement des formations à la méthode Scrum. Toutes ces formations sont données par des coachs de Valtech qui interviennent sur de nombreux projets pour coacher et mettre en oeuvre Scrum.

La prochaine formation a lieu les 17 et 18 janvier à la Défense.

Au programme de la formation :

Pourquoi l’agilité ?
Comprendre les faiblesses des processus de développement classique
Le manifeste agile
Valeurs et principes des méthodes agiles

Présentation générale de Scrum
Scrum en tant que processus empirique
Fonctionnement des cycles de Scrum

Les rôles dans Scrum
Equipe de développement, Scrum Master et Product Owner
Droits et devoirs de l’équipe

Définir les besoins
Etablir la vision
L’itération zéro
Le Product Backlog

Gérer l’itération
Estimer et planifier l’itération
Construire et suivre l’itération Backlog
L’organisation en Features Teams
La rétrospective d’itération

La gestion de projet agile
Construire et gérer le Release Plan
Organiser l’espace de travail et la communication
La collaboration dans l’équipe

Le cycle de travail journalier
Le Scrum Meeting
Gérer l’affectation des tâches
Le développement piloté par les tests (TDD) et les exigences pilotées par les tests (TDR)

La relation avec le client
Proposer et évaluer les options
Négocier les changements
Evaluer le produit

Aspects avancés
Scrum en équipes multiples
Utilisation des principes Lean dans Scrum


Etre facilitateur: un métier d’avenir ?

Publié le 12/10/2007, par Romain Linsolas dans Agile | 6 Commentaires

Lors de mes activités de formateur ou de ScrumMaster, je suis amené à aider les participants à accoucher des réponses au sujet abordé. Dans certains cas, il s’agit de découvrir des solutions aux problèmes rencontrés dans les développements. Dans d’autres, les réponses sont connues, mais la démarche de les chercher aide les participants à se les approprier. Bref, j’agis comme un facilitateur, un modérateur comme on le disait avant.

Lire la suite »