Cover - Agile Methodologies
Management

Méthodologies agiles 101 : Comment réussir un projet de développement Drupal avec Scrum

Quelle que soit la qualité de votre projet, il peut échouer s'il est mal exécuté. Une bonne gestion de projet est essentielle pour créer un produit dans les délais et de manière efficace, tout en répondant aux besoins de toutes les parties prenantes et des utilisateurs.

C'est pourquoi, chez Connect-i, nous attachons une grande importance à l'organisation du processus de développement. Aujourd'hui, nous allons parler de l'approche de gestion de projet la plus populaire — Agile et de la méthodologie Agile qui s'est avérée apporter les meilleurs résultats pour notre équipe et nos clients— Scrum.

Qu'est-ce que la méthode Agile ?

Agile est une approche flexible et collaborative du développement de logiciels basée sur la livraison itérative et incrémentale de produits, par opposition à un modèle de développement traditionnel et linéaire.

Dans le développement de logiciels traditionnels, la parole du contrat était plus importante que l'apport d'une valeur réelle au client. Les développeurs devaient suivre strictement une séquence fixe d'étapes pour construire un produit complet du premier coup. Le client ne pouvait voir le produit qu'à la fin du développement et ne pouvait y apporter aucune modification sans renégocier un nouveau contrat. Les cycles de développement étaient longs et la résolution des problèmes était coûteuse.

Frustrés par cet état de fait, 17 personnalités de la communauté du développement de logiciels se sont réunies en 2001 à Snowbird, dans l'Utah, et ont créé le Manifeste pour le développement agile de logiciels.

Le manifeste pour le développement agile de logiciels

Les membres de la réunion travaillaient depuis un certain temps sur de nouveaux cadres de développement et ont constaté que leur vision des principaux problèmes et solutions s'alignait. C'est ainsi qu'est né le Manifeste pour le développement agile de logiciels, qui proclame quatre valeurs fondamentales du développement de logiciels :

The Manifesto for Agile Software Development

Le groupe de Snowbird 17 a fourni des conseils plus spécifiques sur l'application de ces valeurs avec les Douze principes du logiciel agile, notamment la livraison fréquente de logiciels fonctionnels, l'accueil des exigences changeantes, la collaboration quotidienne avec les professionnels, la confiance dans les équipes pour qu'elles s'auto-organisent et fassent leur travail, et le maintien d'un rythme de travail soutenable :

Les principes du Manifeste Agile

  1. Notre priorité absolue est de satisfaire le client par la livraison rapide et continue d'un logiciel de qualité.
  2. Accueillir les exigences changeantes, même à un stade avancé du développement. Les processus agiles exploitent le changement pour l'avantage concurrentiel du client.
  3. Livrer un logiciel fonctionnel fréquemment, de quelques semaines à quelques mois, avec une préférence pour les délais les plus courts.
  4. Les commerciaux et les développeurs doivent travailler ensemble quotidiennement tout au long du projet.
  5. Construire des projets autour d'individus motivés. Donnez-leur l'environnement et le soutien dont ils ont besoin, et faites-leur confiance pour accomplir le travail.
  6. La méthode la plus efficace et la plus efficiente pour transmettre des informations à une équipe de développement et au sein de celle-ci est la conversation en face-à-face.
  7. Un logiciel fonctionnel est la principale mesure du progrès.
  8. Les processus agiles favorisent le développement durable. Les sponsors, les développeurs et les utilisateurs doivent être en mesure de maintenir un rythme constant indéfiniment.
  9. L'attention continue portée à l'excellence technique et à la bonne conception renforce l'agilité.
  10. La simplicité - l'art de maximiser la quantité de travail non effectué - est essentielle.
  11. Les meilleures architectures, exigences et conceptions émergent d'équipes auto-organisées.
  12. À intervalles réguliers, l'équipe réfléchit à la manière de devenir plus efficace, puis peaufine et ajuste son comportement en conséquence.

Le Manifeste Agile et ses principes ont gagné la communauté des développeurs de logiciels, et les organisations ont commencé à adopter des méthodologies basées sur l'approche agile, recherchant plus de flexibilité et de réactivité dans leurs processus de développement.

Les méthodologies agiles

De nombreux cadres agiles sont apparus au fil des ans, chacun permettant de mettre en œuvre les principes agiles dans des cas d'utilisation différents, par exemple Adaptive Software Development, Extreme Programming, Crystal Clear, Scaled Agile Framework, etc. Les deux cadres les plus populaires sont Scrum et Kanban.

Scrum s'articule autour de cycles de développement itératifs, de révisions et d'adaptations régulières, de rôles d'équipe définis et de livraisons incrémentales de logiciels.

Kanban se concentre sur l'optimisation du flux de travail et la livraison continue en limitant le travail en cours pour répondre à la capacité de l'équipe et en visualisant l'avancement du travail sur un tableau Kanban pour une meilleure transparence et une vue d'ensemble de haut niveau.

