Dans un précédent article, nous avons vu que la priorisation des tâches dites techniques au regard des fonctionnalités pouvait être source de complexité, de discussions interminables, voire de tensions. Dans les fonctionnements prédictifs notamment, où les tâches sont estimées , il y aura un conflit permanent entre la priorisation des tâches qualifiées de techniques et les fonctionnalités.

Photo : Nicolas Éliard
Une première solution est d’embarquer un peu de technique lors de chaque livraison fonctionnelle, dans l’épaisseur du trait. Ainsi, plus nous livrons souvent des fonctionnalités, plus nous livrons de tâches qualifiées de techniques. Les tâches techniques les plus simples à prioriser sont celles qui n’existent pas. C’est particulièrement efficace pour résorber de la dette technique. Mais il existe des tâches techniques difficilement découpables en petits incréments.
Comment gérer les tâches techniques non sécables ?
L’opposition entre tâches techniques et fonctionnalités est une simple vue de l’esprit. En effet, aucune fonctionnalité n’existe sans sous‑jacent technique. Et aucun composant technique ne se justifie s’il ne contribue pas directement ou indirectement à une fonctionnalité. Tous les octets techniques sont aussi des octets fonctionnels. Toute application est technique et fonctionnelle. Il s’agit de la même application. Donc la technique et le fonctionnel ne sont pas des objets différents : ce sont des points de vue différents sur le même objet. Toutes les tâches techniques sont des fonctionnalités qui s’ignorent.
Comment révéler le fonctionnel d’une tâche dite technique ?
En faisant l’expérience de pensées que nous n’allons pas faire cette tâche dite technique. Cette mise à jour de la base de données de la version 8.1 à la version 8.3, que se passe‑t‑il si nous ne la faisons pas ? Dans un premier temps, probablement rien. Dans un deuxième temps, cela peut entraîner un peu de complexité pour les équipes techniques. Et si nous persistons dans la non‑réalisation de la tâche dite technique ? Il y aura, par exemple, un risque de vol des données utilisateurs et d’incidents majeurs.
La voilà, la formulation fonctionnelle de cette tâche que nous percevions comme étant technique : « En tant qu’utilisateur, la confidentialité de mes données est préservée et l’application reste constamment accessible ». Cette fonctionnalité peut maintenant être priorisée par rapport aux autres fonctionnalités.
Les techniques « dans l’épaisseur du trait » et celle de la « révélation » ont un point commun. Elles font disparaître la dichotomie entre tâches techniques et fonctionnalités. Elles font même disparaître le concept de tâche technique, dans une unification simplificatrice. Le backlog n’est plus constitué que de fonctionnalités, ce qui simplifie les échanges, la priorisation… Et améliore grandement l’efficience.