Formation technique chez ASOS
L'un des nombreux avantages de travailler chez ASOS Tech
Un avantage intéressant dont bénéficient les ingénieurs d'ASOS est la formation technique gratuite. Nous livrons des sessions mensuelles dans Docker, Kubernetes, AKS et CI/CD. Nous proposons également des cours de "software crafters", des "lightning talks" et des cours de design patterns.
Il y a une incroyable concentration de grands ingénieurs chez ASOS, avec une grande variété d'expertises, qui sont désireux de partager leurs connaissances. Le programme de formation grandit et évolue, et c'est excitant d'en faire partie.
Eh bien… comment suis-je arrivé ici ?
Je suis un programmeur autodidacte qui a commencé à coder à la fin des années 1980 à San Francisco, tout en étudiant la musique à l'université. Depuis lors, j'ai maintenu deux carrières, travaillant professionnellement en tant qu'ingénieur logiciel et musicien.
J'ai appris .NET au milieu des années 2000, j'ai déménagé à Londres en 2008 et j'ai occupé des postes permanents et contractuels, principalement en back-end avec Microsoft tech (C #, .NET), mais aussi en front-end avec ASP.NET / MVC , Réagir et angulaire.
Début 2020, je suis devenu ingénieur logiciel senior pour ASOS, travaillant dans l'équipe Browse sur des microservices tels que les API de recherche et de catégorie.
Comme de nombreuses équipes chez ASOS, à cette époque, nous étions en train de migrer les services Azure Cloud classiques vers Kubernetes et AKS, mais l'équipe Browse était à l'avant-garde. J'ai réalisé que j'avais besoin d'en savoir plus sur cette pile technologique, j'ai donc profité des cours de formation technique internes gratuits proposés.
Puis la pandémie s'est produite. Le programme de formation a un peu faibli, puis nous avons commencé à enseigner des sessions en ligne sur MS Teams. Un appel a été lancé pour plus de bénévoles pour enseigner. Je pensais que m'impliquer dans l'enseignement serait un bon moyen de me forcer à étudier ces technologies plus en profondeur, dans le but d'être plus efficace dans mon travail quotidien.
Le parcours d'apprentissage typique des étudiants consiste à suivre d'abord le cours; puis « shadow train » (voir comment se fait l'enseignement, apprendre des leaders) ; puis, avec un peu de formation et de préparation, devenez formateur principal. J'ai commencé à faire ça avec quelques sujets (principalement Docker et Kubernetes), j'ai trouvé que ça me plaisait vraiment et je suis devenu très actif dans le programme de formation.
ASOS Tech encourage activement les gens à devenir formateurs - pour encadrer d'autres ingénieurs, ainsi que pour le développement personnel - mais naturellement, c'est aussi dans l'intérêt de l'entreprise. Avoir une équipe d'ingénieurs mieux formés aide ASOS Tech à fournir des logiciels de qualité plus efficacement.
Nous allons avoir besoin d'une application plus grande
Au début, le bit d'administration était entièrement manuel; nous gardions une trace des sessions et des stagiaires sur une page wiki dans Confluence. J'ai pensé "Cela réclame une application". Ainsi, pendant mon temps libre, j'ai construit un site Web interne complet avec un front-end React, un back-end .NET Core et une base de données SQL avec Entity Framework. J'ai manuellement migré les données de la page wiki vers la base de données, je les ai mises sous une forme suffisamment bonne pour la démonstration, et j'ai ainsi créé le MVP de l'application "Training Course Manager" ("TCM").
Un autre aspect intéressant d'ASOS est que les projets internes sont très encouragés. J'étais donc plutôt ravi lorsque TCM a été adopté et accepté par l'équipe. Avec un peu d'aide des ingénieurs principaux et des responsables de l'infrastructure, nous l'avons conteneurisé, avons écrit les pipelines DevOps et les chartes Helm, et l'avons déployé sur AKS. Comme tous les logiciels, c'est toujours un travail en cours, mais ce fut un jour heureux pour moi lorsque TCM a été mis en ligne !
Dave obtient le concert
Puis, au début de 2022, j'ai appris qu'ASOS créait un rôle officiel de "formateur d'ingénierie". J'ai pensé que ce serait une excellente occasion de poursuivre le travail que je faisais auparavant pendant mon temps libre.
Une partie de l'entretien consistait à donner une mini-session de cours de formation ; J'en avais déjà fait tellement que je me sentais assez à l'aise pour donner une petite session Docker. Entre cela et la présentation de l'application que j'avais créée, ainsi que mon enthousiasme général et quelques idées que j'avais pour étendre le programme, j'étais ravi qu'ASOS sente que j'avais ce qu'il fallait pour être le formateur en ingénierie.
Cela fait presque un an maintenant, et j'apprécie vraiment le rôle et le défi de créer un programme de formation technique de classe mondiale. J'ai essayé d'appliquer quelques idées simples à mon travail dans ce rôle :
- Traitez la formation comme un code de production, en mettant l'accent sur la haute qualité.
- Améliorer continuellement la prestation de formation et le matériel de formation.
- Rendre les choses plus cohérentes pour une maintenance plus facile.
- Améliorez l'automatisation de l'administration et améliorez continuellement l'application.
- Laissez les stagiaires "apprendre en faisant" - les laboratoires pratiques sont la meilleure façon d'apprendre.
Le matériel a été initialement développé par ASOS en collaboration avec des partenaires externes Microsoft et Codurance. Depuis cette époque, la technologie a évolué, et nos modes de livraison aussi. Le matériel était bon, mais il devait être adapté à l'apprentissage en ligne. De plus, certains d'entre eux se lisaient comme s'ils avaient été écrits par un comité, et certains devenaient juste un peu obsolètes ou obsolètes, donc une grande partie de la première année a simplement consisté à ranger le matériel et à éditer des exercices de laboratoire, des diapositives et des notes de conférencier. .
Le matériel est une combinaison de présentations PowerPoint, de démonstrations et de travaux pratiques. Nous évaluons en permanence si le matériel est toujours d'actualité, nous mettons à jour les versions des logiciels utilisés dans la formation et nous nous assurons que le matériel est conforme à nos meilleures pratiques actuelles. Nous traitons tout ce matériel comme du code de production, nous le conservons donc dans GitHub et effectuons des demandes d'extraction lorsque quelque chose change. En règle générale, nous faisons une demande d'extraction après avoir livré une session, car c'est à ce moment-là que les choses qui doivent changer sont fraîches dans nos esprits.
Rendre les choses cohérentes
Un aspect important pour faciliter la maintenance consiste à établir des normes sur la façon dont le matériel de cours est structuré, quelle que soit la matière enseignée. Un répertoire de matériel de cours typique contiendra un fichier de démarquage du plan du formateur (montrant l'ordre du jour d'un cours d'un ou deux jours); un fichier de liens utiles (contenant des hyperliens vers d'autres lectures pertinentes sur les sujets); les dossiers « labs » et « demos » contenant les exercices pratiques de laboratoire et les scripts de démonstration ; un répertoire "slides" contenant des fichiers Markdown qui représentent le matériel source des diapositives ; et un répertoire "diapositives publiées" contenant la sortie PPTX.
C'est comme de la magie
Il est difficile de voir les différences lors de la modification d'un fichier PowerPoint. En d'autres termes, lorsque quelque chose change et que vous essayez d'examiner la demande d'extraction, il est impossible de voir à quoi ressemblaient la diapositive PowerPoint ou les notes du présentateur auparavant, par rapport à ce à quoi elles ressemblent maintenant.
Pour résoudre ce problème, nous avons décidé que nous avions besoin d'une solution textuelle à partir de laquelle nous pourrions générer automatiquement les fichiers PPTX. Il existe un certain nombre de solutions à ce problème (par exemple, nous avons également essayé Reveal.js) ; mais nous avons fini par choisir Marp . Il vous permet d'éditer des fichiers .md qui sont un mélange de démarquage, HTML et CSS. Les notes du présentateur sont rédigées sous forme de commentaires HTML. CSS fait ressembler les jeux aux jeux de diapositives ASOS standard.
Nous sommes toujours présents dans PowerPoint (partage dans Microsoft Teams). Lors du développement local du deck, vous pouvez exporter manuellement vers PPTX, mais nous l'automatisons avec une action GitHub - lors de la fusion, les commandes Marp génèrent automatiquement les fichiers PPTX. Nous avons également un autre ensemble d'actions GitHub pour publier une "version" - ainsi, lorsqu'un étudiant suit le cours Docker par exemple, il n'a pas besoin de cloner l'intégralité du référentiel de matériel de formation ; la version est publiée sous la forme d'un fichier zip qui contient le dernier matériel de cours.
Montez au labo
Les stagiaires effectuent des exercices pratiques en laboratoire, qui nécessitent une maintenance et une mise à jour régulières. Par exemple, les versions de Docker et Kubernetes changent ; Microsoft change la façon dont il gère l'identité dans AKS ; les politiques de licence changent, etc. Et nous changeons notre façon de faire à mesure que nos équipes principales AKS et Kubernetes développent de nouveaux artefacts, modèles et améliorent nos meilleures pratiques. Par exemple, ils ont établi des « images de base de conteneurs de base » qui peuvent être utilisées pour des applications sur Azure Kubernetes Service, Azure App Services ou d'autres applications basées sur des conteneurs. Toutes ces choses nécessitent d'exécuter régulièrement les exercices de laboratoire nous-mêmes, pour s'assurer qu'ils sont toujours d'actualité.
Automatique pour le peuple
Nous cherchons toujours des moyens d'améliorer et d'automatiser la façon dont nous administrons les cours, pour faciliter la vie des formateurs et des stagiaires. Par exemple, l'application maintient une liste d'attente des personnes intéressées à suivre un cours, et lorsqu'une session est en cours, l'administrateur peut envoyer un e-mail à toutes les personnes sur la liste d'attente en cliquant sur un bouton. Un autre clic crée l'événement de calendrier Outlook et le canal Teams qui seront utilisés pour diffuser la session. L'application connaît les prérequis, par exemple, elle vérifie que vous avez déjà suivi le cours Docker avant de pouvoir rejoindre une session Kubernetes.
But!
En fin de compte, l'objectif est d'aider les ingénieurs à travers un programme de formation technique rigoureux, mais aussi amusant, afin qu'ils se sentent plus confiants dans leur connaissance de notre pile technologique et aient une meilleure compréhension et appréciation de l'art de créer de grands logiciels. Idéalement, cela devient un cercle vertueux, car ils continuent à partager ces connaissances avec leurs collègues ingénieurs. En fin de compte, nous voulons une culture qui se propage naturellement parce que les gens sont passionnés par la qualité.
À la recherche de quelques bons entraîneurs
Ce ne sont pas que des licornes et des arcs-en-ciel. L'un des défis sur lesquels nous travaillons est d'élargir notre équipe de formateurs. Car (à part moi, dont le métier est de dispenser la formation), pour mes collègues formateurs, c'est essentiellement volontaire. Il y a généralement un noyau d'ingénieurs principaux, principaux et principaux qui suivent une formation parce qu'ils le souhaitent ; mais la réalité est que nous avons besoin de plus de formateurs. Pourquoi quelqu'un devrait-il s'absenter pour dispenser une formation alors qu'il a une journée de travail bien remplie à fournir un excellent logiciel de production pour ASOS ? Chaque mois, j'ai besoin que quatre ou cinq formateurs s'associent à moi pour dispenser les cours requis. Comment attirer durablement les personnes dont j'ai besoin ?
Ce n'est pas seulement une chose ASOS; l'industrie dans son ensemble a parfois du mal à encourager les ingénieurs à occuper des postes. Il peut y avoir un manque de capacité, de temps et de ressources, ou un défi pour aligner les besoins et les exigences de l'entreprise sur les aspirations professionnelles individuelles.
Nous essayons de faire d'ASOS un lieu de travail plus inclusif et cela commence par le plus haut - nous cherchons à recruter en interne des formateurs techniques de tous horizons, en termes de neurodiversité, de genre, d'ethnicité et de sexualité.
ASOS s'est engagé en faveur de la diversité, de l'équité et de l'inclusion avec le lancement de la stratégie FWI ("Fashion with Integrity") - "Be Diverse". Nos objectifs initiaux visent à atteindre une représentation de 50 % de femmes et de plus de 15 % de minorités ethniques dans notre équipe de direction combinée d'ici 2023, et à tous les niveaux de direction d'ici 2030. Nous visons à avoir plus de 40 % de représentation féminine dans l'ingénierie, les produits et la science (technologie ) rôles d'ici 2030. Pour en savoir plus, rendez-vous surhttps://www.asosplc.com/news/asos-announces-ambitious-new-2030-esg-goals/
Tu dois croire
Alors, pourquoi les gens hésitent-ils à devenir formateur ? Peut-être manquent-ils de confiance en eux, ou pensent-ils qu'ils doivent maîtriser la matière pour devenir formateurs.
Ce n'est pas vraiment vrai. Nous voulons des formateurs bien préparés et compétents, mais vous n'avez pas besoin d'être le meilleur expert mondial. Nous avons des formateurs en herbe jumelés avec d'autres formateurs expérimentés, donc pour un cours donné, vous ne présentez que la moitié du matériel. Vous devez être capable de lire les notes du conférencier et vous devez vous familiariser avec le sujet et le matériel. Et vous devriez passer par les exercices de laboratoire, afin qu'ils soient frais dans votre esprit.
Mais si vous recevez une question dont vous ne connaissez pas la réponse, vous n'avez pas à vous sentir gêné ; personne ne sait tout. Vous pouvez simplement dire que vous ne savez pas; vous l'examinerez et reviendrez vers le stagiaire ; ensuite, faites un suivi et faites-le, idéalement avant la fin du cours. Cela vous apprendra à tous les deux quelque chose que vous ne saviez pas. L'élève vous respectera (espérons-le !) pour avoir admis que vous ne le saviez pas, mais il a ensuite suivi ; et, après avoir appris quelque chose à la dure, à la fin, c'est quelque chose que vous n'êtes pas près d'oublier !
Offrir une formation technique est également idéal pour acquérir de l'expérience dans la prise de parole en public, acquérir plus de confiance en soi, encadrer les autres et acquérir une compréhension plus approfondie du sujet; tout cela ne peut que vous aider dans votre travail quotidien et votre carrière en général. Et nous ne recherchons pas seulement des seniors et plus ; les ingénieurs de niveau intermédiaire sont également encouragés à devenir formateurs.
Jeu sur!
Nous recherchons des moyens de résoudre notre problème d'approvisionnement en formateurs, par exemple "game-ify" l'application, créer des tableaux de classement pour les individus et les équipes et donner des cadeaux gratuits (repas gratuits, café, t-shirts, tasses, etc.). Mais ce n'est pas encore vraiment suffisant. Nous collaborons également avec des ingénieurs et des responsables de l'ingénierie pour créer des incitations plus tangibles afin de garantir que le programme de formation dispose d'un approvisionnement régulier en formateurs. Jusqu'à présent, le programme a bien fonctionné avec notre groupe de base dédié, mais nous devons élargir l'équipe de formation - et nous travaillons activement sur ce problème. Surveillez cet endroit.
Autres questions et défis
Le fait est qu'il est tout simplement difficile de développer un cours de formation de haute qualité. Nous l'avons appris en essayant de ressusciter notre cours de « créateurs de logiciels », qui a perdu de son élan pendant la pandémie. Qu'incluez-vous et qu'est-ce que vous laissez de côté ? Comment structurez-vous le matériel en morceaux de la taille d'une bouchée, peut-être avec un bref exposé et un exercice de laboratoire plus long, un kata ou un exercice de programmation en binôme ? Les gens ont différents styles d'apprentissage; comment les hébergez-vous ? Comment conciliez-vous des opinions divergentes sur ce qui constitue une bonne pratique pour le TDD, par exemple ? Comment gardez-vous les connaissances des gens à jour, les continuez-vous à pratiquer après avoir quitté le cours et empêchez-vous que le matériel ne devienne obsolète ? Nous travaillons avec nos partenaires et examinons également des exemples concrets de programmes de formation et d'applications d'apprentissage réussis,
conclusion
Je me suis lancé dans l'enseignement parce que je voulais apprendre — donc je gagne définitivement à cet égard. Chaque jour apporte de nouveaux défis et de nouvelles opportunités pour améliorer les choses. C'est juste un problème vraiment intéressant, trouver comment développer un programme de formation de classe mondiale pour une organisation aussi sophistiquée qu'ASOS Tech, avec un public exigeant d'ingénieurs déjà hautement qualifiés. Je me sens très chanceux d'avoir cette opportunité d'essayer d'aider mes collègues ingénieurs à améliorer leurs compétences et à faire encore mieux un endroit où il fait bon travailler.
PS - voir également un autre article du blog ASOS Tech sur la formation technique , de l'année dernière qui se concentre sur les aspects pratiques du lancement d'un programme de formation.
Je suis Dave Barrows, formateur en ingénierie pour ASOS Tech. J'anime des cours de formation sur Docker, Kubernetes, AKS, DevOps et l'art d'écrire du code et de créer des logiciels. Je suis également musicien et producteur avec mon propre label indépendant et home studio ; Je joue régulièrement à Londres et ailleurs.
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