Kanban
Contrairement à Scrum, Kanban n'implique pas de délais fixes, et une nouvelle tâche est entreprise dès que la précédente est achevée. Pour conserver toute l'attention de l'équipe, le travail en cours est limité, généralement à quelques éléments de travail par étape/colonne.

Il n'y a pas de "norme d'or" ou de méthodologie universelle dans la méthode Agile. L'approche Agile la plus efficace est celle qui s'aligne sur les objectifs et les défis spécifiques d'un projet et d'une organisation donnés. En outre, les équipes peuvent combiner des éléments de différents cadres ou personnaliser les pratiques pour répondre à leurs besoins uniques.

Pour l'équipe de Connect-i, la méthodologie la mieux adaptée s'est avérée être Scrum.

Qu'est-ce que le cadre Scrum ?

Scrum est un cadre de gestion de projet agile qui permet à de petites équipes interfonctionnelles de s'attaquer à des projets complexes de manière incrémentale, dans le cadre de cycles de publication courts et de durée fixe, en tirant continuellement des enseignements du retour d'expérience.

Le terme "Scrum" (Mêlée) vient du rugby et désigne une phase de jeu dynamique et rapide où les joueurs se serrent les uns contre les autres et tentent de s'emparer du ballon.

Scrum

Jeff Sutherland, l'un des co-créateurs de Scrum, a joué au rugby à l'université et a établi des parallèles entre le travail d'équipe efficace et la prise de décision rapide observés au rugby et les caractéristiques souhaitées du développement logiciel agile.

Le cadre Scrum se compose de plusieurs éléments clés, notamment les rôles spécifiques de l'équipe, les événements (ou cérémonies) et les artefacts. Ces éléments s'associent pour fournir une approche structurée mais flexible du développement agile de logiciels. Voici un aperçu des principaux éléments du cadre Scrum :

Rôles de l'équipe :

Le Product Owner représente les intérêts des parties prenantes et collabore avec l'équipe pour clarifier les exigences, définir le carnet de commandes et hiérarchiser les fonctionnalités.

Le Scrum Master veille au respect des principes de Scrum, aide l'équipe à éliminer les obstacles et encourage une culture d'amélioration continue.

L'équipe de développement est responsable de la livraison d'un produit livrable. L'équipe est interfonctionnelle, avec des spécialistes de la conception UX/UI, du back-end, du front-end, de l'assurance qualité, etc., mais comparativement petite, généralement moins de dix personnes.

Evénements:

Le sprint est une unité de base de l'itération de développement dans Scrum, à la fin de laquelle l'équipe livre un incrément de produit potentiellement expédiable. Le sprint est limité dans le temps et dure généralement de 2 à 4 semaines. La durée du sprint reste constante tout au long du processus de développement et sert de référence pour toutes les autres activités et améliorations.

La planification du sprint est une réunion au début de chaque sprint, au cours de laquelle le propriétaire du produit et l'équipe collaborent pour définir l'objectif du sprint et sélectionner les histoires d'utilisateurs pour le carnet de commandes du sprint.

Le stand-up est une courte réunion quotidienne animée par le Scrum Master, au cours de laquelle les membres de l'équipe partagent les mises à jour, discutent des défis et des préoccupations, et planifient le travail de la journée.

La revue de sprint est une réunion qui a lieu à la fin de chaque sprint et au cours de laquelle l'équipe présente les résultats de son travail aux parties prenantes, ces dernières donnent leur avis et le propriétaire du produit décide d'envoyer un incrément et met à jour le carnet de commandes.

La rétrospective du sprint est une autre réunion à la fin de chaque sprint, au cours de laquelle l'équipe réfléchit aux processus de travail internes, identifie ce qui a bien fonctionné et ce qui pourrait être amélioré, et définit les actions à entreprendre pour améliorer les sprints futurs.

Artéfacts :

Le Product backlog est une liste hiérarchisée de toutes les caractéristiques, améliorations et corrections souhaitées du produit, gérée par le propriétaire du produit.

Le Sprint Backlog est un sous-ensemble d'éléments du backlog de produit sélectionnés pour le sprint en cours. Le backlog de sprint est élaboré en collaboration par le Product Owner et l'équipe de développement au cours de la planification du sprint.

L'incrément est la somme de tous les éléments du carnet de commandes terminés à la fin d'un sprint.

Tous ces éléments fonctionnent de concert pour fournir un cadre qui favorise la transparence, l'introspection et l'adaptation tout au long du processus de développement.

Comment Connect-i intègre Scrum dans les projets Drupal

Drupal, un système de gestion de contenu open-source, permet aux organisations de créer des expériences numériques robustes et flexibles. Lorsqu'ils sont associés à des méthodologies agiles, en particulier Scrum, les projets de développement Drupal peuvent aboutir à un flux de travail fluide et dynamique. Voici comment Scrum s'aligne sur Drupal et les avantages qu'il apporte au processus de développement.

Étapes du projet

