Découpage horizontal ou vertical
Les découpages verticaux permettent de livrer de la valeur ; les découpages horizontaux permettent de livrer des engagements. Pourquoi le découpage par couche technologique retarde la création de valeur, et comment opter pour un découpage en fonction des résultats attendus par les utilisateurs afin de livrer quelque chose à chaque sprint.
Le découpage vertical divise une histoire en fonction des résultats attendus par les utilisateurs ; le découpage horizontal la divise en fonction des couches techniques. Ce simple choix détermine si chaque tranche aboutit à un résultat concret ou non. Les tranches verticales apportent de la valeur. Les tranches horizontales apportent des promesses.
La découpe horizontale, c’est comme quand on coupe la pâte au couteau : on obtient deux moitiés vides.
La différence
La segmentation horizontale s’effectue selon les couches architecturales : le front-end lors de ce sprint, le back-end lors du suivant, la base de données lors du sprint d’après. Le travail s’inscrit dans les sprints, mais aucun sprint ne produit à lui seul un résultat concret pour les utilisateurs. Les chiffres de vélocité de l’équipe augmentent ; le journal des modifications visible par les utilisateurs reste vide.
Le découpage vertical s’articule autour des résultats pour l’utilisateur. Une tranche fine qui touche toutes les couches : un simple bouton qui fonctionne réellement de bout en bout, même s’il ne gère qu’un seul cas d’entrée. L’équipe livre moins par tranche, mais chaque tranche est un élément concret et prêt à être livré. Le journal des modifications se remplit, les utilisateurs constatent les progrès, et l’équipe peut ajuster son cap en fonction de l’utilisation réelle plutôt que de l’utilisation prévue.
Lorsque le découpage horizontal semble nécessaire
Ce n’est généralement pas le cas. « Nous avons besoin du schéma de la base de données avant de pouvoir développer l’interface utilisateur » est l’argument classique, et il cède presque toujours la place à « nous pouvons coder la réponse en dur, livrer l’interface utilisateur et créer la base de données lors de la prochaine itération ». Le malaise lié à la livraison d’un faux backend est bien réel — mais il est moindre que celui de ne rien livrer pendant trois sprints.
L’exception : le travail de base sur les plateformes
Certaines infrastructures ne disposent d’aucune partie accessible aux utilisateurs tant qu’elles ne sont pas achevées : migration vers un nouveau fournisseur d’authentification, remplacement du backend d’une file d’attente, refonte du pipeline de déploiement. Il s’agit là de projets, et non de « stories ». Traitez-les comme tels : ne les divisez pas horizontalement pour faire semblant. Évaluez-les à l’échelle d’un projet, communiquez le calendrier et acceptez que la vélocité de l’équipe reflète l’investissement nécessaire. Présenter une migration s’étalant sur trois sprints comme trois « stories » ne fait que tromper le graphique de progression.
Si une « slice » ne fournit rien dont un utilisateur puisse se servir, ce n’est pas une « slice ».
Foire aux questions
Qu’est-ce que le découpage vertical dans la méthode agile ?
Le découpage vertical consiste à diviser une fonctionnalité en fonction des résultats attendus par l’utilisateur ; ainsi, chaque tranche correspond à une fine section traversant toutes les couches — interface utilisateur, logique et données — qui fournit à l’utilisateur un élément réellement exploitable, même si elle ne traite qu’un seul cas de figure. Chaque tranche peut faire l’objet d’une mise en production indépendante.
Quelle est la différence entre le découpage horizontal et le découpage vertical ?
Le découpage horizontal s’effectue par couche technique — le front-end lors d’un sprint, le back-end lors du suivant —, de sorte qu’aucun sprint ne produit à lui seul un résultat exploitable par l’utilisateur. Le découpage vertical s’effectue en fonction du résultat attendu par l’utilisateur, de sorte que chaque tranche livrent un parcours fonctionnel de bout en bout. Les tranches verticales apportent de la valeur ; les tranches horizontales apportent des promesses.
Pourquoi le découpage vertical est-il préférable ?
En effet, chaque tranche constitue un élément concret et livrable. Le journal des modifications s’étoffe, les utilisateurs constatent les progrès réalisés et l’équipe peut ajuster son cap en fonction de l’utilisation réelle plutôt que de l’utilisation prévue. Le découpage horizontal permet d’augmenter les indicateurs de vélocité tout en conservant inchangé le produit visible par les utilisateurs pendant plusieurs sprints d’affilée.
Dans quels cas le découpage horizontal est-il acceptable ?
Lorsqu’il s’agit de travaux fondamentaux sur la plateforme, sans aucune partie visible pour l’utilisateur avant leur achèvement — migration des fournisseurs d’authentification, remplacement du backend de file d’attente, remplacement du pipeline de déploiement —, il s’agit de projets, et non de « stories » : évaluez-les en tant que tels et communiquez le calendrier prévu, au lieu de faire comme s’ils pouvaient être fractionnés.
Lectures complémentaires
- Décomposition des user stories — la boîte à outils complète, et comment distinguer une véritable décomposition d’une fausse.
- Division de l’histoire de SPIDR — cinq découpes verticales fiables.
- L’estimation agile : le guide complet — la plateforme de référence pour tout ce qui concerne ce sujet.