11. Ateliers de développement logiciel présentés par Simon Hardy — 55:30 à 1:10:32
Simon Hardy se présente comme professeur au Département d’informatique, avec un rattachement en bio-informatique ou biochimie et une responsabilité de programme dans ce domaine. Il est également ingénieur et formé en génie logiciel. Il enseigne notamment un cours de processus de génie logiciel ayant des versions GLO et IFT, maintenant obligatoire pour les personnes en informatique; les codes exacts sont brouillés, mais semblent correspondre à GLO-2003 et IFT-2003.
Origine et objectif des ateliers
Le département rencontre périodiquement des partenaires de l’industrie pour présenter l’évolution des programmes et recueillir leur perception du marché. Il y a quelques années, les employeurs ont signalé des lacunes dans des compétences pratiques essentielles : Git et GitHub, intégration continue, tests, architecture et outils courants de développement en équipe.
Au lieu de confier toute cette matière à un seul cours, le département a conçu des ateliers répartis dans environ quatre cours de première et deuxième année. Le but est de montrer que ces aptitudes sont transversales, nécessaires sur le marché et utiles dans plusieurs travaux. Une subvention universitaire a soutenu le développement, auquel a participé un ancien diplômé travaillant comme coach agile dans l’industrie.
Les responsables ont d’abord défini environ neuf compétences professionnelles attendues d’une personne diplômée, puis construit les ateliers correspondants. La sécurité informatique figure parmi les compétences importantes, mais aucun atelier particulier ne lui est encore consacré; la sécurité est plutôt traitée dans plusieurs cours, notamment les cours spécialisés et les bases de données.
Sujets et exemples
Les sujets mentionnés comprennent :
- Git, contrôle de versions et sauvegarde structurée des fichiers;
- GitHub ou GitLab, révision de code et demandes de fusion (
pull requests); - tests unitaires : structure, nommage, bibliothèques et automatisation;
- gestion des dépendances, avec Maven comme exemple;
- migration de schémas de bases de données, avec Flyway comme exemple;
- intégration continue : lancer automatiquement les tests lors d’un
pushet empêcher une fusion lorsque ceux-ci échouent; - architecture logicielle et, dans des cours plus avancés, microservices;
- conteneurisation avec Docker;
- nettoyage, réusinage et qualité du code (
clean code); - utilisation conjointe de code de production et de tests pour vérifier qu’un réusinage n’a pas cassé le comportement.
Certains ateliers sont intégrés à des cours précis. Un atelier introductif associé à un laboratoire d’IFT-1004 montre Git et le versionnement. D’autres ateliers sont associés aux cours de processus de génie logiciel, de bases de données et à des cours plus avancés. Les codes exacts entendus sont parfois incohérents; il faut se fier aux modules Brio des cours suivis.
Une formation aux pratiques, pas à une marque
Même si un atelier utilise GitHub, Maven, Flyway, Docker ou un autre outil, l’objectif n’est pas de mémoriser une recette liée à une technologie unique. Les outils changent entre entreprises et au fil du temps; les principes restent. Une entreprise utilisant Azure ou une autre plateforme appliquera toujours la même idée d’intégration continue, de tests automatiques et de contrôle avant fusion.
Forme des ressources
Les ateliers fournissent généralement :
- une description et des objectifs pédagogiques;
- un dépôt GitHub ou GitLab contenant du code réaliste à cloner;
- un fichier README avec les instructions;
- un tutoriel ou une série d’étapes à exécuter;
- du code source et des tests;
- souvent un solutionnaire permettant de comparer les approches.
Les solutions ne sont pas nécessairement uniques. Dans l’atelier de nettoyage de code, par exemple, plusieurs réusinages peuvent être valides; la solution proposée sert de point de comparaison. Une version longue et une version courte de cet atelier existent parce que la première base de code s’était révélée trop volumineuse. L’atelier de bases de données est décrit comme sommatif et n’offre donc pas le même type de solutionnaire; il peut changer d’une année à l’autre.
Un atelier peut n’exiger aucune remise immédiate tout en demeurant essentiel. Les compétences seront ensuite requises dans un projet ou visées par une question d’examen. Dans les cours de Simon, ne pas faire les ateliers rend le projet d’équipe beaucoup plus difficile et peut nuire au fonctionnement de toute l’équipe. Ils ne sont donc pas des activités facultatives « pour le plaisir ».
Accès pendant tout le baccalauréat et migration vers Brio
Les ateliers étaient regroupés dans un ancien site de programme. La transition obligatoire vers Brio est en cours; le site devrait apparaître dans les activités de perfectionnement ou sous le titre « Ateliers en développement logiciel ». Une estimation d’environ deux semaines est donnée pour terminer le partage manuel avec les programmes, mais une personne en ligne semble déjà voir la ressource pendant la séance. L’ancien portail doit être désactivé vers novembre.
Une fois accessible, la ressource doit rester disponible pendant tout le baccalauréat. On peut refaire un atelier, le consulter depuis un autre cours ou l’explorer à l’avance. Les programmes mentionnés comme admissibles comprennent l’informatique, informatique et gestion, bio-informatique, mathématiques et informatique, génie logiciel, génie électrique et génie informatique — essentiellement les programmes ayant des cours obligatoires qui contiennent ces ateliers.
Le site devrait apparaître automatiquement et un courriel devrait annoncer sa disponibilité. Si ce courriel est reçu mais que l’accès manque, il faut signaler un possible problème de permissions. Simon précise que les cours GLO et IFT peuvent avoir des versions parallèles; les sections GLO doivent être enseignées par une personne membre de l’Ordre des ingénieurs, ce qui explique que des personnes différentes donnent les deux versions d’un contenu apparenté.