Formación técnica en ASOS
Uno de los muchos beneficios de trabajar en ASOS Tech

Un buen beneficio disponible para los ingenieros de ASOS es la capacitación técnica gratuita. Entregamos sesiones mensuales en Docker, Kubernetes, AKS y CI/CD. También ofrecemos cursos de “fabricantes de software”, “charlas relámpago” y cursos de patrones de diseño.
Hay una increíble concentración de grandes ingenieros en ASOS, con una amplia variedad de conocimientos, que están ansiosos por compartir sus conocimientos. El programa de capacitación está creciendo y evolucionando, y es emocionante ser parte de él.
Bueno… ¿cómo llegué aquí?
Soy un programador autodidacta que comenzó a programar a fines de la década de 1980 en San Francisco, mientras estudiaba música en la universidad. Desde entonces he mantenido dos carreras, trabajando profesionalmente como ingeniero de software y músico.
Aprendí .NET a mediados de la década de 2000, me mudé a Londres en 2008 y trabajé en roles permanentes y por contrato, principalmente haciendo trabajo de back-end con tecnología de Microsoft (C #, .NET), pero también front-end con ASP.NET / MVC , Reaccionar y Angular.
A principios de 2020 me convertí en ingeniero de software sénior para ASOS y trabajé en el equipo de exploración en microservicios como las API de búsqueda y categoría.
Al igual que muchos equipos en ASOS, en ese momento estábamos migrando los servicios clásicos de Azure Cloud a Kubernetes y AKS, pero el equipo de Browse estaba a la vanguardia. Me di cuenta de que necesitaba aprender más sobre esta pila tecnológica, así que aproveché los cursos gratuitos de capacitación tecnológica internos que se ofrecen.
Luego pasó la pandemia. El programa de capacitación se tambaleó un poco, luego comenzamos a impartir sesiones en línea a través de MS Teams. Se hizo un llamado para que más voluntarios enseñen. Involucrarme en la enseñanza, pensé, sería una buena manera de obligarme a estudiar estas tecnologías más a fondo, con miras a ser más eficaz en mi trabajo diario.
El camino de aprendizaje típico para los estudiantes es primero tomar el curso; luego “tren de sombra” (ver cómo se hace la enseñanza, aprender de los conductores); luego, con algo de capacitación y preparación, conviértase en un capacitador principal. Empecé a hacer eso con un par de temas (principalmente Docker y Kubernetes), descubrí que realmente lo disfrutaba y me volví muy activo en el programa de capacitación.
ASOS Tech anima activamente a las personas a que se conviertan en formadores, para guiar a otros ingenieros, así como para el desarrollo personal, pero, naturalmente, también es del interés de la empresa. Contar con un equipo de ingenieros mejor capacitado ayuda a ASOS Tech a ofrecer un excelente software de manera más efectiva.

Vamos a necesitar una aplicación más grande
Al principio, el bit de administración era todo manual; hacíamos un seguimiento de las sesiones y los alumnos en una página wiki en Confluence. Pensé “Esto pide a gritos una aplicación”. Entonces, en mi tiempo libre, construí un sitio web interno completo con un front-end React, un back-end .NET Core y una base de datos SQL con Entity Framework. Migré manualmente los datos de la página wiki a la base de datos, los puse en una forma lo suficientemente buena para la demostración y, por lo tanto, construí el MVP de la aplicación "Training Course Manager" ("TCM").
Otro aspecto interesante de ASOS es que se fomentan mucho los proyectos de fuentes internas. Así que me emocioné bastante cuando el equipo adoptó y aceptó la TCM. Con un poco de ayuda de los ingenieros principales y del personal de infraestructura, lo colocamos en contenedores, escribimos las canalizaciones de DevOps y los gráficos de Helm, y lo implementamos en AKS. Como todo software, sigue siendo eternamente un trabajo en progreso, ¡pero fue un día feliz para mí cuando TCM se puso en marcha!

dave consigue el concierto
Luego, a principios de 2022, supe que ASOS estaba creando un rol oficial de "Instructor de ingeniería". Pensé que sería una gran oportunidad para continuar con el trabajo que había estado haciendo anteriormente en mi tiempo libre.
Parte de la entrevista fue la entrega de una sesión de un mini curso de capacitación; Ya había hecho mucho de eso, me sentí bastante cómodo brindando una pequeña sesión de Docker. Entre eso y mostrar la aplicación que había creado, así como mi entusiasmo general y algunas ideas que tenía para expandir el programa, me complació que ASOS sintiera que tenía lo que se necesita para ser el entrenador de ingeniería.
Ya ha pasado casi un año y realmente estoy disfrutando el papel y el desafío de crear un programa de capacitación tecnológica de clase mundial. He tratado de aplicar algunas ideas simples a mi trabajo en este rol:
- Trate la capacitación como un código de producción, con énfasis en la alta calidad.
- Mejorar continuamente la entrega de capacitación y el material de capacitación.
- Haga las cosas más consistentes para facilitar el mantenimiento.
- Mejore la automatización de la administración y mejore continuamente la aplicación.
- Deje que los alumnos "aprendan haciendo": los laboratorios prácticos son la mejor manera de aprender.

El material fue desarrollado originalmente por ASOS junto con socios externos Microsoft y Codurance. Desde aquellos días, la tecnología ha avanzado y nuestras formas de entrega también lo han hecho. El material era bueno, pero había que adaptarlo al aprendizaje en línea. Además, algunos de ellos parecían haber sido escritos por un comité, y otros simplemente estaban un poco desactualizados o obsoletos, por lo que una gran parte del primer año ha consistido en ordenar el material y editar ejercicios de laboratorio, diapositivas y notas del orador. .
El material es una combinación de presentaciones de PowerPoint, demostraciones y laboratorios prácticos. Evaluamos continuamente si el material aún está actualizado, actualizamos las versiones del software utilizado en la capacitación y nos aseguramos de que el material esté en línea con nuestras mejores prácticas actuales. Tratamos todo este material como código de producción, por lo que lo mantenemos en GitHub y hacemos solicitudes de extracción cuando algo cambia. Por lo general, hacemos una solicitud de extracción después de haber entregado una sesión porque es cuando las cosas que deben cambiar están frescas en nuestras mentes.
Haz las cosas consistentes
Un aspecto importante para facilitar el mantenimiento es establecer estándares sobre cómo se estructura el material del curso, independientemente de la materia que se imparta. Un directorio de material de curso típico contendrá un archivo de rebajas del plan del instructor (que muestra la agenda para un curso de uno o dos días); un archivo de vínculos útiles (que contiene hipervínculos a lecturas adicionales pertinentes sobre los temas); carpetas "labs" y "demos" que contienen los ejercicios prácticos de laboratorio y los guiones de demostración; un directorio de "diapositivas" que contiene archivos de rebajas que representan el material de origen para las cubiertas de diapositivas; y un directorio de "diapositivas publicadas" que contiene la salida PPTX.

es como magia
Es difícil ver las diferencias al cambiar un archivo de PowerPoint. En otras palabras, cuando algo cambia y está tratando de revisar la solicitud de extracción, es imposible ver cómo se veían antes la diapositiva de PowerPoint o las notas del orador, en comparación con cómo se ven ahora.
Para resolver este problema, decidimos que necesitábamos una solución basada en texto a partir de la cual pudiéramos generar automáticamente los archivos PPTX. Hay una serie de soluciones para esto (por ejemplo, también hemos probado Reveal.js); pero acabamos eligiendo Marp . Le permite editar archivos .md que son una combinación de Markdown, HTML y CSS. Las notas del orador se escriben como comentarios HTML. CSS hace que las cubiertas se vean como cubiertas de diapositivas estándar de ASOS.
Todavía presentamos en PowerPoint (compartir en Microsoft Teams). Al desarrollar el mazo localmente, puede exportar manualmente a PPTX, pero lo automatizamos con una acción de GitHub: al fusionarse, los comandos de Marp generan automáticamente los archivos PPTX. También tenemos otro conjunto de GitHub Actions para publicar un "lanzamiento", por lo que cuando un estudiante está tomando el curso de Docker, por ejemplo, no necesita clonar todo el repositorio de material de capacitación; el comunicado se publica en forma de archivo zip que contiene el material del curso más reciente.

Ven al laboratorio
Los alumnos realizan ejercicios de laboratorio prácticos, que requieren un mantenimiento y una actualización regulares. Por ejemplo, las versiones de Docker y Kubernetes cambian; Microsoft cambia la forma en que maneja la identidad en AKS; cambian las políticas de licencias, etc. Y cambiamos la forma en que hacemos las cosas a medida que nuestros equipos centrales de AKS y Kubernetes desarrollan nuevos artefactos, plantillas y mejoran nuestras prácticas recomendadas. Por ejemplo, han establecido "imágenes base de contenedores centrales" que se pueden usar para aplicaciones en Azure Kubernetes Service, Azure App Services u otras aplicaciones basadas en contenedores. Todas estas cosas requieren que nosotros mismos realicemos regularmente los ejercicios de laboratorio, para garantizar que aún estén actualizados.
Automático para la gente
Siempre estamos buscando formas de mejorar y automatizar la forma en que administramos los cursos, para hacer la vida más fácil tanto para los capacitadores como para los aprendices. Por ejemplo, la aplicación mantiene una lista de espera de personas interesadas en tomar un curso y, cuando se ejecuta una sesión, el administrador puede enviar un correo electrónico a todos los que están en la lista de espera con solo hacer clic en un botón. Otro clic crea el evento del calendario de Outlook y el canal de Teams que se usará para entregar la sesión. La aplicación conoce los requisitos previos, por ejemplo, verifica que ya haya realizado el curso de Docker antes de poder unirse a una sesión de Kubernetes.

¡Meta!
Al final, el objetivo es ayudar a los ingenieros a través de un programa de capacitación tecnológica que sea riguroso, pero también divertido, para que cuando salgan del otro lado se sientan más seguros de su conocimiento de nuestra pila tecnológica y tengan una mayor comprensión y apreciación de el oficio de construir un gran software. Idealmente, se convierte en un círculo virtuoso, ya que comparten ese conocimiento con sus compañeros ingenieros. En última instancia, queremos una cultura que se propague de forma natural porque a las personas les apasiona la calidad.
Buscando algunos buenos entrenadores
No todo son unicornios y arcoíris. Uno de los retos en los que estamos trabajando es ampliar nuestro equipo de formadores. Porque (aparte de mí, cuyo trabajo es impartir formación), para mis compañeros formadores, es esencialmente voluntario. Suele haber un grupo central de ingenieros principales, líderes y sénior dedicados que realizan capacitación porque así lo desean; pero la realidad es que necesitamos más entrenadores. ¿Por qué alguien debería tomarse un tiempo libre para impartir formación cuando tiene un día de trabajo ajetreado entregando un excelente software de producción para ASOS? Todos los meses necesito cuatro o cinco capacitadores que se asocien conmigo para impartir los cursos requeridos. ¿Cómo obtengo a las personas que necesito de manera sostenible?
No es solo una cosa de ASOS; la industria en su conjunto a veces tiene dificultades para alentar a los ingenieros a asumir roles. Puede haber una falta de capacidad, tiempo y recursos, o un desafío para alinear las necesidades y los requisitos de la empresa con las aspiraciones profesionales individuales.
Estamos tratando de hacer de ASOS un lugar de trabajo más inclusivo y eso comienza desde arriba: buscamos reclutar capacitadores tecnológicos internamente de todos los orígenes, en términos de neurodiversidad, género, etnia y sexualidad.

ASOS se ha comprometido con la diversidad, la equidad y la inclusión con el lanzamiento de la estrategia FWI ("Moda con integridad"): "Be Diverse". Nuestros objetivos iniciales se centran en lograr un 50 % de representación femenina y más del 15 % de minorías étnicas en todo nuestro equipo de liderazgo combinado para 2023, y en todos los niveles de liderazgo para 2030. Nuestro objetivo es tener más del 40 % de representación femenina en ingeniería, productos y ciencia (tecnología). ) para 2030. Obtenga más información enhttps://www.asosplc.com/news/asos-announces-ambitious-new-2030-esg-goals/
tienes que creer
Entonces, ¿por qué la gente duda en convertirse en entrenador? Tal vez les falte confianza, o tal vez crean que necesitan dominar el material para convertirse en entrenadores.
Eso no es realmente cierto. Queremos entrenadores bien preparados y bien informados, pero no es necesario que seas el principal experto del mundo. Tenemos aspirantes a formadores emparejados con otros formadores experimentados, por lo que para un curso determinado solo presenta la mitad del material. Debe poder leer las notas del orador y debe familiarizarse con el tema y el material. Y debe realizar los ejercicios de laboratorio, para que estén frescos en su mente.
Pero si te hacen una pregunta cuya respuesta no sabes, no tienes que sentirte avergonzado por ello; nadie lo sabe todo. Simplemente puede decir que no sabe; lo investigará y se comunicará con el aprendiz; luego, haga un seguimiento y hágalo, idealmente antes de que termine el curso. Eso les enseñará a ambos algo que no sabían. El estudiante (¡con suerte!) te respetará por admitir que no sabías, pero luego hará un seguimiento; y, habiendo aprendido algo de la manera difícil, al final, ¡es algo que es poco probable que olvides!
Brindar capacitación técnica también es excelente para obtener experiencia en hablar en público, ganar más confianza y confianza en uno mismo, asesorar a otros y obtener una comprensión más profunda del tema; todo lo cual solo puede ayudarlo en su trabajo diario y en su carrera en general. Y no solo estamos buscando personas mayores y superiores; También se anima a los ingenieros de nivel medio a convertirse en formadores.
¡Juego encendido!
Estamos buscando formas de abordar nuestro problema de suministro de entrenadores, por ejemplo, "game-ify" la aplicación, crear tablas de clasificación para individuos y equipos y dar botín gratis (almuerzos gratis, café, camisetas, tazas, etc.). Pero eso todavía no es suficiente. También estamos trabajando con ingenieros y gerentes de ingeniería para crear incentivos más tangibles para garantizar que el programa de capacitación tenga un suministro constante de capacitadores. Hasta ahora, el programa ha funcionado bien con nuestro grupo central dedicado, pero necesitamos expandir el equipo de capacitación, y estamos trabajando activamente en ese problema. Mira este espacio.

