Scrum est en quelques sortes une méthodologie, une approche, un système pour piloter la conception logicielle et sa livraison, mais pas seulement. Toute création de produit peut, en théorie, utiliser cette approche — l’idée étant bien entendu de travailler à plusieurs. C’est connu, l’enfer, c’est les autres !
Cette méthodologie est apparue en 1996. Scrum utilise les valeurs du Rugby pour les adapter à l’industrie du logiciel.
Mon objectif n’est pas de vous faire un exposé complet sur Scrum, mais de vous en parler, éventuellement de vous donner envie de vous laisser ensuite dévorer toute la littérature existante sur le sujet sur Internet. Je vais vous en parler dans le cadre de développement de logiciels ou de jeux, mais cela peut-être utilisé dans un cadre plus large.
Méthodes dites “Agiles”
Elle se classe parmi les méthodes « agiles ». C’est à dire, une approche plus « directe », plus souple, plus réactive et qui implique d’avantage le client. Ces méthodes Elles reposent sur un cycle de développement itératif, incrémental et adaptatif.
C’est quoi le problème avec les méthodes traditionnelles ? Quand on réalise un cahier des charges le plus complet possible, anticipant au mieux tout problème éventuel, en levant toute incertitude, en réalisant suffisamment de recherches pour qu’il ne reste plus d’inconnus. Oui, mais voilà, en théorie c’est beau, mais en pratique, on est rapidement à coté de la plaque sur de gros projets complexes. En effet, dans le monde réel, des inconnues subsistent le plus souvent, des éléments externes au projet viennent perturber l’ensemble et il est parfois nécessaire de changer de cap en cours de développement.
Personnellement, c’est une approche qui me convient mieux : j’ai toujours remarqué qu’il était plus efficace de créer un noyau de programme et de le faire évoluer par couches successives… quitte à devoir réécrire quelques fois une partie du code.
Les méthodes agiles permettent de mieux satisfaire le client, accueillir favorablement les demandes de changement et livrer le plus souvent possible des éléments fonctionnels. Le client peut ainsi arrêter le projet quand il le souhaite (si c’est convenu ainsi bien entendu).
Pourquoi utiliser Scrum ?
Scrum est adapté aux projets complexes. Il est simple à comprendre, mais reste difficile à maîtriser. Ce n’est pas vraiment une méthodologie complète, mais plus un cadre de travail régi par un certain nombre de règles.
Bref, il faut savoir apprendre « constamment », être l’écoute, réactif et impliquer le client dans la prise de décision. La transparence est le maître mot.
Scrum permet d’éviter :
- Le manque de communication au sein de l’équipe de dev
- La mauvaise compréhension des besoins client
- La difficulté à prendre en compte les changements en cours de projet
- l’insuffisance de testes et de suivi
C’est quoi précisément ?
Diviser pour régner : On va diviser le temps, le besoin et l’équipe.
Pour cela, Scrum a choisi de découper le projet en briques de temps qu’on appelle « Sprint » ou itérations (entre quelques heures et 1 mois).
Chaque sprint commence par
- une réunion de planification : Le PO présente à l’équipe les fonctionnalités à réaliser durant le sprint (Sprint Backlog). L’équipe s’engage sur une durée et sur un contenu.
- une phase de réalisation avec ses réunions quotidiennes de 15 minutes max (mêlée quotidienne ou daily scrum) – Chacun doit répondre à « qu’ai-je fait hier », « qu’ai-je prévu aujourd’hui », « est-ce que je rencontre des difficultés ? ».
- une revue de sprint (voir ce qui a été produit, ce qui s’est bien déroulé ou non – c’est la présentation au client/product owner) et
- une rétrospective (pareil, mais pour l’organisation Scrum, pas le produit, comment améliorer l’organisation). Quels sont nos forces, nos faiblesses, nos blocages, nos axes d’amélioration pour la prochaine itération.
Le besoin est découpé en sous-besoins appelés « User Stories ». Ces dernières doivent être assez petites pour être réalisées durant un itération.
Chaque équipe Scrum est composée d’un « product Owner », responsable du produit. Cela peut-être le client ou un représentant. Il y a l’équipe de dev, les opérationnels en quelques sortes – ça peut-être des graphistes ou des ingénieurs son – et un Scrum Master, sorte de gardien de la bonne pratique de Scrum ! Il protège l’équipe des perturbations extérieures. Ce n’est pas un chef de projet, car le but recherché est l’auto-organisation. Il n’y a aucune hierarchie entre ces 3 fonctions.
Diviser l’équipe permet de limiter la taille et d’avoir ainsi une meilleure synergie (5–10 personnes).
Quelques termes à connaitre
Il y a d’autres termes à connaître comme le Backlog Produit : Liste ordonnée de tous les éléments identifiés comme nécessaires au produit. J’appelle cela le cahier des fonctionnalités quelques fois. Un Backlog Produit n’est jamais complet. Ses toutes premières moutures ne font qu’esquisser les besoins tels qu’initialement connus et compris. Même en terme de fonctionnalités, on se dit que c’est en faisant qu’on les appréhendera au mieux… C’est important de comprendre l’esprit derrière l’approche. On ajoutera au Backlog toutes les fonctionnalités, les fonctions, les exigences, les améliorations et les corrections qui constituent des modifications à apporter au produit dans les versions futures. En gros, cela va grossir… grossir… Grossir ! A mesure que le logiciel est utilisé bien évidemment.
Le backlog Sprint, comme son nom le laisse présager, c’est une extraction du BP pour le Sprint.
On qualifie d’incrément tout élément qui aura été terminé durant un sprint. Il s’agit d’une fonctionnalité qui peut répondre partiellement au besoin, mais elle doit rester livrable et fonctionnelle.
Conclusion
Voilà, vous avez un aperçu du principal. Si vous souhaitez mettre en place cette approche dans la conception de vos produits, le mieux serait d’intégrer à votre équipe un « Scrum Master ». L’autre solution, c’est d’en former un. Pour cela, il y a des formations, et des livres. En voici quelques un :
- Scrum — 5e éd.- Pour une pratique vivante de l’agilité de Claude Aubry aux éditions DUNOD (2018)
- Scrum, de la théorie à la pratique: Initiation. Perfectionnement. Agilité. De Bassem El Haddad aux éditions EYROLLES (2017)
- Scrum pour les Nuls de Mark C. Layton (2016)
- Scrum, méthode Agile de David Chaplin aux éditions ENI (2016) — épliant aide-mémoire de 12 pages autour de SCRUM (6€).
Un guide gratuit en français : guide en français. (16 pages).
Maintenant, ce qui paraît optimal sur le papier ne l’est pas en pratique. On reproche notamment à Scrum son manque de flexibilité dans l’approche, de présenter un risque d’augmentation indéfinie des fonctionnalités, d’un glissement… son manque d’adéquation avec les outils de dev existant… Bref, c’est une méthode qui a aussi ses inconvénients. A vous de vous faire une opinion.
As-tu déjà utilisé une méthode agile de gestion de projet ? Scrum ? Qu’en as-tu pensé, ses qualités, ses inconvénients ? Et sinon, après avoir lu cet article, trouves-tu l’approche intéressante ?