Récit de la mise en place une solution d’inscription en ligne pour une formation au cœur de nombreux enjeux
Après avoir conçu et mis en place des portails pour services des écoles dans les communes de Fribourg, Villars-sur-Glâne, Bulle et Romont, je souhaitais vivement me replonger dans un concept similaire impliquant portail Web accessible au public et communication avec un système d’information. Chose faite avec l’expérience ci-dessous dont je vous raconte le succès.
Contexte
Le Centre de Perfectionnement (CPI), situé à Grange-Paccot, propose divers formations destinées à améliorer les compétences professionnelles des adultes et jeunes adultes. Il organise ses propres formations modulaires, des préparations à des brevets fédéraux et gère certaines mesures du marché du travail.
En 2023, le Centre est approché par une administration cantonale qui lui demande s’il pourrait prendre en charge la saisie des inscriptions aux « cours de formateurs en entreprise (FEE) » déjà organisées dans ses locaux. Cette formation est conçue pour habiliter des personnes travaillant en entreprise à former des apprentis. Pour y participer, les candidats doivent répondre à certains critères, notamment être détenteurs de diplômes spécifiques et justifier d’une expérience professionnelle minimale dans leur domaine respectif. La formation est par ailleurs très demandée et l’offre ne suffit pas à honorer la demande.
La saisie et le suivi des inscriptions pour une telle formation est un travail fastidieux pour les gestionnaires de formation. En effet, il leur faut, chaque automne, examiner en détail des centaines de candidatures, les valider ou les rejeter, contacter les candidats pour justifier les refus, veiller à remplir méthodiquement les quelques sessions à disposition et tout cela dans un temps restreint.
J’ai déjà parlé à mon contact au CPI du site d’inscription en lignes pour les activités extra-scolaires que j’ai conçu pour les grandes communes du canton. Nous explorons ensemble la possibilité de mettre en place un même système pour répondre au besoin.
Problème
Architecture : Le CPI a déjà un site officiel et c’est sur ce portail que les candidats devraient pouvoir accéder à l’offre de formation. Comment organiser les échanges entre le serveur de base de données du CPI et ce site? Où héberger le formulaire que nous allons développer?
Référentiel hors d’atteinte : Les données métiers du CPI sont hébergées par le canton de Fribourg et ne sont pas accessibles depuis l’extérieur. Il n’est pas possible, en l’état, d’établir une communication en temps réel entre l’hébergeur du site du CPI et les données du canton. Ou alors il faudrait en passer par des Web services. Le canton pourrait entrer en matière mais les coûts et les délais du projet exploseraient malgré tout. Or ça n’est pas envisageable!
Places limitées : Comment s’assurer que le nombre d’inscriptions par session ne dépasse jamais un certain nombre tout en permettant aux utilisateurs de remplir des formulaires simultanément? Contrairement au site pour les activités extra-scolaires que je contrôle complètement, je n’ai pas accès en temps réel depuis le site Web du CPI au système d’information métier du Centre. Ce n’est donc pas dans le SI que je vais pouvoir stocker et interroger le nombre de places encore disponibles.
Réactivité : Lorsqu’il n’y a plus de place, il faut s’assurer que les utilisateurs qui vont ouvrir la page d’inscription au cours de FEE voient la session comme complète et ne puissent pas s’y inscrire.
Blocage mais transparence : un certain nombre de candidats ne remplissent pas les conditions pour suivre le cours mais s’inscrivent malgré tout. La prise en charge et la gestion de ces derniers dossiers est fastidieuse. Pourrait-on identifier ces candidatures en amont et informer l’utilisateur qui les saisit qu’elles ne sont pas éligibles (et pourquoi)?
Libération de places : Certaines candidatures bien qu’acceptables techniquement ne le sont pas en toute fin (diplôme fourni en pièce jointe non valable par exemple). Comment permettre au gestionnaire de formation de remettre les places ainsi libérées à disposition du public?
Solution
Pour résoudre les problèmes les mesures suivantes ont été prises :
Architecture : Nous partons sur le cycle suivant: le SI du CPI transmet au site chaque nouvelle session ouverte aux inscriptions. Le candidat à la formation qui veut s’inscrire se rend sur le site du CPI, il consulte la liste des sessions ouvertes, choisi celle qui l’intéresse et clique sur un bouton « s’inscrire ». Ce bouton lance une URL. Cette URL pointe sur un site Web Syslog et y lance un formulaire.
Référentiel hors d’atteinte : Je renonce à demander à ce que les données du référentiel du CPI puissent être consommées ou mises à jour depuis l’extérieur via l’appel d’API. Nous ne serions plus dans les mêmes délais et budgets. J’opte donc avec Stimul, l’hébergeur du site du CPI pour un transfert quotidien via SFTP des sessions ouvertes aux inscriptions sous format fichier JSON (le canton de Fribourg m’ouvre le port depuis le serveur applicatif de l’outil métier du CPI). Les préinscriptions, elles, sont sauvegardées dans une base de données sur le serveur Syslog. Pour leur retour (et celui des pièces jointes) vers le SI du CPI, j’utilise là aussi un transfert SFTP périodique, déclenché toutes les 5 minutes.
Places limitées : Je mets en place un ingénieux système basé sur des appels de procédures stockées – lancé à l’ouverture et à la sauvegarde des formulaires – qui me garantit que le nombre maximum n’est jamais dépassé.
Réactivité : A chaque sauvegarde de formulaire, lorsque la dernière place est occupée, j’invoque une API mise à disposition par Stimul pour rendre indisponible la session aux autres utilisateurs.
Transparence : Un certain nombre de tests sont implémentés et activés tout au long de la saisie du formulaire. Selon le résultat de ces tests, l’utilisateur peut recevoir un message d’information qui lui explique la raison pour laquelle les informations qu’il a saisies rendent sa candidature inéligible. De même, à l’ouverture, un test de disponibilité est opéré. Si la session s’est remplie (passée à complète) entre le moment où l’utilisateur a affiché sa page et le moment où il a cliqué sur « s’inscrire », un message l’en informe immédiatement, afin qu’il ne perde pas de temps à saisir une inscription qui échouerait plus tard, au moment de la sauvegarde du formulaire.
Libération de places : Je conçois un système simple et intuitif qui permet au gestionnaire de formation d’ajouter ou d’ôter des places à une session en temps réel. Je couple cette méthode avec l’appel de l’API mentionné au point 4 (qui ré-ouvre la session aux inscriptions).
Résultat
Gain de temps significatif pour le CPI : les éléments implémentés – saisie exhaustive en ligne par l’utilisateur, test de l’éligibilité des candidatures à la saisie, puis, dans GCPI, les facilités offertes par le tableau de bord pour consulter et valider les candidatures et les transformer en inscriptions officielles avec un minimum de clics (reconnaissance des candidats et des formations) – ont contribué à faire économiser beaucoup de temps aux gestionnaires de formation.
Transparence et égalité des chances pour les candidats : La conception du formulaire de saisie et les règles de gestion et messages d’information y programmés ont permis d’informer les candidats sans délais sur la recevabilité de leur dossier. Le système d’inscription en ligne couplé à une communication en amont et un tableau de bord montrant les plus anciennes candidatures en premier ont permis de garantir le principe du « première candidature valable arrivée première candidature servie ».
Outil de libération de places : Cet outil, très intuitif, a permis aux gestionnaires d’agir en temps réel sur la disponibilité des places et même d’avoir une liberté supplémentaire, celle de conserver une place pour un candidat ayant un dossier quasi complet et ayant promis de le compléter à court terme.
Contrôles efficaces des inscriptions : Les contrôles effectués à l’initialisation et à la sauvegarde du formulaire ont permis de garantir qu’aucune candidature ne puisse être saisie lorsque le maximum voulu par le gestionnaire de formation est atteint. Ce maximum pouvant être réajusté en permanence par l’outil au paragraphe précédent.
Témoignage et Retour
Pour enrichir cet article et offrir une perspective supplémentaire sur l’impact des solutions mises en œuvre, des témoignages de parties prenantes clés seront intégrés. Ces témoignages, recueillis auprès de personnes directement impliquées ou affectées par le projet, apporteront un éclairage pratique et contextuel sur les améliorations apportées.
Conclusion et Apprentissage
Sometimes, less is more. Une approche pragmatique a permis de contourner l’impossibilité d’accéder au référentiel du CPI en temps réel grâce à des échanges de fichiers. Elle a pu être mise en place de façon simple et économe en temps. Elle a permis au final le respect du budget et des délais.
Avec de l’ingéniosité, on contourne les obstacles et on fini par atteindre la qualité. La perte du lien en temps réel avec le référentiel du CPI à été totalement compensée par la création d’un référentiel embarqué qui a permis comptabilisation des inscriptions, tests des places disponibles, blocage et déblocage des inscriptions et libération des places.
La composition de l’équipe de projet a été déterminante. Du côté de Stimul j’ai trouvé un professionnel, Pierre Dumont, posé mais réactif, capable de trouver les solutions les plus efficientes et les plus propres aux problèmes qui lui étaient posés. Du côté du CPI, Carla Oliveira, la gestionnaire de la formation FEE, experte en son domaine, a mis beaucoup de soin à formuler en termes informatiques des besoins exigeants auxquelles je suis fier d’avoir donné vie.
Une fois encore, j’ai beaucoup apprécié la multiplicité des rôles que j’ai exercé: gestion de projet interne, design global de la solution, rédaction de spécifications à destination de mon équipe, développement.
Enfin j’ai pu expérimenter ici qu’une collaboration avec un autre fournisseur peut être très efficace, lorsque les valeurs qui animent l’équipe sont partagées. Bien sûr, c’est plus facile en petit comité mais je suis persuadé qu’une telle productivité peut être atteinte dans un projet de plus grande envergure.
Je ressors de cette expérience riche de nouvelles connaissances sur le métier du CPI, un peu plus compétent techniquement, professionnellement et humainement, et désireux de vivre (et de favoriser le cas échéant) la même efficacité opérationnelle dans mes prochains projets!