Otras preguntas y desafíos
El hecho es que es difícil desarrollar un curso de capacitación de alta calidad. Hemos aprendido esto al tratar de resucitar nuestro curso de "fabricantes de software", que perdió algo de impulso durante la pandemia. ¿Qué incluyes y qué dejas fuera? ¿Cómo estructura el material en fragmentos del tamaño de un bocado, tal vez con una breve charla y un ejercicio de laboratorio más largo, kata o ejercicio de programación en pareja? Las personas tienen diferentes estilos de aprendizaje; como los acomodas? ¿Cómo concilia las diferentes opiniones sobre lo que constituye una buena práctica para TDD, por ejemplo? ¿Cómo mantiene actualizado el conocimiento de las personas, los mantiene practicando después de que han dejado el curso y evita que el material se vuelva obsoleto? Estamos trabajando con nuestros socios y también analizamos ejemplos del mundo real de programas de capacitación y aplicaciones de aprendizaje exitosos.

Conclusiones
Empecé a enseñar porque quería aprender, así que definitivamente estoy ganando en ese aspecto. Cada día trae nuevos desafíos y oportunidades para mejorar las cosas. Es simplemente un problema realmente interesante, averiguar cómo desarrollar un programa de capacitación de clase mundial para una organización tan sofisticada como ASOS Tech, con una audiencia exigente de ingenieros ya altamente calificados. Me siento muy afortunado de tener esta oportunidad de tratar de ayudar a mis compañeros ingenieros a mejorar sus habilidades y hacer que un excelente lugar para trabajar sea aún mejor.
PD: vea también otra publicación de blog de ASOS Tech sobre capacitación tecnológica , del año pasado que se enfoca en los aspectos prácticos de lanzar un programa de capacitación.
Soy Dave Barrows, entrenador de ingeniería de ASOS Tech. Dirijo cursos de capacitación en Docker, Kubernetes, AKS, DevOps y el oficio de escribir código y crear software. También soy músico y productor con mi propio sello discográfico independiente y estudio casero; Toco regularmente en Londres y en otros lugares.