Nos projets de développement Drupal comprennent généralement les étapes suivantes :

  1. Conception : définir la vision globale du projet - but, objectifs, niche de marché, caractéristiques et faisabilité technique.
  2. Planification : recueillir et documenter les exigences du client, les récits des utilisateurs, les exigences fonctionnelles et techniques, et définir la portée du projet et les livrables.
  3. Conception : concevoir l'architecture du produit, l'UX et l'UI.
  4. Développement : développement front-end et back-end, développement de modules Drupal personnalisés ou de plugins, intégration d'API et de services de tiers.
  5. Tests : résoudre les bugs et s'assurer que le produit répond aux attentes des clients et des utilisateurs via l'assurance qualité (QA) et les tests d'acceptation par les utilisateurs.
  6. Déploiement et maintenance : préparer le produit et l'environnement de production pour le lancement, déployer le produit finalisé sur le serveur live, surveiller et traiter tout problème ou perturbation.
  7. Mises à jour et améliorations : mettre en œuvre des mises à jour, des correctifs ou de nouvelles fonctionnalités en fonction des commentaires des utilisateurs et de l'évolution des besoins.

Processus Scrum

Après s'être mis d'accord sur la vision, la portée et les exigences du projet, le processus Scrum commence par la création, par le propriétaire du produit, d'un carnet de commandes contenant tous les éléments de travail prévus pour le projet. Le carnet de commandes hiérarchise toutes les tâches planifiées en fonction de leur importance afin que l'équipe puisse construire un produit minimum viable dès que possible, le tester, obtenir un retour d'information substantiel et l'améliorer au cours des itérations suivantes.

Une fois que le carnet de commandes est prêt, le propriétaire du produit et l'équipe de développement planifient le sprint : ils hiérarchisent et sélectionnent les tâches pour les 2 à 4 semaines à venir, les attribuent aux membres de l'équipe, analysent les dépendances entre les tâches, etc. L'équipe de développement travaille ensuite sur les éléments sélectionnés, avec des réunions quotidiennes pour se contrôler mutuellement et résoudre les goulets d'étranglement et les problèmes dans les délais impartis.

Chaque sprint se termine par une revue, au cours de laquelle le propriétaire du produit présente l'incrément de projet achevé aux parties prenantes, qui font part de leurs commentaires. Lors de la réunion de rétrospective du sprint, l'équipe réfléchit au sprint pour voir comment améliorer la prochaine itération. Le propriétaire du produit met à jour le carnet de commandes du produit pour ajuster la priorité des éléments de travail suivants.

Agile Framework

Ce cadre facilite l'adaptabilité, la transparence et l'amélioration continue afin d'apporter une valeur ajoutée de manière progressive et itérative.

Avantages de Scrum pour le développement de Drupal

Les méthodologies agiles, y compris Scrum, fournissent un cadre qui complète les caractéristiques uniques des projets de développement Drupal :

Implication du client

En raison de sa modularité, le développement Drupal implique d'innombrables options de solutions et nécessite une étroite collaboration avec les clients afin de saisir leur vision avec précision. C'est précisément ce que permet Scrum.

De la planification à la livraison d'incréments utilisables, les clients ont une visibilité totale de l'avancement du projet. Ils peuvent tester le prototype du produit dans les semaines qui suivent le début du projet et donner leur avis sur la faisabilité, la viabilité et l'impact potentiel d'une idée ou d'un incrément, ce qui permet de façonner les itérations ultérieures.

Cette étroite collaboration garantit que chaque partie du produit est continuellement améliorée à chaque itération et apporte une valeur ajoutée au client.

Développement itératif

Les projets Drupal impliquent souvent des exigences complexes qui peuvent changer au cours du processus de développement. Contrairement aux méthodologies prédictives telles que la chute d'eau, Scrum permet aux développeurs d'affiner en permanence les caractéristiques et les fonctionnalités et de s'adapter à l'évolution des besoins, même à un stade avancé du développement, ce qui se traduit par un produit plus réactif et plus centré sur le client.

Supposons qu'un concurrent mette en œuvre la même fonctionnalité que celle prévue par notre client et qu'elle fasse un flop ; nous pouvons à tout moment modifier l'orientation du projet pour tenir compte des nouveaux éléments.

Collaboration étroite au sein de l'équipe

Les équipes soudées et interfonctionnelles comme celle de Connect-i bénéficient grandement de la communication quotidienne du cadre Scrum, de l'auto-organisation et de la collaboration entre les membres de l'équipe.

Créer des produits Drupal à succès avec Connect-i

La méthode Agile a eu un impact profond sur le secteur du développement de logiciels, transformant la façon dont les équipes abordent la gestion de projet, la collaboration et la livraison de produits. Ses principes ont influencé à la fois les méthodologies de développement et la culture organisationnelle, en mettant l'accent sur l'adaptabilité, l'orientation client et l'amélioration continue.

En tant que fervents partisans de la méthode Agile, l'équipe de Connect-i s'engage à fournir de la valeur aux clients grâce à une approche centrée sur le client, une attention particulière aux détails, une grande flexibilité et un large éventail de compétences. Contactez-nous pour savoir comment nous pouvons concrétiser votre idée de projet.