Validation continue

Un logiciel validé une fois est validé pour une version.

La question qu'on nous pose après avoir lu le dossier de validation n'est jamais « avez-vous validé ? ». C'est : qu'est-ce qui empêche la version suivante de partir avec un écart ? Trois contrôles tournent à chaque modification du code. Aucun ne dépend de quelqu'un qui pense à les lancer.

46cas rejoués à chaque modification
49exigences, chacune tracée à sa clause
20documents régénérés et comparés
3gardes, tous éprouvés par mutation

Les trois gardes

Chacun répond à une question qu'un évaluateur a le droit de poser, fait une chose précise, et a déjà attrapé quelque chose. Ce dernier point n'est pas décoratif : un contrôle qui n'a jamais rien détecté n'a pas encore prouvé qu'il détecte.

1

Le logiciel se qualifie lui-même

« Comment savez-vous que la version que vous me livrez fait toujours ce que dit votre dossier ? »

Une suite de cas de qualification opérationnelle est rejouée à chaque modification du code. Chaque cas est rattaché à une exigence de validation et à sa clause réglementaire. Le dernier d'entre eux ne se contente pas d'examiner le code : il DÉMARRE l'image livrée, sur des volumes vierges, et lit son journal de démarrage.

Ce qu'il a attrapé — Une image livrable qui ne démarrait pas du tout. Ni le contrôle du code, ni la compilation, ni les autres cas ne pouvaient la voir : ils s'exécutent tous en dehors du conteneur. Le client l'aurait découverte à la première étape technique de son installation.

Le dossier de validation n'est pas rédigé : il est PRODUIT à partir de cette exécution. Le générateur refuse de l'émettre si la suite n'a pas tourné. Un cas en écart, et le dossier porte l'écart.

2

Les documents se relisent tout seuls

« Comment savez-vous que le document que vous m'avez remis décrit encore votre logiciel ? »

Chaque document publié est régénéré depuis ses sources, puis son TEXTE est comparé à celui de la version en ligne. Les valeurs propres à une exécution — dates, durées, empreintes — sont neutralisées avant comparaison : un contrôle qui crie tous les jours finit ignoré, ce qui est pire que pas de contrôle.

Ce qu'il a attrapé — La matrice 21 CFR Part 11 anglaise, téléchargeable depuis ce site, annonçait « 31 exigences, 28 cas » quand la version française en comptait 32 et 29. Le contrôle ne régénérait alors que les documents français : il annonçait un corpus à jour en n'en ayant vérifié que la moitié.

Un document périmé fait échouer le contrôle, et l'échec nomme la phrase qui a changé. Depuis, un second contrôle refuse tout document publié qu'aucun générateur ne réécrit — l'angle mort ne peut plus se reformer en silence.

3

La livraison dit si elle est périmée

« Comment savez-vous que l'archive que vous m'avez envoyée correspond bien à ce code ? »

Un contrôle compare l'archive publiée au code courant, en lisant les règles réelles de construction de l'image plutôt qu'en les redéclarant. Il tient compte des modifications non encore enregistrées : une dérive commence toujours par un fichier modifié sur un poste.

Ce qu'il a attrapé — Ce contrôle-là n'a pas encore attrapé de défaut chez un client : il en signale la dérive au quotidien, chez nous, dès que le code avance après une livraison. C'est son rôle, et c'est pour cela qu'un numéro de version déjà remis n'est jamais republié — on ouvre une nouvelle version.

Un enregistrement remis ne se réécrit pas. Si le contenu doit changer, il change de version, et l'ancienne reste telle qu'elle a été reçue.

Ils ne tournent pas sur ma machine

Les trois contrôles sont rejoués à chaque poussée de code sur une machine neuve, qui ne connaît rien de mon poste : dépendances réinstallées, image reconstruite depuis zéro, 22 invocations de générateurs, puis les 46 cas de qualification — image livrée comprise. Une modification qui casserait l'un d'eux ne peut pas passer inaperçue, y compris pour moi.

C'est aussi ce qui rend le dossier de validation utilisable : il n'est pas rédigé une fois puis recopié de version en version. Il est produit à partir de l'exécution réelle la plus récente, avec ses chiffres, ses durées et ses empreintes. Un chiffre écrit à la main finit toujours par mentir — c'est arrivé, c'est raconté plus haut, et c'est pour cela que tous ceux de cette page sont lus depuis les sources.

Ce que ces contrôles ne font pas

Demander une démonstration Lire l'étude de cas