By: Peter Boileau, analyste principal de gestion
Je sais - CWB National Leasing n’est pas la première firme dont le nom vient à l’esprit quand vous pensez au développement de logiciel.
Pourtant, nous avons un historique de développement de logiciels propriétaires. Récemment, nous avons gagné le Prix d’excellence Opérations et technologie, de l’Equipment Leasing and Finance Association pour le développement de National Leasing Interactive. En 1998, Microsoft a reconnu FastCredit®, notre système automatisé de décision de crédit, comme l'une des meilleures solutions logicielles de l'année. Ne vous méprenez pas, nous restons une société de financement, mais le développement joue depuis toujours un rôle majeur dans notre réussite.
Actuellement, nous développons une mise à niveau de nos systèmes de gestion de documents et de crédits-bails qui permettra de rationaliser et de fusionner nos systèmes existants. C’est un projet de grande envergure, et en raison de sa portée, nous avons choisi le développement agile. Pourquoi ? La méthode agile présente une tonne d'avantages par rapport aux techniques traditionnelles de gestion de projet, en particulier pour le développement de projets à grande échelle.
Jetons un coup d’œil à la façon dont le développement agile peut être avantageux pour votre entreprise en vous aidant à créer une solution plus rapide et plus adaptée quand vous développerez votre prochaine mise à niveau de logiciel.
Qu'est-ce que le développement agile ?
Le développement agile est un processus qui fait appel à des cycles continus de planification, de développement, d'intégration, d’essai et de rétroaction pour la création de logiciels. Chaque cycle est beaucoup plus court qu’un calendrier de développement habituel, ce qui permet aux développeurs de s’adapter à l’évolution des spécifications du produit.
Le développement agile repose sur 12 principes qui guident l’approche de la gestion du projet. Vous pouvez en savoir plus ici à leur sujet, mais voici les bases :
-
Satisfaire le client en livrant le logiciel rapidement et régulièrement
-
Accueillir favorablement en tout temps les changements de spécifications du produit
-
Livrer progressivement et fréquemment un logiciel opérationnel tout au long du processus de développement
-
Les propriétaires et les développeurs du produit doivent communiquer quotidiennement au sujet des besoins et de l’avancement du produit
-
Donner aux personnes concernées le goût et les moyens d’agir et leur fournir l’environnement et le soutien nécessaires
-
Communiquer en face-à-face avec les équipes de développement pour transmettre l'information - c’est productif et efficace
-
Un logiciel qui est opérationnel est la principale mesure de l’avancement
-
Encourager un développement durable afin que les développeurs, les initiateurs et les utilisateurs puissent maintenir indéfiniment un rythme constant
-
Renforcer l’agilité en promouvant l'excellence technique et la qualité de la conception
-
Travailler efficacement ; maximiser la quantité de travail à ne pas faire
-
Les équipes auto-organisées produisent les meilleures architectures, spécifications et conceptions
-
Réfléchir régulièrement aux moyens d’être plus efficace et s'adapter en conséquence
Quelle est la différence entre le développement agile et le développement traditionnel ?
Le développement traditionnel - connu notamment comme la « méthode en cascade » - consiste à diviser le projet en séquences linéaires. Une nouvelle séquence ne commence que lorsque la précédente est terminée. Généralement, ces séquences ressemblent à ceci :
Avec la méthode en cascade, une équipe détermine tôt les spécifications du produit. Les améliorations demandées par le client doivent attendre la prochaine mise à niveau majeure du produit. Le développement agile fonctionne différemment. Au lieu d'une longue séquence de développement visant à couvrir toutes les spécifications du produit, la méthode agile fonctionne par séquences appelées « sprints ». Chaque sprint dure de quelques semaines à quelques mois et débute avec un produit minimum viable (PMV). Le PMV ne comprend que les spécifications principales du produit, qui permettent à l'équipe de développement de créer son produit plus rapidement qu’elle ne le ferait avec la méthode en cascade.
Une fois le PMV lancé, l'équipe commence le prochain sprint et développe les caractéristiques additionnelles du produit que demandent les clients.
Un exemple du monde réel
Facebook n'a pas explicitement dit qu'il utilise le développement agile, mais son historique des mises à niveau de produit semble indiquer que le géant des médias sociaux emploie une approche semblable. À son lancement en 2014, Facebook était un simple site social où les utilisateurs allaient voir des photos des amis. Depuis lors, les développeurs ont dévoilé de nombreuses mises à niveau, comme un fil de nouvelles personnalisé, une robuste application de messagerie et même la vidéo en direct. Le partage de photos était le produit minimum viable ; l’application multifonctionnelle qu’on connaît aujourd'hui est le fruit de nombreux sprints successifs.
Bien sûr, la méthode agile n’est pas la seule raison de la réussite de Facebook, mais la méthode de développement rend possible l’adaptation à l'évolution des besoins des utilisateurs. Et c'est la principale raison pour laquelle vous l'utiliseriez lors de l'élaboration de votre prochain produit.
Comment votre entreprise peut-elle utiliser le développement agile ?
Il existe de nombreuses façons d’employer la méthode agile. Vous devriez l'adapter à votre équipe, à vos besoins opérationnels et à vos projets d'affaires pour obtenir de meilleurs résultats. Pour une analyse des types les plus courants de méthode agile, consultez ce site. Voici quelques-unes de mes versions favorites - je les recommande :
Visualiser votre travail avec Kanban
Visualiser votre travail vous permettra de définir des échéanciers réalistes. La méthode aide à évaluer la charge de travail et montre l’avancement du projet. Comment ? Si vous êtes déjà familier avec Agile, vous avez probablement entendu parler de la fréquence à laquelle certaines équipes utilisent les notes autocollantes. Chacune de ces notes représente une tâche et vous la reporterez sur un flux de travaux Kanban, ce qui aide à mesurer la charge de travail et à visualiser l'état d'avancement du projet.
Chaque ligne représente les tâches terminées, les tâches auxquelles nous travaillons et les tâches auxquelles que nous travaillerons ensuite. Ce Kanban est placé à la vue de tous dans nos bureaux afin que tout le monde puisse suivre l’avancement du projet.
Faire des mêlées (scrums) fréquemment avec votre équipe
Les mêlées ou scrums sont de mini-rencontres entre les propriétaires de produit, les maîtres de mêlée et l'équipe de développement. Elles ont pour effet d’augmenter la communication. Les réunions ont lieu à intervalles réguliers – tous les matins, tous les quelques jours ou toutes les quelques semaines en fonction de l’ampleur du projet. Elles aident à donner un portrait de l’ensemble du projet grâce à la microlentille que représente la contribution de chaque membre de l'équipe. Chaque membre répertorie ses tâches en cours et tout problème qui en empêche l'exécution. Avec l’augmentation de la communication, les chefs d'équipe et les propriétaires de produit identifient rapidement les problèmes et créent des solutions pour maintenir le projet sur les rails.
Permettre à vos clients de fournir une rétroaction
Vos clients utilisent votre produit et ce sont eux qui ont les meilleures suggestions d'amélioration. Comme vous sortirez des mises à jour petites et fréquentes avec le développement agile, vous aurez besoin d'une méthode pour recueillir rapidement les commentaires des clients. Utilisez de brefs et fréquents sondages client pour fermer votre boucle de rétroaction. Si vous créez un système interne comme nous le faisons, demandez aux employés s’ils ont des améliorations à suggérer pendant les essais. Nous plaçons dans une zone de grande circulation au sein de nos bureaux un tableau blanc sur lequel les employés peuvent soumettre des améliorations du logiciel au moyen de notes autocollantes. Nous incluons les meilleures suggestions dans nos prochains sprints.
L’adaptabilité est la clé
Les clients sont plus branchés que jamais sur la technologie. Ils attendent une expérience intuitive en utilisant des fonctionnalités en constante amélioration et ils veulent ces caractéristiques tout de suite. Alors, pourquoi développeriez-vous votre prochain logiciel à l’aide d’un processus rigide qui n’offre pas de possibilités d’adaptation comme la méthode en cascade ? Avec le développement agile, vous améliorerez régulièrement votre produit en fonction des commentaires des clients et vous les maintiendrez heureux.