clement13.net
Photo d’origine : Une mêlée de rugby sur un terrain brumeux, vue d'ensemble
Description
Une mêlée de rugby sur un terrain brumeux, vue d'ensemble
Source
auteur non indiqué · page d’origine
Licence
PD Domaine public
Photo d’origine, non retouchée. L’arrière-plan en est une version stylisée par le site.

Scrum appliqué à la data, à la BI et au datamart

Vous saurez adapter Scrum à un projet data / BI / datamart : écrire des stories de données, planifier des spikes d'exploration, définir un Incrément sur une chaîne source → ETL → modèle →…

Guide≈ 35 min de lectureVérifiéContrôle effectuéLes faits, chiffres et références ont été contrôlés au regard des sources citées dans la fiche.Rédaction assistée par IA ; sources citées en bas de page. Une erreur ? Signalez-la via le site clement13.net.Lecture
En bref
  • Vous saurez adapter Scrum à un projet data / BI / datamart : écrire des stories de données, planifier des spikes d'exploration, définir un Incrément sur une chaîne source → ETL → modèle → rapport.
  • Vous saurez bâtir une Definition of Done data (qualité, recette sur chiffres, performance, sécurité, documentation, rejouabilité).
  • Vous saurez équilibrer sprints de données et sprints de visualisation, gérer la dette de données, la dépendance aux sources et les jeux de données de test.
  • Vous saurez cadrer le rôle du Product Owner data et organiser la recette métier sur les chiffres.
  • Vous aurez un tableau forces/faiblesses et des notes /5 d'adéquation de Scrum à la data, avec une section IA.

Fil rouge illustratif (anonyme). Un datamart SQL Server alimenté par une application de force de vente (SFA) terrain, avec des rapports Power BI multilingues, versionné en TFVC et livré en kits d'installation. Les chiffres donnés sont des ordres de grandeur illustratifs.

Sur cette page
  1. 🟢 Novice — Pourquoi Scrum et la data se frottent
  2. 🟢 Novice — Qu'est-ce qu'un Incrément en BI ?
    1. Incréments de niveaux différents
  3. 🟢 Novice — L'équipe data pluridisciplinaire
  4. 🟡 Pratique — Écrire des stories de données
    1. Modèle de story data
    2. Cinq types de stories data
    3. La story « technique » en BI : quand est-ce légitime ?
  5. 🟡 Pratique — Spikes d'exploration de données
    1. Spikes typiques en data
    2. Règles d'un bon spike
  6. 🟡 Pratique — Un Sprint sur la chaîne source → ETL → modèle → rapport
    1. Le défi du découpage
    2. Un Sprint type de deux semaines
    3. Traitements longs et boucle de retour
  7. 🟡 Pratique — Sprints de données ou sprints de visualisation ?
    1. Quand séparer se justifie
  8. 🟡 Pratique — La Definition of Done data
  9. 🟡 Pratique — Jeux de données de test
    1. Règles
  10. 🟡 Pratique — Dépendance aux sources
    1. Traiter la dépendance comme un item
    2. Contrats de données
  11. 🟡 Pratique — Le Product Owner data
    1. Où trouver ce PO ?
  12. 🟡 Pratique — Recette métier sur les chiffres
    1. Les cinq niveaux de contrôle
    2. Déroulé
  13. 🔴 Expert — Dette de données
    1. Gérer la dette dans Scrum
  14. 🔴 Expert — Rejouabilité, idempotence et historisation dans le Sprint
    1. Idempotence
    2. Historisation
    3. Planifier le « rejouable » dans Scrum
  15. 🔴 Expert — Migrations, versions de modèle et kits
    1. Version produit contre Sprint
  16. 🔴 Expert — Coordination DataOps et gouvernance
  17. 🔴 Expert — Quand Scrum est-il le mauvais choix pour la data ?
  18. Forces et faiblesses
  19. Métriques : notes /5 d'adéquation
    1. Adéquation par type de travail data
  20. Contribution de l'IA
  21. Voir aussi

Niveau : 🟢→🔴

🟢 Novice — Pourquoi Scrum et la data se frottent#

Scrum est né du développement logiciel, où l'on peut livrer un petit incrément fonctionnel en deux semaines : une fonction, un écran. La data a trois différences qui créent des frottements (voir Fondamentaux : spécificités data) :

Frottement Pourquoi Conséquence sur Scrum
La valeur est dans la confiance aux chiffres Un écran correct sur des chiffres faux est nuisible La DoD doit inclure la réconciliation
La donnée est un état, pas seulement du code Un déploiement de code ne produit rien tant qu'on n'a pas (re)chargé les données L'Incrément contient du code et des données
Dépendance à des sources non maîtrisées Schéma, qualité, calendrier de la source échappent à l'équipe Les sprints sont perturbés par l'extérieur
Temps de traitement long Une consolidation peut prendre des heures La boucle de retour est plus lente
Découverte nécessaire On ne sait pas si la donnée existe ou est utilisable avant d'y avoir regardé Des spikes et un backlog de découverte
Couches interdépendantes Source → staging → dimension → fait → mesure → rapport Difficulté de découper verticalement
Irréversibilité et historique Un écrasement de données peut être impossible à défaire Garde-fous de sauvegarde et de rejeu

Ces frottements ne rendent pas Scrum inapplicable. Ils obligent à adapter le découpage, la DoD, la planification et le rôle du PO — c'est l'objet de ce fichier. Les alternatives et compléments (CRISP-DM, DataOps, Kimball pour la modélisation) sont dans Méthodes spécifiques à la data ; le comparatif global dans Comparatif des méthodes.

💡 Astuce d'expert

Dans un projet BI, la majeure partie de l'effort réel se situe avant le rapport : sources, nettoyage, modélisation, règles de gestion. Ralph Kimball avance que l'ETL à lui seul absorbe souvent environ 70 % du temps et des ressources d'un entrepôt de données (estimation de praticien, sans valeur de loi ; la part exacte varie selon le projet). Le client, lui, ne voit que le rapport. Un Scrum qui ne mesure que « les pages livrées » ne voit pas la majorité du travail et de la valeur.


