On parle toujours de Scrum dans les méthodes agiles, mais il existe de nombreux autres frameworks !
Celui que j’ai récemment pratiqué est “Shape Up !”. Il s’agit d’une méthode utilisée dans l’entreprise BaseCamp qui s’appuie sur son logiciel éponyme “BaseCamp”. Si vous souhaitez lire leur bible, ça se trouve ici.
Les piliers de “Shape Up !”
“Shape Up !” se base sur quelques hypothèses qui guident l’ensemble de la méthode :
- Des durées d’itération allongées à 6 semaines. Les méthodes agiles sont souvent appliquées avec des durées d’itérations de 2 semaines, mais il est rare qu’on arrive à réaliser une fonctionnalité de bout en bout dans ce laps de temps (conception, design, implémentation, test).
- La définition de notre appétit pour chaque fonctionnalité. Même en allongeant la durée des itérations, on n’a jamais le temps d’implémenter la feature parfaite. Il faut donc prendre le problème à l’envers, et définir notre “appétit” pour chaque fonctionnalité, c’est à dire le temps que l’on souhaite investir dessus. On adapte ensuite le périmètre à implémenter en fonction du temps alloué.
- L’assignation d’un projet complet aux développeurs. Nous sommes habitués à avoir un backlog constitué d’innombrables petites tâches. Maintenir ce backlog est extrêmement coûteux et pénible, et on pourrait même parler de masochisme lorsqu’il s’agit de fouiller dans votre historique JIRA… Par ailleurs, en assignant chaque petite tâche d’un même projet à différents développeurs, aucun d’eux ne se sent réellement responsable de la qualité globale du projet. Il faut donc autant que possible assigner un projet complet à un seul développeur pour augmenter son sentiment de responsabilité.
- La dette technique n’est jamais priorisée suffisamment régulièrement, et elle s’accumule inéluctablement : une période de cooldown de 2 semaines est définie à chaque itération pour permettre aux développeurs de la traiter le plus régulièrement possible
- shaping : définition des grandes lignes, de la faisabilité technique, et de notre “appétit” pour plusieurs projets à implémenter.
- betting : choix parmi tous les projets complètement “shapés” de ceux à implémenter dans la prochaine itération.
- building : l’implémentation des projets sélectionnés pendant le betting
- cooldown : la phase de relâchement où le développeur peut travailler sur “ce qu’il veut” en lien avec l’entreprise.
- 6 semaines qui contiennent les étapes de shaping pour le Produit, et de building pour les developpeurs
- 2 semaines qui contiennent le betting pour le Produit, et le cooldown pour les développeurs.
L’étape de Shaping, ou façonnage
“Shaper” une feature, c’est en faire une esquisse, une ébauche : ce n’est pas aussi précis qu’un design fait par un designer, mais ce n’est pas que du texte non plus (qui est souvent incomplet et fastidieux à lire).
Le principal intérêt du croquis est qu’il permet d’un coup d’oeil de comprendre l’idée globale de la fonctionnalité, tout en laissant de la place pour la créativité du designer. On ne se perd pas dans des détails de wording ou dans des choix esthétique. Pour autant, cela donne quand même suffisamment d’informations aux développeurs pour qu’ils imaginent leur architecture logiciel.
Pour avoir un projet complètement “shapé”, il doit avoir suivi les 4 étapes suivantes :
- Définition des limites et de l’appétit : on définit les limites du problème suite à l’analyse du besoin, puis on définit notre “appétit” pour à cette fonctionnalité. Plus la fonctionnalité est importante pour le business, plus notre appétit sera grand, et plus nous y investirons du temps (cette durée peut même aller jusqu’à couvrir le cycle entier, soit 6 semaines)
- Description schématique des éléments : réalisation d’un croquis répondant au problème tout en restant dans les limites définies précédemment
- Evaluation des risques : on regarde un peu plus en profondeur notre solution pour détecter tous les risques (cas aux limites, etc…).
- Ecriture du pitch : on regroupe tous les éléments ci-dessus dans un pitch (spécification + schéma) qui permettra de le prioriser et de l’implémenter.
L’étape de Betting, ou pari
L’étape de betting consiste à prioriser parmi les projets complètement “shapés” ceux à inclure dans la prochaine itération. Il est de la responsabilité de l’équipe produit de présenter des projets complets et à jour. Une fois les projets sélectionnés, tous ceux rejetés sont censés être supprimés, notamment pour ne pas alimenter ce fameux backlog avec des projets obsolètes. A noter que “Shape Up !” donne des méthodes pour sélectionner les pitchs du prochain cycle, mais je ne les détaillerai pas dans cet article.
L’étape de Building, ou construction
- les choix d’implémentation (le lead dev n’est là que comme coach, et non comme prescripteur de solution technique),
- le design (le développeur prend part aux choix de design, et peut indiquer quelles solutions sont plus ou moins couteuses à implémenter, etc…)
- ou l’organisation interne (liste de tâches, réunions périodiques, etc…).
L’étape de Cooldown, ou relâchement
Et la QA dans tout ça ?
Mon retour sur ce process
Shaping : un numéro d’équilibriste
La QA reste une étape nécessaire
Convient à des entreprises plutôt stables
Optimisation temporelle
Et le positif ?
Il y a plein de positif dans “Shape Up !” : ne plus gérer un backlog infini et obsolète, travailler sur des projets de bout en bout, avoir un temps dédié à l’exploration… Cette méthode nous force à nous poser davantage de questions sur ce qui est réellement important pour l’utilisateur puisque nous travaillons dans un temps fixé à l’avance. Basecamp explique d’ailleurs “Cutting scope isn’t lowering quality” : implémenter moins de fonctionnalités sur un projet ne signifie pas diminuer sa qualité, bien au contraire puisque cela nous oblige à faire des choix qu’il faut savoir justifier.
Je ne peux que vous conseiller de tester cette méthode pour vous l’approprier. Et si vous l’avez déjà expérimentée, n’hésitez pas à me faire votre retour d’expérience en commentaire !
Ce qu’il faut retenir
- Durée des itérations plus longue (6 semaines + 2 semaines)
- 4 étapes pour la conception
- shaping : “appétit” pour un problème et schématisation de sa solution
- betting : priorisation des différents projets “shapés”
- building : implémentation des projets via des équipes dédiées
- cooldown : amélioration globale du projet, à la discrétion des développeurs