Kamahunda, le gérant de Knetworks, la société qui prend en charge techniquement le projet, applique une méthode de gestion de projet en vogue : Scrum. Je vais m'attacher à la présenter en m'inspirant de l'article dans Wikipedia. Toutefois, quoique que j'aie des connaissances techniques, je ne suis pas développeur. Par conséquent, si des lecteurs avertis notent des erreurs, des imprécisions ou des omissions, qu'ils n'hésitent pas à le signaler en commentaire.
Parmi les différentes méthodes de méthode de gestion de projet informatique, il y a les méthodes agiles. Cette famille compte elle-même plusieurs rejetons, dont Scrum. Scrum un ensemble de "règles de vies" assez souple pour s'adapter aux évolutions d'un projet mais assez rigoureux pour maximiser l'efficacité.
Scrum signifie "mêlée" en anglais. Au rugby, la mêlée survient après une faute. C'est une phase de reprise du jeu qui permet à une équipe, par un effort collectif, de repartir dans le bon sens. La méthode Scrum, en intégrant les errements possibles, a ainsi l'ambition de permettre de mener à bien des projets qu'il est impossible d'entièrement définir à leur début. Les spécifications seront modifiées et précisées, des technologies inconnues entreront en jeu, etc. Entièrement piloté selon la perspective métier, Scrum permet d'obtenir un produit très proche des besoins utilisateurs.
Scrum définit un jeu minimal d’acteurs, de cérémonies et d’artefacts en vue de relever les principaux défis du projet de façon itérative : la planification, la gestion du temps et la gestion des obstacles.
Auparavant, signalons que la brique fondamentale de la méthode Scrum est le Sprint. C'est une itération courte - de l’ordre de deux à quatre semaines - dont le périmètre est défini lors d’une réunion de planification initiale.
Scrum suppose une intense collaboration entre les différents acteurs :
- Le Directeur de Produit (Product Owner) : expert métier, représentant des utilisateurs, il définit les priorités de développement
- Le Gestionnaire (ScrumMaster) : il a pour charge de faciliter l'application de Scrum par l'équipe
- L'Équipe, qui s'engage à la réalisation de fonctionnalités.
Une cérémonie est une réunion dont la durée ainsi que les tenants et les aboutissants sont déterminés.
Le processus Scrum repose sur les trois artefacts représentés ci-dessus : Backlog de Produit, Backlog de Sprint et Produit.
Défini par le directeur de produit, le Backlog de Produit (Product Backlog) est la liste des fonctionnalités du logiciel. Loin d'être un document figé, il évolue avec le projet.
Le Backlog de Sprint (Sprint Backlog) recense les tâches du Sprint. Au début de chaque Sprint a lieu une cérémonie fondamentale : le Sprint Planning. Celui-ci réunit les acteurs afin de déterminer l’objectif et le contenu du Sprint. Le principal résultat du Sprint Planning est le Backlog de Sprint, qui regroupe l’ensemble des fonctionnalités que l’équipe s’engage à produire.
Au terme de chaque Sprint, le produit partiel est livré avec le niveau de qualité attendu pour son exploitation. Cette dimension d'inachevé est à l’origine du qualificatif incrémental souvent associé aux méthodes agiles. Chaque Sprint se termine par une revue (Sprint Review). Elle permet au Directeur de Produit d'évaluer, au cours d'une démonstration, le produit partiel et de modifier au besoin le Backlog de Produit.
Afin de faciliter cette démarche, outre le Sprint Planning et le Sprint Review, Scrum intègre deux autres cérémonies. La mêlée quotidienne (Daily Scrum) est cérémonie d'environ un quart d'heure réunissant les acteurs. Elle a pour objectif de maintenir chacun au courant de l’activité de tous, de déterminer les tâches de la journée et d’identifier les éventuels obstacles à la progression du Sprint. La rétrospective est une cérémonie d'au moins une heure. Elle réunit les acteurs au terme de chaque Sprint afin de le passer en revue et d'identifier des axes d'amélioration. C'est une cérémonie capitale qui incarne l’un des principes fondamentaux énoncés par le Manifeste Agile :
À intervalles réguliers, l’équipe réfléchit sur les moyens de devenir plus efficace, puis adapte et ajuste son comportement en conséquence.