Une liste de contrôle de couverture des données pays semble un artefact simple, jusqu’au premier désaccord sur un chiffre. Deux personnes comptent le même jeu de données, obtiennent deux totaux différents, et aucune n’a tort. Le désaccord ne porte presque jamais sur l’arithmétique ; il porte sur ce qui était compté et sur qui a décidé qu’une cellule vide posait problème.
Cet article traite la liste de contrôle comme un instrument de mesure. Il couvre les trois états dans lesquels un champ peut se trouver, le choix du dénominateur qui rend un pourcentage significatif, et la forme d’une liste que quelqu’un d’autre peut auditer sans avoir à vous demander ce que vous vouliez dire.
Que devrait réellement compter une liste de contrôle de couverture ?
La réponse honnête est qu’elle compte des accords, pas des valeurs. Pour chaque combinaison d’un pays et d’un champ, la liste doit consigner si l’attente du modèle de données et la réalité du pays concordent.
Ce cadrage change l’apparence d’une lacune. Une cellule vide n’est pas automatiquement un défaut, et une cellule remplie n’est pas automatiquement une couverture. L’unité mesurée est une décision : pour ce pays, ce champ est-il censé contenir quelque chose, et le contient-il ? Tout le reste dans la liste découle de la réponse à cette question pays par pays plutôt que table par table.
Une liste de contrôle qui ne rapporte qu’un seul chiffre de tête est presque inutile pour cette raison. Elle résume des milliers de décisions en un seul nombre et jette l’information dont un lecteur a besoin pour agir.
Les trois états : applicable, non applicable, manquant
Trois états doivent être suivis séparément, et c’est en fusionnant deux quelconques d’entre eux que les chiffres de couverture deviennent plus plats que la réalité.
| État | Signification | Ce qu’il exige |
|---|---|---|
| Applicable et présent | Le pays possède ce type de données et une valeur est stockée | Rien, hormis la maintenir à jour |
| Non applicable | Le système de ce pays n’a pas du tout un tel champ | Une marque explicite, pour que personne ne cherche une valeur qui ne peut exister |
| Manquant | Le pays devrait avoir une valeur et n’en a pas | Un correctif, un responsable et une date |
L’état intermédiaire est celui qui se perd. Lorsqu’il est consigné comme une cellule vide, il se lit plus tard comme une lacune, et quelqu’un passe une semaine à essayer de remplir quelque chose qui n’a pas de source. Lorsqu’il est consigné comme une valeur — un espace réservé tel qu’un zéro ou une chaîne vide — les rapports en aval héritent d’un fait faux et le traitent comme réel.
Consigner les trois états distinctement est aussi ce qui garde le dénominateur honnête. La couverture mesurée sur les champs applicables répond à une question ; la couverture mesurée sur tous les champs en répond à une autre, et seule la première s’améliore jamais.
La couverture doit-elle être mesurée par pays ou par champ ?
Les deux, et le choix doit être écrit, car les deux chiffres peuvent diverger fortement.
Par pays, la question est de savoir à quel point un pays donné est représenté de manière complète. Par champ à travers les pays, la question est de savoir si un champ est largement utilisable ou n’existe que pour une poignée d’entrées. Un champ présent partout sauf dans une région paraît excellent par champ et ressemble à un trou par pays.
Deux conventions évitent la plupart des confusions. Énoncez le dénominateur dans le titre du tableau plutôt que dans une note de bas de page. Et gardez séparés les chiffres pondérés et non pondérés : pondérer par trafic, par revenu ou par nombre d’enregistrements répond à une question métier, tandis que compter les pays répond à une question de données. Une liste qui les mélange produit un nombre que personne ne peut défendre.
L’ensemble minimal de champs et tout ce qui le dépasse
Commencez par les champs dont pratiquement chaque pays possède une forme — un code, un nom, une devise, un fuseau horaire — et appelez cela l’ensemble minimal. Mesurez-le d’abord et publiez-le séparément.
La raison est le rapport signal-bruit. Les champs facultatifs diffèrent tellement entre les pays qu’un total fusionné unique ne vous dit presque rien sur l’un ou l’autre groupe. Garder l’ensemble minimal dans un seul bloc signifie qu’une défaillance y est un véritable avertissement, tandis qu’un champ facultatif peu fourni peut être discuté selon ses propres termes.
Au-dessus de l’ensemble minimal, listez chaque champ facultatif avec les pays où il s’applique, les pays où il ne s’applique pas, et les pays où la réponse est encore inconnue. Cette troisième colonne est la partie que la plupart des listes omettent, et c’est généralement la plus utile, car il s’agit d’une file de travail plutôt que d’un verdict.
Comment consigner un pays ayant plus d’une langue officielle ?
Un pays ayant plusieurs langues officielles remet en cause l’hypothèse selon laquelle chaque ligne contient une valeur par colonne. Que la colonne langue soit mono-valuée ou multi-valuée est une décision de modélisation, et elle doit être prise avant la saisie de la première ligne plutôt qu’après le retour du premier rapport erroné.
Si la colonne contient une seule valeur, quelque chose d’autre — une table séparée ou une règle explicite — doit porter le reste, et la liste doit indiquer quoi. Si elle en contient plusieurs, chaque comptage de la feuille doit préciser si un pays ayant plusieurs valeurs contribue pour une ligne ou plusieurs, car ce choix change tous les totaux en dessous.
La même question s’applique à la devise et aux noms de divisions, qui peuvent tout autant être au pluriel au sein d’un même pays. La liste n’a pas à trancher le débat de modélisation, mais elle doit consigner la réponse retenue, afin qu’un lecteur ultérieur puisse distinguer une décision d’une négligence.
Pour les développeurs : rendez la liste interrogeable
Une liste qui vit dans un document est lue une fois puis abandonnée. Une liste qui peut être interrogée est vérifiée dans un pipeline et reste vraie.
Représentez-la sous forme de données : un enregistrement par pays et par champ, avec l’état, la source, la date à laquelle l’état a été établi et le responsable. Les questions qui comptent deviennent alors des requêtes ordinaires. Quels pays ont un champ manquant que l’ensemble minimal exige ? Quels champs ont changé d’état depuis la dernière version ? Quels pays ont un état inconnu depuis plus d’un cycle de version ?
Gardez les inconnues visibles plutôt que de les filtrer. Une inconnue cachée derrière une valeur par défaut est la plus coûteuse, car elle compte silencieusement comme ce que la valeur par défaut implique. Et lorsque vous orientez un lecteur vers les notes pays sous-jacentes, le répertoire des pays et régions est l’endroit neutre vers lequel le diriger, tandis qu’une page telle que l’entrée de l’Allemagne montre le niveau de détail qu’un pays est censé porter. Pour les questions de codage sous-jacentes, le guide des codes ISO de pays et de subdivisions couvre le volet des codes que cette liste laisse volontairement de côté.
Tout ce qui est montré ici est illustratif. Les noms de champs, les états et les valeurs d’exemple de cette liste sont un matériel synthétique écrit pour une discussion de test, et non une mesure d’un système, d’une organisation ou d’un jeu de données réel, et ils ne doivent pas être cités comme un constat.
Prochaines étapes
Construisez la première version de la liste pour un champ auquel vous faites déjà confiance et un champ que vous suspectez, et placez-les côte à côte. Le contraste montre généralement en une heure si la feuille mesure quoi que ce soit. Une fois la liste stable, le guide de la mise à l’échelle des données de test entre pays reprend là où la mesure s’arrête, et le guide du choix des pays pour les données de test explique comment la liste de pays sous-jacente devrait être choisie au départ.