

- 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
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 →…
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
- 🟢 Novice — Pourquoi Scrum et la data se frottent
- 🟢 Novice — Qu'est-ce qu'un Incrément en BI ?
- 🟢 Novice — L'équipe data pluridisciplinaire
- 🟡 Pratique — Écrire des stories de données
- 🟡 Pratique — Spikes d'exploration de données
- 🟡 Pratique — Un Sprint sur la chaîne source → ETL → modèle → rapport
- 🟡 Pratique — Sprints de données ou sprints de visualisation ?
- 🟡 Pratique — La Definition of Done data
- 🟡 Pratique — Jeux de données de test
- 🟡 Pratique — Dépendance aux sources
- 🟡 Pratique — Le Product Owner data
- 🟡 Pratique — Recette métier sur les chiffres
- 🔴 Expert — Dette de données
- 🔴 Expert — Rejouabilité, idempotence et historisation dans le Sprint
- 🔴 Expert — Migrations, versions de modèle et kits
- 🔴 Expert — Coordination DataOps et gouvernance
- 🔴 Expert — Quand Scrum est-il le mauvais choix pour la data ?
- Forces et faiblesses
- Métriques : notes /5 d'adéquation
- Contribution de l'IA
- 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.
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.
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 |
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.
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.
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#
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 :
- Tirer le travail technique par une story consommateur (« voir le CA par client » tire la dimension client).
- 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.
- 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).
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;
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.
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#
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é.
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.
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 |
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
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.
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#
- 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.
- 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.
- Cas limites documentés et couverts : client fusionné, avoir, devise, fuseau horaire, langue, valeur extrême, historique tronqué.
- Environnements dédiés : une recette ne se fait pas sur un environnement qui bouge sous les pieds.
- Évolution : quand la source change, le jeu de référence est rafraîchi consciemment, avec diff visible et validation.
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.
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.
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) |
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.
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é#
- 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é).
- Exécuter les contrôles automatisés (SQL de réconciliation) ; consigner les écarts.
- 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.
- Trancher avec le PO : corriger, accepter (avec trace), ou documenter une différence assumée (« notre CA exclut les avoirs de type X »).
- Signer : fiche de recette (date, périmètre, version, résultats, réserves, signataire). Cela protège l'équipe et crée la confiance.
É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.
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#
- La rendre visible : items « dette » dans le Product Backlog, étiquetés, avec coût d'attente (ce que ça nous coûte chaque mois).
- 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 ».
- 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.
- Règle de non-aggravation : toute modification d'une zone fragile améliore au moins un point (règle du boy-scout).
- Rembourser en priorité la dette qui bloque un objectif prioritaire.
- Mesurer : ancienneté, nombre d'items, temps passé en contournement.
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.
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.
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.
É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#
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#
- Cadre et pratique : Scrum, le cadre, Scrum en pratique, Fondamentaux.
- Méthodes dédiées et comparaison : Méthodes spécifiques à la data, Agiles et Lean, Comparatif, Choisir et hybrider.
- Livraison : CI/CD, CI/CD pour la data, Pièges et bonnes pratiques.
- Outils : GDS et données SQL/BI, Azure DevOps / TFS, Métriques et reporting.
- Matrices : Conduite de projet data, Délais et industrialisation DataOps, Développement BI.
- Reporting Power BI : Bonnes pratiques Power BI transverses, Checklist de projet reporting.
- Glossaire : Glossaire.
✻ Rédigé par Claude Sonnet 5.5