Vous m’avez manqué ! 😊
Deux mois depuis le dernier post (je ne compte pas le post pour l’annonce du concours).
J’ai été (et suis toujours) totalement débordé ces derniers mois. J’ai aussi appris plein de choses concrètes que je pourrai vous raconter prochainement (c’est la première fois que je travaille à un tel niveau de scalabilité dans un projet) :)
Puisque je parle d’apprendre, quand on se lance dans le craftsmanship, et globalement dans les bonnes pratiques de développement, on a souvent l’impression d’avoir ouvert la boîte de Pandore.
Ce qui commençait par une forte curiosité de progresser se termine donc parfois en une énorme frustration devant notre incapacité notoire à appréhender toutes ces pratiques, à les comprendre, à les relier entre elles, sans parler d’ensuite arriver à les mettre en pratique !
J’aimerais vous énoncer dans ce post la façon dont moi je vois les choses sur ce parcours d’apprentissage, et ce que je vous conseille pour ne pas tomber dans un effet tunnel duquel vous ne ressortiriez pas tout à fait indemne 😬.
L’incroyable chance d’être développeur.se aujourd’hui
Quelle époque mes amis pour être développeur.se !
Jamais le point n’a autant été mis sur l’application des bonnes pratiques.
Quand j’ai commencé professionnellement le développement il y a 12 ans maintenant (ouch), les pratiques que l’on promeut aujourd’hui étaient déjà toutes connues. Mais elles souffraient d’un certain ésotérisme.
Comme s’il existait un cercle très fermé de personnes qui maîtrisaient ces pratiques, mais que ça existait juste théoriquement. En pratique, c’était toujours “fait pour les autres, par pour nous”.
Qu’est-ce qui a changé ?
Plein de chose, mais une en particulier, une qui tient en 4 lettres : DORA.
DORA, c’est le DevOps Research and Assessment.
Depuis 2014 (je crois, et même depuis 2011 via Puppet avant), elle est responsable chaque année du State Of DevOps Report.
Pour la faire très courte, c’est un sondage auprès d’entreprises de différentes tailles, dans différents endroits de la planète, sur les pratiques des équipes et les résultats qui en découlent.
Sans rentrer dans les détails, cela permet de mettre en évidence que les équipes les plus “performantes” sont capables de livrer plusieurs milliers de fois plus souvent que les équipes les moins performantes, en ajoutant moins de bugs, et en ayant une capacité à récupérer d’un incident plus rapidement.
Et tout ça mes amis, c’est scientifiquement documenté et résumé dans le livre Accelerate.
Magnifique ! Nous avons à disposition une étude qui prouve scientifiquement que l’application des bonnes pratiques est la meilleure solution que l’on connaisse actuellement pour produire vite, et bien.
Mais attention aux maux de tête…
Le piège de l’inaction devant la montagne de choses à apprendre
Dans le livre Accelerate est dressée une sorte de mind-map qui met en avant toutes les meilleures pratiques qui mène à ce qu’ils appellent un “Elite Developper”.
Attention, ça fait mal à la tête ! (Cliquez dessus pour la voir en grand sinon c’est illisible) :
Ça en fait des choses ! Et vous savez le plus drôle ? Ce n’est que le début !
Eh oui, chaque entrée à gauche de la mind-map est déjà une “fin” en soi, et plusieurs étapes sont nécessaires pour arriver à “valider” cette compétence.
Si l’on imagine qu’il existe plein de compétences encore plus à gauche de l’arbre, et qui se recoupent, c’est digne des meilleurs arbres de compétences des jeux vidéos, non ?
Et si on appliquait les pratiques Craft à l’apprentissage de ces pratiques ?
L’une des pratiques fondamentales, le Continuous Delivery, nous enseigne qu’il est très important d’avoir une feedback-loop le plus rapide possible, à tous les niveaux.
Le Continuous Delivery embarque quasiment toutes les compétences ci-dessus d’une façon ou d’une autre. Pour autant, comme l’intérêt principal est d’avoir un feedback rapide, il serait totalement contre-productif, voire totalement impossible, d’apprendre toutes les pratiques avant de commencer à mettre en place un premier cycle de feedback !
Eh bien je suis convaincu qu’il faut faire exactement la même chose pour l’apprentissage de ces pratiques.
Il faut encadrer son apprentissage des pratiques d’un point de vue “end-to-end”.
Se faisant, on va toucher à presque toutes les compétences verticalement parlant (un petit peu de git, de continuous integration, de testing, de modularité, d’abstraction, de définition d’exemples de critère d’acceptation, etc.)
On touche à toute la chaîne, mais sans chercher à aller plus loin “horizontalement”, en profondeur dans la compétence.
Quand on commence à “souffrir”, parce que notre code devient pas assez modulable, ou que l’on commence à avoir du mal à tester certaines parties, ou encore que l’on remarque des difficultés à comprendre où doit aller tel ou tel code, alors c’est le signe qu’il faut avancer d’un cran horizontalement dans l’apprentissage, mais pas forcément avant ! Sous peine d’entrer dans l’effet tunnel !
C’est comme la progression de la difficulté dans un jeu vidéo finalement ! Si celle-ci est bien faite, elle vous poussera à gagner des niveaux d’expériences de temps en temps avant de pouvoir affronter des boss plus puissants.
Ça ne viendrait jamais à l’idée d’un joueur de faire monter un Roucool au niveau 100 en restant à Bourg Palette !
Eh bien pour le développement logiciel, les pratiques craft, c’est la même chose, la ligue est très loin, et le plus passionnant c’est tout le voyage pour y arriver ;)
C’est cette méthodologie que je souhaite appliquer à mon futur cursus Craft Academy :)
J’ai plein d’idées pour aller dans le sens d’une montée en compétence progressive, tout en ayant à chaque étape des compétences concrètes et utilisables en entreprise :) Avec pourquoi pas de la gamification intelligente pour aller dans le sens de “gain d’expérience”.
Si cette approche vous plaît, n’hésitez pas à me répondre en commentaire ! Ça me motivera toujours plus :)
En attendant, Happy Coding !
Pierre.
L'approche me semble super intéressante et me parle, hâte de voir ça se mettre en place!
Hello Pierre, merci pour ce post ! L'approche "gamifiée" me semble intéressante, hâte de tester