🟢 Novice — Qu'est-ce qu'un Incrément en BI ?#

Le Guide exige un Incrément utilisable (Scrum, le cadre). En BI, « utilisable » veut dire : un utilisateur peut prendre une décision à partir d'un chiffre fiable. Cela impose une tranche verticale minimale à travers toute la chaîne.

SFA terrain(source)StagingNettoyageet règlesDimensions + Faitsmodèle en étoileModèle sémantiquemesures, relations, RLSRapportPower BIUtilisateur : décisionsur un chiffre RÉCONCILIÉextraction / interface
Survolez ou touchez un élément pour en lire le détail.

Incréments de niveaux différents#

Niveau d'Incrément Contenu Utilisable par… Valeur
Technique (donnée seule) Une table de faits chargée et testée L'équipe, un analyste en SQL Faible seule, mais jalon de risque
Sémantique (mesures) Mesure DAX validée sur un échantillon L'analyste, l'utilisateur avancé Moyenne
Restitution Page de rapport avec chiffres réconciliés Les utilisateurs métier Forte
Produit (kit) Version installable, documentée Les clients, l'exploitation Forte à l'échelle du produit
✅ Bonne pratique

Viser, à chaque Sprint, au moins un « petit chiffre utilisable de bout en bout » — un indicateur, un périmètre réduit (une région, un mois), mais réel de la source à l'écran et validé par le métier. C'est le walking skeleton de la BI. Il vaut mieux 3 clients × 1 mois complets que 100 % des clients sans mesure fiable.

🧪 Exemple

Sprint 1 d'un datamart de ventes. Sprint Goal : « Un chef de secteur de la région pilote voit le CA de mars, par client, égal au CA de la source à l'euro près. » Livré : une extraction de la région pilote, une table de faits ventes, une dimension client, une mesure CA, une page minimale, un test de réconciliation, une note de recette signée. Rien d'esthétique, tout est réel. Sprint 2 : étendre à toutes les régions, ajouter les mois. Sprint 3 : ajouter les filtres, la langue, le design.


🟢 Novice — L'équipe data pluridisciplinaire#

Une équipe BI autonome sur la chaîne complète réunit les compétences suivantes (une même personne peut en porter plusieurs) :

Compétence Rôle dans l'Incrément Risque si absente
Analyse métier / PO data Valeur, règles de gestion, recette Chiffres techniquement justes, métier-faux
Ingénierie de données (SQL, ETL, T-SQL, pipelines) Chargement, qualité, historisation Le modèle repose sur des données incertaines
Modélisation dimensionnelle Granularité, dimensions, faits, clés Modèle fragile, jointures ambiguës
Développement sémantique (DAX, modèle tabulaire) Mesures, relations, RLS Chiffres incohérents entre rapports
Visualisation / UX Lisibilité, ergonomie, multilingue Rapport inutilisé
Qualité / test Tests de chiffres, non-régression Régressions silencieuses
Exploitation / sécurité Planification, supervision, droits Incidents, fuites de données

Scrum parle de Developers au sens large : ceux-ci incluent donc les ingénieurs data et les développeurs BI. Quand une compétence n'existe que hors de l'équipe (DBA central, équipe sécurité, propriétaire de la source), chaque item qui en dépend crée un goulot : c'est un facteur de risque à traiter explicitement (accords de service, créneaux réservés, membre « de liaison »), ou une raison d'élargir l'équipe.

⚠️ Piège

