Je suis disponible pour animer des formations sur la France (ou proche). En période de Covid, je peux aussi facilement donner les formations à distance.
En formations de prêtes et déjà rodées, j’ai une introduction à l’agilité, une formation sur l’agilité pour les devs et les pratiques Craft et une formation sur le refactoring de code legacy


Introduction à l’agilité

Comprendre la démarche agile

Le but est de comprendre la démarche agile, d’avoir un petit aperçu sur les grands principes et valeurs.
Appréhender les différentes méthodes associées à l’Agilité, en insistant plus sur Scrum et XP (eXtreme Programming)

  • manifeste agile (principes, valeurs)
  • différentes approches
  • specs / user stories
  • scrum : principes
  • scrum : rôles : PO, dev, SM
  • scrum : événements : planing, daily stand-up, revue, rétro
  • XP (principes, méthodes et pratiques principales, Tests)
  • Kanban

Pour qui : tout le monde, devs, managers, fonctions annexes …
2-4 jours

Peut être couplée avec une préparation à la Certification Professional Scrum Master de scrum.org
Enfin, si vous croyez qu’on peut devenir “master” après 3 jours de formations.


Software Crafstmanship

Code-Retreat, TDD, Clean code et autres pratiques d’eXtreme Programming

Le Software Crafstmanship, c’est l’artisanat logiciel. C’est faire du sur-mesure pour le client, en étant très attentif à la qualité. Et c’est aussi mentorer les débutants et énormément de pratiques d’apprentissage et de transfert de connaissance pour continuellement monter le niveau des équipes : “raise the bar”.

Explorer les pratiques d’XP (eXtreme Programming), de Software Craftsmanship et de l’agilité en tant que dev.
Appréhender le développement agile basé sur des techniques modernes : TDD, intégration continue, automatisation des tests.
Comprendre l’importance des tests dans la production de logiciels et le développement.
Repenser ses applications existantes par la mise en place de tests pour amélioration continue.
Sensibiliser à son rôle de membre d’une équipe agile.
Utiliser les tests pour faire émerger l’architecture de l’application.

Le programme dépend énormément des attentes et des connaissances des participant·e·s et va donc varier !

Voici un exemple de ce qu’il est possible de faire :

Jour 1 : Agilité, Tests, TDD

Aperçu rapide de l'Agilité
Les différents types de tests
Principe du TDD
Ecriture de User-stories
ATDD : écrire les tests d'acceptances avec le métier
Pair-programing

Jour 2 : Qualité, Clean-Code

Qualité, Dette Technique
Clean-Code
Principes SOLID
Architecture émergente 
Mocks

Jour 3 : Refactorer du code legacy, travailler dans une équipe

Qu'est ce que le code legacy ?
Écrire des tests sur du code legacy
Casser des dépendances, 
Refactorer
Repérer les Bad-Smells
Revue de code : Relire du code
Git, Jenkins, intégration continue,
Communication en Équipe

La formation comprend 75% d’exercices pratiques, en binôme. Elle nécessite donc d’avoir un PC pour 2 avec un environnement de dev fonctionnel.

Le langage utilisé importe peu : j’ai déjà donné cette formation à des équipes codant en Java, Kotlin, Scala, Ruby, Python, C++, Javascript, Typescript, PHP, ObjectiveC, Swift … Il est possible (et même conseillé !) de mélanger des devs utilisant technologies différentes dans une même formation.

Peut être couplé avec une préparation à la Certification Professional Scrum Developper de scrum.org


Refactoring de Code Legacy

Comment tester et refactorer du code existant ?

Notre métier consiste principalement à reprendre du code existant. Et c’est très souvent un numéro d’équilibriste redouté par les équipe de dev.
Le but de cette formation est de voir comment apréhender du code legacy pour le nettoyer et ajouter sans douleur une nouvelle fonctionnalité.

Qu’est-ce que le code legacy ?
Qu’est-ce que la dette technique, qu’est-ce que la qualité ?
Comment reconnaître et éviter les Bad smells et comment écrire du code propre ?

Clean-code :

Révéler l'intention : nommage, commentaires  
Variables, fonctions, classes, modules ...  
Typage  
Principes SOLID  
Conditionnel / polymorphisme  

Écrire des tests sur du code legacy

Isoler les dépendances et appels statiques pour pouvoir tester    
Golden-master test / approvals : générer des milliers de tests de non-régressions pour une boite noire  
Reflection  

Refactorer

Baby-step, itérations  
Refactoring automatique, raccourcis clavier de l'IDE  
Tests unitaires : tester unitairement et faire apparaitre des spécifications  

Redesign :

Injection de dépendances  
Ajouter des nouvelles fonctionnalités, TDD  

Il est préferable d’avoir suivit la formation Software Crafstmanship ou de connaître rapidement les principes des tests unitaires, TDD et clean-code.

La formation comprend 75% d’exercices pratiques, en binôme. Elle nécessite donc d’avoir un PC pour 2 avec un environnement de dev fonctionnel.

Le langage utilisé importe peu : j’ai déjà donné cette formation à des équipes codant en Java, Kotlin, Python, C++, Javascript, Typescript, PHP …


En préparation

Java

Kotlin

JUnit

Git