Ma Premiere Formation
Petit article sur la création et la réalisation d’une formation d’une journée sur Flutter.
Une formation en une journée ?
Faire une formation prend du temps, il faut réfléchir à ce que l’on doit mettre jusqu’à quel point on peut rentrer dans un sujet.
Pour ma part, dans le cadre de mon travail à beNext, je devais réaliser une formation Flutter qui s’étendrait sur une journée.
Comment prévoit-on une formation sur un framework si complexe pour faire tenir tout un programme sur une seule journée.
Flutter en lui-même a énormément de concept à comprendre. Comme la programmation déclarative vs la programmation impérative…
J’ai d’abord essayé d’émettre un plan de formation, avec différents objectifs:
- Appréhender rapidement le développement avec le langage Dart
- Fondamentaux de Flutter
- Développer une application multiplateforme (iOS/Android)
- Tester une lib de Statemanagement
Il m’a fallu évaluer la difficulté des différents objectifs avec l’aide de mes collègues.
Je devais faire tenir tous ses petits objectifs en une journée. Il m’a fallu faire des choix.
J’ai sacrifié l’appréhension du langage Dart, et le test d’une lib de Statemanagement par un focus sur Flutter.
J’en suis arrivé à ce programme :
- Fondamentaux de Flutter
- Développer une application multiplateforme (iOS/Android)
C’est en prenant ces 2 objectifs que j’ai pu construire ma première formation sur Flutter, une introduction d’une journée.
Ma Formation : Introduction à Flutter
Que se passe-t-il dans cette formation ?
Durant 1 journée, nous passerons le matin et l’après-midi ensemble, à distance ou en télétravail, cette formation n’est pas attachée au lieu de réalisation de celle-ci.
Voici comment ce découpe la journée :
- IceBreaker
Utile pour connaitre l’ensemble des membres participants.
- Une Présentation
Durant cette présentation, je fais le tour du Framework avec un storytelling et une petite démonstration qui nous accompagne durant la présentation.
- Le Mob-Programming
Le meilleur moyen pour moi pour que tout le monde arrive à monter en compétence sur la techno en une journée est par la pratique. Durant ce mob-programming, nous réaliserons une petite application. Vous ne resterez pas inactif, chacun des participants doit coder quand vient leur tour. Les autres doivent aidé celui qui code en ayant la documentation du Framework à disposition. Vous n’êtes pas lâché seul durant cette partie. Je vous accompagne en encadrant la rotation de la personne qui code et je vous aide quand vous êtes bloqué, ou pour expliqué le fonctionnement de certains composants.
- Rétrospective de la journée
Ce dernier point est là pour voir ce que l’on a appris, aimer pratiquer et me faire des retours directs.
Dans la pratique : mini Rex
J’ai pu mettre en pratique cette journée de formation en télétravail, profitant qu’elle est encore fraiche dans ma tête, je vous fais part de mon retour d’expérience.
Le début de journée, c’est plutôt bien passer. L’Icebreaker était efficace pour nous aider à nous connaitre, comme nous allions passer la journée ensemble sauf pour la pause de midi.
La présentation est là pour introduire Flutter au participant. Ils m’ont remonté qu’à la fin de celle-ci, ils auraient aimé avoir une démo pour se servir correctement de la documentation.
Je n’y avais pas pensé, mais pour les prochaines fois, cela sera fait.
Pour le mob-programming, j’ai mis a disposition mon VS code avec LiveShare ainsi qu’un partage d’écrans pour leur montrer ce qui se passait sur mon appareil pour qu’ils aient un retour visuel grâce au Hot Reload.
J’ai mis en place un chrono de 5 min par personne pour coder chacun leur tour. Le fait d’avoir mis ce chrono les a maintenus concentrés ensemble sur le code. Nous avons fait face à quelque difficulté au démarrage.
J’ai voulu répondre favorablement à une demande du client qui était d’utiliser le mode nullsafety du Framework qui est encore en beta. Malheur m’en a pris, heureusement retourner vers la version stable nous a sauvés et nous avons pu reprendre la formation dans de meilleures conditions.
L’objectif du mob-programming était d’avoir une application de météo. J’ai fait le choix pour cette première de leurs laissés libre cours à leurs imaginations, ça leur à plus, mais ils auraient bien aimé avoir un cadre, par exemple des écrans avec les différents Widget qui leur saurait associé.
La finalité, c’est qu’ils ont réussi à faire une petite application de météo.
Elle ne paye pas de mine, mais l’effort pour la réaliser ensemble leur a plu, et ils en sont sortis avec un bon sentiment. C’est ce que je souhaitais, une formation qui soit agréable pour tout le monde. Pour eux, pour qu’ils grandissent ensemble, pour moi pour grandir dans ma connaissance.
Le projet de cette formation est disponible ici avec une version complète. Code source pour la formation vous trouverez la branche de cette première formation sur la branche formation_26012021
Sur la toute dernière heure, je leur ai montré une version exemple de ce qu’il est possible de réaliser en Dart et Flutter, avec un Statemanagement. Je retiens que faire ce genre de présentation en fin de journée après une grosse session de mob-programming n’est pas la meilleure des idées.
Conclusion
Pour conclure, faire une formation demande de l’énergie et de s’interroger, d’essayer de ce calibré au niveau des formés. Ce fut quelque chose de difficile pour moi, sans connaitre les participants, je ne pouvais qu’imaginer.
J’ai pris une décision assez radicale en ne leur montrant aucune base de Dart. Cela a du bon, ne pas montrer peux aidé a prouver que finalement, ne pas avoir les bases du langage n’empêche pas de produire quelque chose.
La montée en compétence est aisée, pour ceux qui se le demandent, aucun des participants n’avait une réelle expérience en Dart, mais tous étaient des développeurs confirmés sur leur domaine de prédilection.
Ensuite, je retiens qu’il est nécessaire pour ce type de formation de fournir un atelier pour se retrouver dans la documentation. Qu’il serait pratique d’avoir un exemple d’écrans avec des Widgets qui pourrait aider à les réaliser l’application.
Ce fut une bonne expérience, j’ai appris en étant complètement hors de ma zone de confort. C’est une expérience avec le recul, que je reproduirais volontiers.