L'équipe « en tuyau » (pipeline d'équipes). Symptôme : une équipe ETL, une équipe modèle, une équipe rapports, chacune avec son Scrum, passant le travail à la suivante. Cause : spécialisation par couche. Conséquence : chaque Incrément est partiel, la valeur n'arrive qu'à la fin, les retards se cumulent (c'est un « Scrumerfall » organisé). Remède : une équipe de produit couvrant la chaîne, ou à défaut un Product Backlog partagé et des Sprints synchronisés. Voir Scrum en pratique : anti-patterns.


🟡 Pratique — Écrire des stories de données#

Les user stories (Scrum en pratique) s'appliquent, avec une adaptation : le « je veux… » est souvent une capacité de décision, et le « afin de… » porte la valeur. Il faut ajouter des éléments propres à la donnée.

Modèle de story data#

CA par client et par mois, région pilote

En tant que chef de secteur,
je veux voir le CA HT par client et par mois sur mon périmètre,
afin de préparer ma visite hebdomadaire.

Données
source = factures SFA ; granularité = ligne de facture ; historique = 24 mois
Règles
HT, hors avoirs internes ; mois civil ; client = code client commercial
Critères d'acceptation
  • Le total mensuel de la région pilote égale le total source à ±0,00 sur les 3 derniers mois
  • Un client sans vente apparaît à 0
  • Un client fusionné est regroupé sous son code courant
  • Les libellés s'affichent en français et en anglais
  • La page s'affiche en moins de N secondes sur le volume cible
Hors périmètre
autres régions, marges
Questions ouvertes
traitement des remises de fin d'année ?

Cinq types de stories data#

Type Exemple Valeur visible ? Remarque
Consommateur (l'utilisateur voit) « Voir le CA par client » Oui La story « canonique »
Source (exposer une donnée) « Intégrer le champ segment client » Indirecte À rattacher à un usage ; sinon justifier
Qualité (corriger/contrôler) « Détecter les doublons de client » Indirecte forte Valeur de confiance
Découverte (spike) « Évaluer la couverture du segment » Non Timeboxée ; produit de la connaissance
Technique/exploitation « Rendre le chargement rejouable » Non Justification : risque, dette, coût

La story « technique » en BI : quand est-ce légitime ?#

Le Scrum pur évite les stories sans valeur. En BI, certains travaux sont prérequis et indivisibles (créer une dimension partagée). Règle de bon sens :

  1. Tirer le travail technique par une story consommateur (« voir le CA par client » tire la dimension client).
  2. Si le travail sert plusieurs stories futures (dimension commune, calendrier), le porter explicitement avec une justification (« prérequis de 4 stories du Q2 ») et le limiter au strict nécessaire.
  3. Ne pas laisser la part de stories techniques grimper sans en discuter en rétro (aucun seuil universel : l'équipe fixe le sien et le recalibre).
⚠️ Piège

La story « construire le modèle ». Symptôme : un item de 4 semaines qui reste « en cours ». Cause : modéliser est vu comme une phase. Remède : modéliser par process métier (une table de faits, un grain, quelques dimensions) selon la logique de Kimball : un processus métier à la fois, intégré par des dimensions conformes — chaque processus est un Incrément livrable. Voir Méthodes spécifiques à la data.


🟡 Pratique — Spikes d'exploration de données#

Un spike est un travail de recherche timeboxé dont le livrable est de la connaissance (une décision, une estimation, une preuve de faisabilité), non du code de production. C'est l'outil privilégié contre l'incertitude des données.

Spikes typiques en data#

Question Livrable Timebox Décision qui en découle
La source contient-elle le champ nécessaire, et avec quelle couverture ? Profil : % de renseigné, valeurs distinctes ½ à 1 jour Faisable / à enrichir / à abandonner
Les clés sont-elles uniques et stables ? Comptage de doublons, historique de changements ½ jour Choix de clé, besoin de clé de substitution
Quelle volumétrie à 3 ans ? Croissance mesurée, extrapolation ½ jour Stratégie de partitionnement, mode d'import
Quel mode de chargement (complet, incrémental, capture de changements) ? Prototype + mesure de durée 1–2 jours Architecture de chargement
La règle de gestion est-elle cohérente avec les chiffres connus du métier ? Calcul sur un échantillon rapproché d'un état connu 1 jour Spécification de la règle
Quel temps de réponse avec un modèle sur tel volume ? Mesure sur jeu volumineux 1 jour Import vs DirectQuery, agrégations

Règles d'un bon spike#

  • Question explicite, au départ ; critère de sortie (« nous saurons dire si… »).
  • Timebox stricte (heures ou jours) ; si non conclu, l'incertitude restante est elle-même le résultat.
  • Livrable écrit (une page : question, méthode, constat, décision recommandée) archivé près du backlog.
  • Code jetable par défaut : si le spike a produit du bon code, on le reconstruit avec la DoD.
-- Spike : profil d'un champ candidat (exemple générique)
SELECT
    COUNT(*)                                             AS nb_lignes,
    SUM(CASE WHEN segment IS NULL OR segment = '' THEN 1 ELSE 0 END) AS nb_vides,
    COUNT(DISTINCT segment)                              AS nb_valeurs,
    CAST(100.0 * SUM(CASE WHEN segment IS NULL OR segment = '' THEN 1 ELSE 0 END)
         / NULLIF(COUNT(*), 0) AS DECIMAL(5,2))          AS pct_vides
FROM stg.client;

-- Unicité de la clé annoncée
SELECT code_client, COUNT(*) AS nb
FROM stg.client
GROUP BY code_client
HAVING COUNT(*) > 1;
✅ Bonne pratique

Sprint de découverte « léger » au démarrage : un à deux Sprints courts dont le Sprint Goal est « nous savons si et comment on peut produire les trois indicateurs prioritaires » plutôt que « nous livrons les trois indicateurs ». L'objectif est de réduire l'incertitude sur les sources avant de s'engager sur un périmètre.

⚠️ Piège

Spike sans fin ou spike déguisé en développement. Symptôme : le spike dure trois semaines et a produit une demi-solution. Cause : timebox absente. Remède : timebox strictement respectée ; à son terme, on décide (continuer, pivoter, arrêter).


🟡 Pratique — Un Sprint sur la chaîne source → ETL → modèle → rapport#

Le défi du découpage#

Découper verticalement en BI est difficile car les couches sont interdépendantes : pas de rapport sans mesure, pas de mesure sans modèle, pas de modèle sans données. La solution est de réduire la dimension de chaque tranche, pas la profondeur : peu de données, peu de mesures, une page — mais toute la chaîne.

Axe de réduction Exemple
Périmètre de données Une région, un mois, un client
Nombre de mesures Une mesure principale avant dix
Granularité Mensuelle avant journalière
Dimensions Client avant produit avant canal
Règles métier Cas général avant exceptions
Restitution Tableau brut avant visuel soigné

Un Sprint type de deux semaines#

J1J2J3J4J5J6J7J8J9J10Planning, jeu d'échantillonStaging + règles de nettoyagetest de volumétrieDimension client + faits ventestests de clé et de totauxMesures + relations du modèletests de chiffresPage de rapport minimaleversion du modèle, documentationRecette sur chiffres avec le métierréconciliation signéeDéploiement en recettescript reproductibleReview (chiffres réels) + Rétrospective
Objectif du Sprint : « chiffre CA région pilote réconcilié ». J = jour ouvré du Sprint de deux semaines.

Chaque jour combine une brique et son test, jamais « tout construire puis tout tester ». Les tests de chiffres sont écrits avec ou avant la brique (esprit TDD appliqué à la donnée), comme décrit dans Tests et fiabilité des chiffres.

Traitements longs et boucle de retour#

Quand une consolidation ou un rechargement complet dure des heures, la boucle « modifier → tester » s'allonge. Parades :

Parade Principe
Échantillon Développer sur un sous-ensemble représentatif (un client, une région)
Chargement partiel Rejouer uniquement la portion modifiée ; vérifier avant d'étendre
Environnements d'intégration Un environnement de développement dédié, avec jeux d'essai, pour ne pas bloquer
Traitement de nuit Planifier le test lourd la veille pour lire le résultat le matin
Mesure en temps CPU et non en durée murale Les durées fluctuent selon la charge partagée : comparer à environnement égal

Ces points sont détaillés côté livraison dans CI/CD pour la data. Pour la cadence de Sprint : si le cycle de test complet dure plus d'un jour, le Sprint de deux semaines est un minimum raisonnable ; une semaine devient irréaliste sauf si le chargement partiel est maîtrisé.

💡 Astuce d'expert

Séparer le « test léger à chaque modification » du « test complet par version ». Le premier (portion modifiée, jeu réduit) rend le Sprint viable ; le second (installation complète, chargement complet, contrôles de bout en bout) se joue à un rythme plus bas (avant chaque livraison de kit, par exemple). Ne jamais confondre les deux, ni sauter le premier sous prétexte que le second existe.


🟡 Pratique — Sprints de données ou sprints de visualisation ?#

Une tentation répandue consiste à séparer les Sprints : d'abord des « sprints de données » (préparer toutes les données), puis des « sprints de visualisation » (faire les rapports). C'est le mini-cascade dans lequel la valeur n'arrive qu'à la fin et où le métier découvre tard que le chiffre n'est pas celui qu'il attendait.

Approche Avantages Inconvénients Verdict
Sprints de données puis sprints de visualisation Spécialisation, parallélisation possible Aucun retour métier avant la fin ; surprises ; découpage horizontal À éviter comme règle générale
Sprints mixtes verticaux (chaque Sprint traverse la chaîne) Valeur à chaque Sprint ; retour métier précoce ; risques traités tôt Exige des personnes polyvalentes ou une équipe pluridisciplinaire Recommandé
Deux voies parallèles (données avancent d'un Sprint avant la visualisation) Visualisation sur données déjà validées Décalage ; peut dégénérer en mini-cascade Acceptable avec un lien de valeur par Sprint
Sprint « fondation » en tout début (calendrier, dimensions communes, infrastructure) Pose le socle Risque de s'éterniser (« Sprint 0 ») Acceptable court (1 Sprint), avec un chiffre en fin

Quand séparer se justifie#

  • Fondations lourdes réellement indivisibles (ex. migration de plateforme), à borner et à relier à un jalon utilisateur.
  • Spécialités rares réparties entre équipes : alors, synchroniser les Sprints et partager un backlog.
  • Phase d'exploration visuelle (UX) distincte, en amont, avec prototypes sur données factices, à condition de valider ensuite sur données réelles.
✅ Bonne pratique

Garder la règle du chiffre : à la fin de chaque Sprint, le Product Owner peut ouvrir un rapport et lire un chiffre réel validé. Si c'est impossible plus de deux Sprints d'affilée, le découpage est faux.

La séparation modèle sémantique / rapports a, elle, un vrai intérêt technique : plusieurs rapports consomment un même modèle. Dans ce cas, le modèle est un produit avec son propre backlog et son propre versionnement (voir Modèle sémantique et Versionnement et industrialisation des rapports).


🟡 Pratique — La Definition of Done data#

La DoD fait la qualité d'un projet BI. Elle doit couvrir bien plus que « le rapport s'affiche ». Gabarit à adapter (chaque ligne est binaire) :

Dimension Critère de « Terminé » Preuve
Fonctionnel Critères d'acceptation vérifiés Scénarios passants
Qualité des données Contrôles d'unicité, de nullité, d'intégrité référentielle, de plages exécutés et passants ; anomalies connues documentées Journal de contrôles
Recette sur chiffres Réconciliation avec la source de référence sur un périmètre convenu ; écarts expliqués ; signature du métier Fiche de recette signée
Performance Temps de chargement et de réponse mesurés sur le volume cible, sous le seuil fixé Mesures consignées
Sécurité Droits et filtrage par rôle (RLS) testés avec au moins un profil par rôle ; pas de donnée sensible exposée Tests par rôle
Conformité Données personnelles identifiées, base légale/minimisation vérifiées ; durées de conservation prévues Registre à jour
Rejouabilité Le traitement est idempotent : rejouer ne duplique pas, ne corrompt pas Test de double exécution
Historisation Comportement vis-à-vis des changements de source défini et testé Test de changement de dimension
Versionnement Code, modèle, scripts dans le contrôle de source ; version incrémentée si nécessaire Historique des changements
Déploiement Script reproductible vers l'environnement suivant ; installation à blanc testée Journal d'installation
Documentation Description des objets (métadonnées), règles de gestion, lignage, notes de version Documentation générée ou à jour
Multilingue Libellés traduits et vérifiés dans les langues supportées Revue des traductions
Observabilité Journalisation et alertes de chargement ; erreurs lisibles Journal de traitement
🧪 Exemple

Test de réconciliation (T-SQL) à intégrer à la DoD :

-- Réconciliation du CA mensuel entre la source et la table de faits (échantillon : région pilote)
WITH src AS (
    SELECT EOMONTH(f.date_facture) AS mois, SUM(f.montant_ht) AS ca
    FROM   src.facture AS f
    JOIN   src.client  AS c ON c.code_client = f.code_client
    WHERE  c.region = 'PILOTE'
    GROUP  BY EOMONTH(f.date_facture)
), dwh AS (
    SELECT d.fin_de_mois AS mois, SUM(v.ca_ht) AS ca
    FROM   dwh.fact_ventes AS v
    JOIN   dwh.dim_date    AS d ON d.id_date = v.id_date
    JOIN   dwh.dim_client  AS c ON c.id_client = v.id_client
    WHERE  c.region = 'PILOTE'
    GROUP  BY d.fin_de_mois
)
SELECT COALESCE(s.mois, w.mois) AS mois,
       s.ca AS ca_source, w.ca AS ca_dwh,
       COALESCE(w.ca,0) - COALESCE(s.ca,0) AS ecart
FROM   src s FULL OUTER JOIN dwh w ON w.mois = s.mois
WHERE  COALESCE(w.ca,0) <> COALESCE(s.ca,0);   -- attendu : 0 ligne
⚠️ Piège

DoD si lourde qu'aucun item n'est jamais « Terminé ». Symptôme : l'équipe contourne en déclarant « terminé sauf recette ». Cause : DoD copiée d'un autre contexte. Remède : DoD progressive : un socle strict (fonctionnel, qualité, réconciliation, versionnement) dès le départ, des exigences supplémentaires (performance à pleine charge, accessibilité complète) planifiées explicitement comme stories de durcissement avec un objectif daté — et inscrites dans la DoD au moment où l'équipe est capable de les tenir. Ne jamais assouplir une DoD pour tenir un Sprint.

✅ Bonne pratique

Distinguer « DoD du Sprint » et « DoD de la livraison ». Les contrôles lourds (installation complète sur base vierge, consolidation complète, test de montée de version) peuvent se tenir à la fin d'une série de Sprints, avant chaque kit. Documenter cette distinction : la DoD du Sprint porte l'Incrément « potentiellement livrable », la DoD de livraison porte la mise à disposition du produit.

Les thèmes correspondants dans les matrices : Qualité des données, Recette et validation métier, Sécurité, confidentialité, conformité, Métadonnées, lignage, documentation, Sécurité RLS et accès.


🟡 Pratique — Jeux de données de test#

Sans données de test représentatives et stables, on ne peut ni tester, ni itérer vite, ni reproduire un défaut. Stratégie par niveau :

Niveau Contenu Usage Risque
Jeu synthétique minimal Quelques lignes fabriquées, couvrant les cas limites (nul, doublon, fusion, accent, longue chaîne, date limite) Tests unitaires, non-régression, CI Peu réaliste
Jeu de référence Extrait anonymisé et figé d'un environnement réel, avec résultats attendus connus Recette, démonstration, comparaison entre versions Dérive si non maintenu ; fuite si mal anonymisé
Jeu volumineux Réplique ou génération à l'échelle cible Tests de performance et de volumétrie Coût de stockage et de chargement
Données réelles (copie) Copie contrôlée de production Dernière recette, diagnostic Enjeu RGPD, droits d'accès, durée de rétention

Règles#

  1. Jeu de référence versionné avec ses valeurs attendues (le CA du client X en mars vaut Y) ; ces valeurs sont le test de non-régression des chiffres.
  2. Anonymisation / pseudonymisation avant tout usage hors production ; ne pas déplacer de données personnelles vers un environnement de test sans base légale et contrôle d'accès.
  3. Cas limites documentés et couverts : client fusionné, avoir, devise, fuseau horaire, langue, valeur extrême, historique tronqué.
  4. Environnements dédiés : une recette ne se fait pas sur un environnement qui bouge sous les pieds.
  5. Évolution : quand la source change, le jeu de référence est rafraîchi consciemment, avec diff visible et validation.
🧪 Exemple

Jeu synthétique de 12 clients couvrant : un client normal, un sans vente, un fusionné, un avec avoir supérieur à ses ventes, un avec libellé contenant accents et apostrophe, un avec date de création future, un en doublon exact, un en quasi-doublon, un sans région, un avec région inconnue, un très gros volume de lignes, un archivé. Chaque scénario a son attendu numérique. C'est le test de non-régression le plus rentable du projet.

🤖 IA

L'IA peut générer des données synthétiques plausibles et des cas limites, très utile pour amorcer. Elle ne garantit ni la représentativité statistique ni l'absence de recopie de données réelles qu'on lui aurait fournies ; ne jamais lui transmettre de données personnelles réelles en dehors d'un cadre autorisé. Voir Contribution de l'IA.


🟡 Pratique — Dépendance aux sources#

La source (ici, l'application SFA) est un tiers : son schéma, sa qualité et son calendrier ne dépendent pas de l'équipe. Les conséquences pour Scrum :

Risque Manifestation Traitement dans Scrum
Dérive de schéma Colonne renommée, type changé, table retirée Test de schéma à chaque chargement ; item de backlog créé automatiquement ; contrat d'interface
Qualité variable Doublons, valeurs hors plage Contrôles à l'entrée (staging) ; quarantaine des lignes rejetées ; indicateur de qualité en rapport
Indisponibilité Source en maintenance Fenêtres convenues ; mode dégradé ; ne pas planifier de recette ces jours-là
Changements non annoncés Évolution de règles de gestion côté source Product Owner en contact régulier avec le propriétaire de la source ; veille ; revue de version
Accès Droits non accordés à temps Dépendance consignée au backlog, avec propriétaire et date ; traiter avant le Sprint
Volumétrie imprévue Croissance, chargement initial massif Spike ; stratégie incrémentale

Traiter la dépendance comme un item#

Une dépendance n'est pas « ce qui bloque un item » : c'est un item de backlog qui a son propre cycle et que l'on ordonne (« obtenir l'accès » doit être prêt avant que les items qui en dépendent soient sélectionnés). Cartographier : source, propriétaire, mode d'accès, fréquence de changement, contact, SLA.

Contrats de données#

Formaliser avec le propriétaire de la source un contrat : schéma garanti, sémantique des champs, fraîcheur, qualité attendue, procédure de changement (préavis), versions. Même léger (une page + des tests automatisés), il transforme une relation de dépendance en relation gérée. Détail : Sources et contrats de données.

⚠️ Piège

Planifier une recette alors que la source n'est pas stable. Symptôme : la recette « échoue » à cause de modifications en amont, non du travail de l'équipe. Cause : absence de gel de source ou de jeu de référence. Remède : figer un instantané pour la recette ; documenter la date de l'extraction ; comparer ensuite avec la source vivante en connaissance de cause.


🟡 Pratique — Le Product Owner data#

Le PO data a les responsabilités du PO (Scrum, le cadre), avec des exigences supplémentaires. C'est généralement la personne la plus difficile à trouver, car il faut un profil rare : proche du métier, à l'aise avec les chiffres, capable d'arbitrer des définitions.

Responsabilité Spécificité data
Définir la valeur Quelles décisions doit-on mieux prendre ? Quels indicateurs ? Quels usages ?
Arbitrer les définitions « Qu'est-ce qu'un client actif ? » — une seule définition par indicateur, validée et publiée (gouvernance sémantique)
Représenter le métier Parler au nom d'utilisateurs divers, sans se limiter à la demande du plus bruyant
Prioriser Valeur de l'indicateur × risque de la source × effort de la donnée
Piloter la recette Organiser la réconciliation, signer ou faire signer
Gérer la dette de données Accepter (ou non) des compromis connus
Relation avec les propriétaires de sources Négocier contrats, changements, calendriers
Adoption Formation, communication, suivi d'usage

Où trouver ce PO ?#

Option Avantages Risques
Le métier (un responsable commercial formé à Scrum) Légitimité, connaissance métier Disponibilité limitée, culture données variable
Un analyste métier / data translator Maîtrise des chiffres et du vocabulaire Autorité limitée sans mandat clair
Un chef de produit data Vision produit Éloigné du terrain
Une paire (PO métier + analyste) Complémentarité Doit rester une seule voix (un seul redevable)
⚠️ Piège

Le PO « informaticien ». Symptôme : c'est l'équipe IT qui décide de la valeur des indicateurs. Cause : absence de représentant métier disponible. Conséquence : chiffres exacts et inutiles, ou contestés. Remède : exiger un PO métier pour toute décision de valeur ; l'IT conseille. Voir Cadrage, valeur et cas d'usage et Gouvernance et organisation des données.

💡 Astuce d'expert

Mettre au catalogue de backlog un glossaire des indicateurs (définition, formule, source, propriétaire, date de validation). La plupart des conflits entre rapports viennent de définitions divergentes ; un PO data gère le glossaire comme un artefact de premier rang.


🟡 Pratique — Recette métier sur les chiffres#

La recette d'un rapport BI n'est pas une vérification d'écran : c'est la vérification que les chiffres sont justes et compris.

Les cinq niveaux de contrôle#

Niveau Question Méthode
1. Complétude A-t-on toutes les lignes ? Comptages source contre cible, par table et par période
2. Exactitude Les totaux sont-ils égaux ? Réconciliation de sommes, par dimension (région, mois)
3. Règles de gestion La règle appliquée est-elle la bonne ? Cas échantillons calculés à la main par le métier
4. Cohérence Deux rapports donnent-ils le même chiffre pour la même question ? Comparaison croisée ; une seule définition
5. Plausibilité Le chiffre a-t-il du sens (ordre de grandeur, tendance) ? Revue métier, comparaison avec la connaissance terrain

Déroulé#

  1. Préparer : jeu de référence figé ; périmètre ; attendu (source de vérité nommée : le système source, un état comptable, un Excel validé).
  2. Exécuter les contrôles automatisés (SQL de réconciliation) ; consigner les écarts.
  3. Expliquer chaque écart : bug, règle différente, donnée sale, différence de calendrier (date de facture contre date d'expédition), arrondi, fuseau horaire.
  4. Trancher avec le PO : corriger, accepter (avec trace), ou documenter une différence assumée (« notre CA exclut les avoirs de type X »).
  5. Signer : fiche de recette (date, périmètre, version, résultats, réserves, signataire). Cela protège l'équipe et crée la confiance.
🧪 Exemple

Écart de 0,4 % entre le CA du rapport et le CA de la comptabilité. Après analyse : (a) 0,3 % vient des avoirs enregistrés après la clôture mensuelle comptable, (b) 0,1 % d'arrondis de TVA. Décision du PO : conserver la définition « date de facture » et documenter l'écart attendu avec la comptabilité (fiche de rapprochement). Résultat : la confiance est gagnée par la transparence sur l'écart, non par son élimination.

⚠️ Piège

La recette « à l'œil ». Symptôme : « ça a l'air bon ». Cause : manque de temps, de référence. Conséquence : défaut découvert six mois plus tard par un directeur. Remède : réconciliation chiffrée systématique, rejouable à chaque version (non-régression) ; le métier signe des nombres, pas des impressions.

La recette est un événement du Sprint de fait, même si le Guide n'en prévoit pas : intégrez-la dans la DoD, planifiez-la dans le Sprint (jours 8–9 dans l'exemple ci-dessus) et ne la repoussez pas à un « Sprint de recette » final. Les matrices traitent ce point dans Recette et validation métier et Qualité et recette.


🔴 Expert — Dette de données#

La dette technique (Ward Cunningham) désigne les raccourcis de conception qui accélèrent aujourd'hui et ralentissent demain. En data, une forme voisine, la dette de données, mérite son propre suivi.

Forme de dette Exemple Intérêt payé
Dette de modèle Grain mal choisi ; dimension écrasée sans historique Chaque nouvelle demande est une rustine
Dette de qualité Doublons tolérés, valeurs aberrantes non traitées Contestation des chiffres, temps de recette
Dette de définition Deux définitions d'un même indicateur Conflits entre rapports
Dette de lignage / doc On ne sait plus d'où vient une colonne Temps de diagnostic, peur de modifier
Dette de performance Table sans index, import complet quotidien Fenêtre de chargement qui déborde
Dette de sécurité Droits larges « provisoires » Risque de fuite, audit
Dette de test Aucun test de chiffre automatisé Régressions silencieuses
Dette de version Rapports clients liés à des versions anciennes du modèle Complexité de compatibilité

Gérer la dette dans Scrum#

  1. La rendre visible : items « dette » dans le Product Backlog, étiquetés, avec coût d'attente (ce que ça nous coûte chaque mois).
  2. Réserver une capacité (une part fixe du Sprint, à calibrer selon l'ampleur de la dette ; il n'existe pas de norme établie) ; ne pas dépendre d'un hypothétique « Sprint de nettoyage ».
  3. Dette consentie : un compromis volontaire et daté (« on accepte un import complet pour le MVP, remboursement prévu au Sprint N ») vaut mieux qu'une dette cachée. Le PO signe.
  4. Règle de non-aggravation : toute modification d'une zone fragile améliore au moins un point (règle du boy-scout).
  5. Rembourser en priorité la dette qui bloque un objectif prioritaire.
  6. Mesurer : ancienneté, nombre d'items, temps passé en contournement.
⚠️ Piège

Dette de données niée « parce que le rapport marche ». Symptôme : les évolutions prennent de plus en plus de temps. Cause : le modèle accumule des exceptions. Remède : traiter la dette de modèle tant que peu de rapports en dépendent ; une fois que des rapports clients sont liés à la structure, la modifier devient coûteux (voir migrations).

Voir le thème des matrices Dette technique et maintenabilité.


🔴 Expert — Rejouabilité, idempotence et historisation dans le Sprint#

Ces propriétés ne se « testent » pas à la recette : elles se conçoivent, donc se planifient comme exigences dans le Sprint.

Idempotence#

Un traitement est idempotent si l'exécuter plusieurs fois avec les mêmes entrées produit le même état final qu'une seule exécution. C'est la condition d'un chargement rejouable après incident, et de la sérénité en production.

-- Chargement idempotent d'une dimension : MERGE sur clé naturelle
MERGE dwh.dim_client AS cible
USING stg.client_propre AS source
   ON cible.code_client = source.code_client
WHEN MATCHED AND (cible.libelle <> source.libelle OR cible.region <> source.region) THEN
     UPDATE SET libelle = source.libelle, region = source.region, date_maj = SYSUTCDATETIME()
WHEN NOT MATCHED BY TARGET THEN
     INSERT (code_client, libelle, region, date_maj)
     VALUES (source.code_client, source.libelle, source.region, SYSUTCDATETIME());
-- Rejouer deux fois : mêmes lignes, pas de doublon.

Pour une table de faits : pattern « supprimer la fenêtre puis réinsérer » (par période) dans une même transaction, ou swap de partition, plutôt que « ajouter sans condition ».

Historisation#

Les attributs qui changent (région d'un client) posent la question du type de dimension (SCD type 1 : écraser ; type 2 : versionner). Choisir tôt, car le changement tardif est coûteux. Le test de la DoD doit vérifier le comportement attendu face à un changement (jeu avec deux versions du même client).

Planifier le « rejouable » dans Scrum#

  • Critère d'acceptation systématique : « un double chargement ne modifie pas le résultat ».
  • Story de reprise : « après un échec à mi-chargement, la reprise ne laisse pas de données partielles ».
  • Jeu d'essai avec événements de retard de données (données arrivant après la période).
  • Journalisation du lot (identifiant, heure, nombre de lignes) pour le diagnostic.
⚠️ Piège

Tester uniquement le chemin heureux d'un premier chargement. Symptôme : tout passe en recette ; en production, le deuxième chargement duplique. Cause : jeu de test sur base vide. Remède : test de double exécution et de chargement sur base déjà peuplée dans la DoD.


🔴 Expert — Migrations, versions de modèle et kits#

Un datamart livré à plusieurs clients, en versions successives, est un produit : chaque nouvelle version doit pouvoir s'installer sur une base neuve et migrer une base existante sans perte de données. Scrum le permet à condition de traiter ces aspects comme des exigences de l'Incrément, non comme du « post-traitement ».

Exigence Intégration dans le Sprint
Installation à blanc Test de DoD : le kit s'installe sur une base vide ; journal de contrôle
Montée de version Test : installation sur une base de la version précédente ; données conservées ; scripts de migration versionnés
Compatibilité des rapports Les rapports existants fonctionnent sur le modèle mis à jour (ou la rupture est annoncée, documentée, et un plan de migration existe)
Renommage / suppression de colonne Item de backlog de migration : ordre d'application (produire d'abord, consommer ensuite), période de coexistence
Identifiants stables Les objets consommés par des rapports tiers (mesures, colonnes) ne sont pas recréés : on les modifie en place pour ne pas casser les liaisons
Notes de version Livrable de l'Incrément de livraison

Version produit contre Sprint#

Un Sprint produit des Incréments internes ; une version du produit (kit) regroupe plusieurs Sprints et passe par une DoD de livraison plus lourde. Ne pas confondre ni rythmer la version sur le Sprint. Pour la gouvernance de version et la livraison, voir CI/CD pour la data, Choisir et hybrider et, côté outils, Stratégies de branches et GDS et données SQL/BI.

💡 Astuce d'expert

Les correctifs sur des versions déjà livrées sont un flux distinct de l'évolution (backlog de la version courante). Beaucoup d'équipes data gèrent mal ces deux flux dans un même Sprint : réserver une capacité de maintenance et un mode de fonctionnement (Kanban pour le flux de correctifs, Scrum pour l'évolution) évite que les urgences ruinent les Sprint Goals. Voir Méthodes agiles et Lean.


🔴 Expert — Coordination DataOps et gouvernance#

Scrum répond à « comment organiser le travail d'équipe ». Il ne couvre pas, seul :

Besoin Réponse complémentaire
Industrialiser chargement, tests, déploiement DataOps : automatisation, contrôles qualité continus, monitoring (voir Méthodes spécifiques à la data, CI/CD pour la data)
Gouverner les définitions, les accès, la conformité Gouvernance des données, comités, glossaire, rôles (data owner, steward)
Choisir quoi construire à l'échelle de l'organisation Portefeuille, stratégie de données
Cadrer une démarche analytique exploratoire CRISP-DM (fouille de données ; cycle itératif de compréhension métier et données, préparation, modélisation, évaluation, déploiement)
Modéliser Dimensional modeling (Kimball), Data Vault, selon le contexte
Exploiter Support, supervision, gestion des incidents

Les points de rencontre :

  • Gouvernance ↔ DoD : les exigences de gouvernance (classification, rétention, accès) deviennent des critères de DoD.
  • DataOps ↔ Sprint : plus les contrôles sont automatisés, plus la DoD est peu coûteuse et le Sprint court.
  • Architecture ↔ Product Backlog : les décisions d'architecture (choix de plateforme) sont des items explicites, parfois des spikes, avec un propriétaire.
✅ Bonne pratique

Écrire un « contrat d'équipe » d'une page qui explicite : propriétaire des définitions, DoD data, politique de qualité, niveaux de service sur sources et rapports, mode de gestion des correctifs, calendrier de livraison des versions. Il compense le silence du Guide sur ces sujets.


🔴 Expert — Quand Scrum est-il le mauvais choix pour la data ?#

Situation Pourquoi Scrum convient mal Alternative
Support et maintenance de rapports (flux continu d'incidents et de petites demandes) Priorités changeantes à la journée ; Sprint Goal vide de sens Kanban (flux, limites de WIP, SLE)
Exploration / data science (résultat incertain) « Incrément utilisable » difficile ; boucle de recherche CRISP-DM itératif, cycles de recherche timeboxés ; Scrum pour la partie industrialisation
Migration à grande échelle à périmètre connu Peu d'incertitude, forte contrainte de calendrier Planification prédictive par lots, avec jalons de non-régression
Équipe d'une personne Cérémonial disproportionné Kanban personnel ; revues régulières avec le métier
Pas de PO / sponsor impliqué Valeur non pilotée Résoudre d'abord la gouvernance
Contrainte réglementaire de preuves (audit) Documentation formelle requise Hybride : Scrum pour l'exécution, traçabilité documentaire intégrée à la DoD

Cette typologie se prolonge dans Choisir et hybrider et Comparatif des méthodes.


Forces et faiblesses#

Forces de Scrum pour la data Faiblesses / zones d'attention
Retour métier fréquent : on découvre tôt que le chiffre n'est pas celui qu'on attendait Découpage vertical difficile à cause des couches interdépendantes
Priorisation par valeur : indicateurs d'abord par usage Sources non maîtrisées qui perturbent les Sprints
Transparence (DoD, backlog) : confiance accrue dans les chiffres Temps de traitement long : boucle de retour lente
Gestion du changement : les besoins BI évoluent beaucoup Dette de modèle difficile à rembourser une fois les rapports déployés
Auto-gestion : adaptée aux équipes expertes Découverte : spikes nécessaires, non prévus par le Guide
Amélioration continue (rétro) : capitalise sur les écarts de chiffres Compétences rares (PO data)
Cadence : rythme de livraison prévisible Livraison en versions / kits : rythme différent du Sprint
Incrément réel : évite l'effet tunnel Conformité (RGPD, audit) à intégrer par la DoD, pas dans le cadre

Métriques : notes /5 d'adéquation#

Appréciations d'expert, contextuelles (voir Notation). Contexte : équipe de 4 à 8 personnes sur un datamart d'entreprise évolutif (source applicative, rapports Power BI), livraisons par versions. À recalibrer pour un projet data science ou une équipe d'une personne.

Critère Note Justification
Prévisibilité 3/5 Bonne à l'échelle du Sprint ; l'incertitude des sources limite la prévision long terme
Adaptation au changement 5/5 Les besoins et définitions BI bougent sans cesse ; le backlog le supporte
Maîtrise du risque 4/5 Boucles courtes + spikes ; les risques de sécurité/conformité exigent des garde-fous en DoD
Légèreté (overhead) 3/5 Cérémonial adapté à 4–8 personnes ; lourd pour 1–2
Adéquation projet data 4/5 Excellent pour besoin → chiffre ; moins naturel pour exploration pure et flux de support
Facilité d'adoption 3/5 Demande un PO data réel et un découpage vertical qui s'apprend
Passage à l'échelle 2/5 Plusieurs équipes sur un même modèle posent des problèmes de coordination (Nexus/LeSS à étudier)
Visibilité / gouvernance 4/5 Backlog et DoD donnent de la transparence ; à compléter par une gouvernance des définitions
Qualité des livrables 4/5 Si la DoD inclut réconciliation et tests ; sinon 2/5

Adéquation par type de travail data#

Type de travail Scrum Kanban Prédictif Hybride
Construction d'un datamart de zéro 4/5 2/5 3/5 4/5
Évolution d'un datamart existant 4/5 4/5 2/5 4/5
Rapports sur un modèle stable 3/5 4/5 2/5 3/5
Support / correctifs 2/5 5/5 1/5 3/5
Migration de plateforme (périmètre connu) 3/5 2/5 4/5 4/5
Exploration / data science 2/5 3/5 1/5 3/5

Ces notes sont des repères de discussion, pas des mesures : elles reflètent l'avis d'un praticien sur un contexte type et ne remplacent pas votre propre auto-évaluation (matrice conduite projet data).


Contribution de l'IA#

🤖 IA

En data, l'IA est à la fois un accélérateur (SQL, DAX, tests, documentation) et un risque (chiffres plausibles mais faux, confidentialité).

Cas d'usage Gain Risque Maturité Prérequis Garde-fous
Générer des requêtes de profilage de données pour un spike 4/5 2/5 4/5 Schéma connu Exécuter sur un environnement sans donnée sensible ; relire
Générer des tests de réconciliation SQL / DAX à partir des critères d'acceptation 4/5 3/5 4/5 Critères précis, schéma Valider logique et jointures ; comparer avec un chiffre connu
Générer des données synthétiques et des cas limites 4/5 2/5 4/5 Description du modèle Pas de données réelles en entrée ; vérifier la couverture
Rédiger la documentation des objets et des règles (métadonnées, glossaire) 4/5 3/5 4/5 Code et commentaires Vérification par le PO ; ne pas laisser l'IA inventer une règle
Proposer des traductions des libellés multilingues 3/5 3/5 4/5 Glossaire métier Relecture par un locuteur métier ; termes spécialisés
Analyser des écarts de recette (hypothèses de cause) 3/5 3/5 3/5 Extraits anonymisés L'IA propose, la vérification est humaine
Estimer l'effort d'un item de données 1/5 4/5 2/5 — L'effort dépend de l'état de la source, inconnu de l'IA
Décider d'une règle de gestion ou d'une définition d'indicateur 0/5 5/5 1/5 — Interdit : décision du PO, responsabilité métier
Écrire des mesures DAX complexes 3/5 4/5 3/5 Modèle, exemples Tester sur jeu de référence ; vérifier le contexte de filtre

Exemples de prompts :

  • « Voici le schéma de ma table de faits et de ma dimension client (sans données). Écris des requêtes T-SQL de contrôle : unicité de la clé, orphelins de clé étrangère, valeurs négatives, dates hors plage. Explique chaque contrôle. »
  • « Voici trois critères d'acceptation. Propose pour chacun un test de réconciliation SQL et un cas limite que je n'ai pas prévu. »

Ce que l'IA ne remplace pas : la définition de la valeur et des règles de gestion (PO), la recette métier signée, la responsabilité des chiffres, la décision sur la dette consentie, la gouvernance des accès. Risques propres à la data : requêtes syntaxiquement correctes mais sémantiquement fausses (mauvaise jointure qui multiplie des lignes, filtre perdu) donnant un chiffre plausible ; fuite de données si l'on colle des données réelles dans un service non autorisé ; dette cachée de code généré non compris par l'équipe. Règle : tout test généré par l'IA est lui-même testé (sur un cas dont on connaît le résultat). Voir IA et conduite de projet et IA et outils.


Voir aussi#

✻ Rédigé par Claude Sonnet 5.5