Approche traditionnelle vs agile : définition
Avant de nous intéresser aux avantages et inconvénients de chacune de ces méthodes, commençons par les définir.
Lors de l’utilisation d’une approche “traditionnelle”, le projet, ses fonctionnalités et sa finalité sont clairement définis à l’avance. Cette méthodologie repose sur l’utilisation d’un processus strict, la rédaction d’une documentation détaillée et une implication plus faible du client. Elle consiste à définir l’ensemble des fonctionnalités du projet, les spécifier de façon détaillée, les développer puis les tester avant validation et mise en service.
Le développement d’une application avec une méthode dite agile est très différent. L’utilisation d’une méthode agile implique une méthodologie plus légère, des tâches plus petites, une livraison rapide des incrémentations et une communication permanente entre le donneur d’ordre et l’équipe de développement. Le maître mot est la flexibilité, tant en termes de planification que d’incrémentation des fonctionnalités.
Je vous propose de voir plus en détail chacune de ces méthodes dans la suite de cet article.
Développer une application avec une approche traditionnelle
Avec cette méthode, vous devez planifier votre projet de A à Z avant le lancement du développement de votre application. En effet, la méthode classique est un modèle linéaire, où les différentes phases de développement suivent un ordre précis. Chaque tâche doit être terminée avant de passer à la tâche suivante. Dans le cadre du développement d’une application web ou mobile, les étapes sont les suivantes :
- Définition des spécifications fonctionnelles et techniques détaillées, rédaction du cahier des charges.
- Design et maquettage de l’application
- Développement de l’application
- Réalisation des tests unitaires et d’acceptance (phase de recette)
- Correction des problèmes éventuels
- Livraison et déploiement de l’application
- Maintenance
Le chef de projet détient toute la responsabilité du développement et doit rendre compte des résultats. En dehors du processus de conception et de planification du projet, vous ne serez que très peu impliqué. C’est-à-dire qu’une fois le cahier des charges bien défini, l’équipe de développement prend en charge la réalisation de l’application. De même, en cas de problème, les membres de l’équipe de développement sont censés en référer au chef de projet qui a le dernier mot.
Étant donné que la gestion de projet traditionnelle s’appuie sur une forte planification et une analyse poussée lors des phases de conception, le processus de développement qui en découle est rationalisé. Le chef de projet peut alors se concentrer sur d’autres tâches. Les détails fournis lors de l’expression de besoins et l’élaboration du cahier des charges permettent aux développeurs d’être autonomes lors des phases de développement.
Développer une application avec une approche agile
La méthode agile s’est développée dans les usines Toyota dans les années 50. Cette méthode tient d’ailleurs plus d’une philosophie de gestion de projet que d’une méthodologie à proprement parler. On retrouve ainsi plusieurs méthodes comme les célèbres Kanban japonais ou la méthode Scrum.
Le terme agile s’est popularisé dans les années 2000 avec l’édition du “Manifeste pour le développement Agile de logiciel”. Créé par un petit groupe de personnes qui développent des applications avec une méthodologie différente de l’approche traditionnelle, ils ont ainsi défini les 12 principes du développement agile :
- Satisfaire le client en livrant rapidement des fonctionnalités à forte valeur ajoutée pour l’utilisateur
- Accueillir avec bienveillance les demandes de changement
- Livrer régulièrement des fonctionnalités opérationnelles
- Maintenir un contact régulier entre les équipes clients et les équipes de développement
- Travailler sur le projet avec des personnes motivées
- Privilégier les rendez-vous en face à face pour faire avancer le projet
- Mesurer l’avancement du projet en termes de fonctionnalités et non de temps ou de tâches
- Assurer la soutenabilité du projet sur le long terme avec en favorisant un rythme constant
- Minimiser les tâches inutiles et rester simple
- Responsabiliser les parties prenantes et les laisser s’organiser
- Ajuster régulièrement les processus pour améliorer l’efficacité
La méthode agile, dans le cadre du développement d’une application web ou mobile, est une méthode itérative, incrémentale et adaptative. Elle ne fonctionne pas sous forme de tâches planifiées sur un calendrier défini mais sous forme de “sprints”. C’est lors de ces sprints que sera développée votre application.
Un sprint est une courte période de temps, environ 2 semaines, durant laquelle vont s’enchaîner un certain nombre de tâches et se terminant par la livraison d’un incrément de produit fonctionnel.
– Quality Street
Avant chaque sprint une réunion réunissant toutes les parties est organisée afin de définir les fonctionnalités à ajouter ou modifier lors de la session à suivre. Ces tâches sont évidemment priorisées en fonction de vos besoins. Les tâches les plus urgentes seront traitées en premier mais il se peut que les tâches définies ne puissent être complètement développées. Si tel est le cas, les tâches seront réorganisées et traitées lors de la planification du sprint suivant.
Développement agile vs traditionnel : avantages et inconvénients.
Chacune des méthodologies évoquées dans cet article dispose d’avantages mais aussi d’inconvénients. Dans le but de vous aider à choisir, mais également de mieux comprendre ces approches, voici une liste des points forts et des points faibles de chacune de ces méthodes.
Méthode traditionnelle : avantages et inconvénients
Commençons par découvrir les points forts mais aussi les points faibles des méthodologies traditionnelles de gestion de projet (cycle de développement en V).
Les points forts des approches traditionnelles
- Une direction claire : comme tout est planifié à l’avance, chaque membre de l’équipe connaît ses responsabilités et les exigences du projet. Cela leur permet de travailler efficacement et avec un minimum de supervision.
- Un niveau de contrôle élevé : les chefs de projet détiennent presque tout le pouvoir de décision dans une configuration traditionnelle. Cela permet d’éviter les écarts par rapport au périmètre initial du projet.
- Une responsabilité centralisée : puisque les chefs de projet détiennent tout le pouvoir de prise de décision dans la phase développement, ils seront naturellement responsables de la réussite ou de l’échec du projet. Au lieu de contacter plusieurs personnes, vous savez toujours à qui vous adresser pendant le projet afin d’obtenir les informations nécessaires.
- Une documentation claire et complète : une documentation appropriée est en fait la pierre angulaire de la méthodologie traditionnelle de gestion de projet. Non seulement les documents normalisent l’ensemble du processus, mais ils peuvent également servir de guide à l’avenir.
- Un développement au forfait : L’avantage de détailler précisément le périmètre du projet et de pouvoir avoir un chiffrage précis et détaillé des travaux qui seront faits.
Les points faibles des méthodes traditionnelles
- Un cadre de travail rigide : l’approche traditionnelle suit un ensemble d’étapes séquencées qui permettent à une équipe de toujours aller de l’avant. Lorsque vous utilisez la méthodologie traditionnelle, il y a peu de possibilité de changement si un imprévu survient au cours d’un projet. D’où l’intérêt de bien préciser vos besoins dès la phase de conception avec une documentation fonctionnelle et technique précise et détaillée.
- Des tests tardifs : quelle que soit la méthode utilisée, votre application sera testée. Pour la méthode traditionnelle, les tests interviennent à la fin de la phase de développement. Ainsi, tout résultat négatif pourrait déclencher la nécessité d’une révision importante et coûteuse. Nous vous préconisons donc d’allotir le développement de votre application afin de procéder à des tests à chaque livraison.
- Des besoins parfois difficiles à définir : vous pouvez avoir du mal à conceptualiser les besoins en termes de spécifications fonctionnelles pendant la phase de définition des besoins. Cette phase prendra donc beaucoup de temps. En plus du fait de la difficulté à conceptualiser les besoins, des besoins incomplets peuvent rendre le livrable différent de ce que vous espériez lors de votre expression de besoins. Si vous avez des difficultés à réaliser votre cahier des charges, nous vous préconisons de vous faire accompagner par un professionnel.
Méthode agile : avantages et inconvénients
Cette fois-ci ce sont les avantages et les inconvénients de l’approche agile que nous vous présentons. Cette liste n’est pas exhaustive, nous vous avons sélectionné pour vous les points les plus pertinents.
Les avantages des méthodologies agiles
- Flexibilité accrue : lorsque l’on compare un développement agile et traditionnel, l’approche agile est beaucoup plus flexible. L’ensemble du projet étant divisé en petits sprints, il est extrêmement facile d’introduire des changements à mi-parcours.
- Transparence : contrairement à l’approche traditionnelle, toute l’équipe est au courant de l’avancement du projet. Dans cette approche, toute l’équipe décide du plan ensemble et partage la propriété du projet ce qui évite la rétention d’informations. De même, vous êtes impliqué tout au long du projet et vos commentaires sont pris en compte pour obtenir la version finale de l’application.
- Simplicité : les méthodologies agiles les plus répandues exigent la division de l’ensemble du projet en tâches beaucoup plus petites et réalisables. Cela permet le développement continu du projet tout en assurant la qualité. Dans le cas de l’approche traditionnelle, des changements ou des problèmes soudains ramènent parfois l’équipe à la “case départ”. Cela entraîne souvent une perte de temps et d’argent.
- Un meilleur contrôle : l’approche agile permet d’avoir un meilleur contrôle sur le projet grâce à sa transparence, à la prise en compte des feedbacks utilisateurs et aux contrôles qualité effectués à chaque itération. La qualité est assurée tout au long de la phase de mise en œuvre du projet et toutes les parties prenantes sont impliquées dans le processus.
Les inconvénients des méthodes agiles
- Un changement de paradigme : certaines entreprises et industries se prêtent naturellement à l’approche agile. Pour d’autres, cependant, passer d’une méthodologie de gestion de projet traditionnelle (liée à un calendrier) à une approche agile plus libre, peut être un changement difficile à gérer. Il est donc nécessaire de mobiliser des équipes expérimentées à cette méthode ou de former les équipes participantes.
- Une documentation incomplète : l’approche agile exige souvent de passer rapidement d’un aspect à l’autre d’un projet. Cela laisse peu de temps pour effectuer la mise à jour de la documentation technique et les formalités administratives. Attention : la mise à jour des spécifications fonctionnelles et techniques est nécessaire, cela vous permet de changer de prestataire plus rapidement si besoin.
- Une approche peu prédictive : dans le cadre d’une application complexe comprenant de nombreuses fonctionnalités, il peut être difficile d’évaluer l’effort à fournir pour développer votre application. Le coût et le temps estimé pour développer votre application peuvent donc fortement varier entre le début du cycle de développement et la livraison finale. En effet, les méthodes agiles sont centrées sur l’utilisateur et ses demandes peuvent fortement varier de vos attentes. Ainsi, des incrémentations plus importantes que prévu peuvent être nécessaires, augmentant le nombre de sprints à réaliser et in fine le coût total de votre application.
- Une approche plus chronophage : Enfin, cette approche est également bien plus chronophage qu’une approche traditionnelle. Les équipes, clients comme développeurs, sont bien plus impliquées dans le projet. Chaque sprint nécessitant des rencontres (physiques ou virtuelles), vous devrez vous rendre beaucoup plus disponible qu’avec une méthodologie traditionnelle.
Conclusion
D’une part, la méthode classique est plus adaptée aux projets que vous confiez en sous-traitance avec un engagement au forfait sur devis. Elle garantit le périmètre fonctionnel de l’application dans un budget bien défini. D’autre part, la méthode agile est souvent plus adaptée aux projets gérés en interne, ou les plus susceptibles d’évolutions, et souvent aux projets les plus innovants.
Dans les deux cas, il vous faudra un chef de projet dédié pour effectuer un suivi complet et régulier du projet avec votre prestataire informatique. Toutefois, en agilité, votre chef de projet sera très actif tout au long du développement pour participer à la définition des sprints et faire un retour à l’équipe de développement sur les feedbacks utilisateurs. Tandis que dans une approche traditionnelle, votre chef de projet sera très actif sur la phase de conception (définition du besoin et du périmètre fonctionnel) et beaucoup moins sur la phase de développement puisque le projet a été défini dans le détail lors de la conception. Il sera à nouveau mis à contribution au moment de la livraison du projet, pour la réalisation des tests (en recette) puis au cours de la maintenance applicative.
Il faut se rendre compte d’une chose : aucune de ces méthodologies n’est meilleure que l’autre. Tout dépend de vos besoins, de votre disponibilité et de la manière dont vous souhaitez gérer le projet. Alors pourquoi ne pas les faire cohabiter pour obtenir le meilleur de chacune d’entre elles ? Il est possible de combiner ces méthodes pour obtenir à la fois le cadre rigide et sécurisant de la méthode traditionnelle, mais également la réactivité et la communication d’une approche agile. Le choix entre approche traditionnelle et agile est de moins en moins évident et de plus en plus d’entreprises favorisent un mélange des deux.
Pour vous aider dans la construction de votre méthodologie hybride, vous pouvez utiliser le tableau ci-dessous. Il recense les principaux points forts et points faibles des deux méthodologies de gestion de projet que nous vous avons présentées.
Méthodes traditionnelles | Méthodes agiles | |
Complétude de la documentation technique, spécifications fonctionnelles et techniques | Cette méthodologie nécessite un cahier des charges complet (spécifications fonctionnelles et techniques détaillées). | La méthode agile se concentre plus sur les phases de développement, la documentation est souvent incomplète. |
Temps passé | Le client est impliqué lors des phases de conception et lors de la livraison de l’application. | L’équipe de développement et le donneur d’ordre communiquent constamment pour échanger sur le projet et planifier les sprints. |
Projet innovant | Cette méthode est à privilégier pour les projets complexes et de grande envergure où rien ne peut être laissé au hasard. | Cette méthodologie convient parfaitement à des projets incertains ou innovants. |
Adéquation avec la structure organisationnelle de l’entreprise | L’organisation de cette approche est semblable à l’organisation de la plupart des entreprises. Elle est plutôt adaptée aux grandes entreprises avec un projet clair et défini. | L’approche agile peut parfois être déroutante et nécessitera soit des équipes rodées à cette approche soit la formation de ces dernières. Cette approche est recommandée pour les start-ups. |
Flexibilité | L’approche traditionnelle laisse peu de place à l’imprévu et au changement de dernière minute. (conseil : prévoyez du temps de maintenance pour les éventuelles modifications ou évolutions). | La flexibilité est l’un des piliers du “Manifeste pour le développement agile de logiciels”. |
Vous souhaitez développer une application ou moderniser une application existante ? Quelle que soit la méthode projet que vous choisirez, nous pouvons vous accompagner. Prenez un rendez-vous avec un expert AxioCode et parlez-nous de votre projet, nous définirons ensemble la méthodologie la plus adaptée.
Demandez conseil à un expert et échangez sur votre projet.
Vous souhaitez étudier la modernisation de votre application ? Vous pouvez bénéficier de notre service d’audit dédié aux applications web et mobiles. Vous obtiendrez ainsi une étude détaillée de votre application et une feuille de route pour la moderniser avec succès.