En dépit des actions de mise en transparence du ministère, le code source de Parcoursup reste à 99 % fermé. La partie publiée demeure d’un intérêt limité pour comprendre, expertiser, et évaluer le processus d’affectation des candidats dans les formations. Les données de Parcoursup, particulièrement riches, ne font pas l’objet d’une valorisation à la hauteur des enjeux, non seulement par les acteurs de la recherche et de l’innovation, mais aussi par l’administration elle‑même, tant les moyens matériels et humains pour permettre leur exploitation sont insuffisants.
Les résultats ainsi produits suggèrent que l’application Parcoursup présente une qualité médiocre, avec un niveau de risque élevé et de nombreuses violations critiques identifiées. Parcoursup se situe à un niveau de qualité plus faible que d’autres logiciels d’ancienneté similaire. Plus précisément, les indices d’efficience et de sécurité ainsi évalués montrent que le risque de rupture du fonctionnement normal de Parcoursup est élevé.
Parcoursup est composé d’un code source public et d’un code source fermé. Malgré sa petite taille, le code source qui a été rendu public et qui est récent présente un niveau de risque comparable au code non public. À titre de comparaison, les applications de moins de deux ans devraient présenter un risque plus faible. Par ailleurs, le code ouvert présente une densité de violations critiques bien plus importante que le code fermé. D’après le ministère, le code Java public, qui « n’a pas été produit selon les standards professionnels », ne peut être analysé avec les métriques de l’audit car elles ne sont pas adaptées à ce mode de production artisanal.
Le dispositif présente ainsi un risque de rupture de service. Il n’est pas non plus à l’abri d’une intrusion comme en témoigne un autre audit de sécurité du code source, réalisé en juillet 2018 à la demande du ministère, et qui souligne un risque de sécurité « très élevé » pour l’application. Cette situation doit être corrigée rapidement. À la fin 2019, le ministère souligne qu’une « démarche de certification du code Parcoursup a été initiée avec les équipes de recherche du laboratoire de recherche en informatique de Saclay ainsi que du laboratoire bordelais de recherche en informatique ».
[…] d’autant que l’échantillonnage n’a pas permis de trouver les traces d’un processus de développement mené dans les règles de l’art. Le code actuel est en effet d’une facture plus artisanale. Il serait souhaitable d’introduire un processus de développement moderne et éprouvé afin d’assurer une évolution fiable et maîtrisée de l’application.
Le code de Parcoursup présente un niveau de complexité anormalement élevé. Les composantes complexes représentent 27 % du volume de code, ce qui est bien plus élevé que le plafond de 5 à 7 % recommandé par les standards des professionnels du secteur. Avec un tel niveau de complexité, la mise en œuvre d’évolutions fonctionnelles risque d’introduire des erreurs. Le ministère ne partage pas cet avis et invoque la complexité du système d’enseignement français et la variété des parcours proposés. Pour la Cour, le code source devrait être restructuré afin de réduire le nombre de ses composantes complexes.
En 2017, la mission Etalab, appuyée par l’ANSSI, recommandait, en pleine convergence avec le rapport de la Cour de la même année, « de publier […] le code source de la dernière version d’APB et les données non réidentifiantes associées ». Par décision des pouvoirs publics, le code informatique de Parcoursup est réputé avoir été rendu public afin de permettre une totale transparence sur l’affectation des candidats. La Cour a réalisé un audit du code source de Parcoursup sur un volume de lignes de code cent fois plus important que le code publié par le ministère.
À ce jour, une très faible partie du code de Parcoursup a été rendue publique. Le code publié par le MESRI le 21 mai 2018 représente au plus 1 % du nombre de lignes de code et moins de 2 % des fichiers produits dans le cadre de l’exercice des missions dévolues à l’opérateur de la plate‑forme.
Dans le cadre de cet audit, 1 582 violations critiques ont été identifiées. Il s’agit de failles dans le code qui doivent être corrigées rapidement.