"while (!succeed=try())" Depuis que je suis indépendant, la formation représente environ un tiers de mon activité1. Et j’en profite pour tester pas mal de chose sur le format, la durée, le contenu, l’échange…

Pour l’agilité, les formations sont la plupart du temps un prélude à un processus d’accompagnement, donc fournir de la valeur en quelques jours qui sera réellement mis en œuvre sur le terrain, c’est assez facile. Puisque je serai là sur le terrain.

Mais voilà, si quand il s’agit d’agilité, les propositions d’accompagnement / conseil sont facilement acceptées, quand il s’agit de pratiques de développement, ça devient tout de suite plus compliqué. Il y a un je ne sais quoi dans l’inconscient collectif2 qui fait que l’on est persuadé qu’en deux jours de formation on peut acquérir suffisamment pour mettre efficacement en pratique dès le lendemain matin.

Ce qui est évidemment complètement faux. Et si les gens sortent ravis de ma formation “Clean Code”, trop souvent, il n’en font rien une fois que je suis parti. Pas qu’ils n’en ont pas envie, ni les moyens, tout simplement parce que démarrer quelque chose de nouveau c’est compliqué, changer l’existant encore plus. Et c’est bien dommage, parce que l’itératif incrémental, si on ne produit pas de la qualité, ça devient vite insoutenable. Adieu l’agilité.

Alors pour concilier tout ça, j’ai envie d’essayer un truc, condensant formation et accompagnement.

la formation les mains dedans3

Réunis dans une unique salle autour d’un unique poste de travail4, nous partirons dans l’optique de réaliser une vraie fonctionnalité5 en une semaine.

Bien sûr, ce développement n’est qu’un prétexte pour permettre de voir ensemble les étapes et techniques concrètes pour réaliser une telle tache dans l’environnement quotidien de l’équipe de dév. Pourront alors être abordés les problèmes de refactoring de code existant, les principes du design simple, la mise en place progressive des tests unitaires, …

Lorsque nécessaire, nous interromprons les développements pour faire des petits points ‘‘théoriques’’ immédiatement suivis de mise en pratique dans le code de l’application.

Pour que cela se passe au mieux, il faudra prévoir une journée préalable pour que je puisse prendre connaissance du fonctionnement de l’application et surtout de son code. Si le code est accessible, cela doit pouvoir se faire à distance6.

en bref

  • Objectif : partager les bonnes pratiques de développement et les techniques de survie dans du code legacy
  • durée : 5 jours + 1 jour de préparation préalable7
  • format :
    • une équipe8, une machine, un vidéoprojecteur, une salle
    • une vraie fonctionnalité à développer dans votre code à vous9
    • tous ensemble, avec des moments ‘‘théorie’’ quand c’est nécessaire
    • langage : java10
  • et comme c’est très expérimental, je ferai un prix pour les premières équipes à s’engager :)

Ça vous tente ? alors envoyez moi un petit message par e-mail à hello@crafting-labs.fr, via le formulaire de contact ou sur twitter @avernois


  1. les 2 tiers restants se partageant entre le développement et le conseil

  2. qui touche autant les développeurs que leurs managers. Peut être aussi le mien (et le tien)

  3. initialement mob training, ou formation mob-programing style

  4. avec un vidéoprojecteur pour projeter le code

  5. issue du backlog

  6. à voir

  7. peut être juste une demi journée, à voir

  8. max 7 personnes

  9. mais elle n’est que pretexte. L’objectif premier n’est pas de la réaliser.

  10. pour commencer, si le concept fonctionne bien, je pourrai l’étendre à d’autres langages orientés objet