MéthodologieProjets

Méthode de développement rapide

Avec un certain recul, on peut observer que toute réalisation humaine, individuelle ou en équipe, procède naturellement selon un processus itératif. Par exemple, un écrivain rédige plusieurs chapitres de son roman en parallèle. Il commence également par se documenter, par faire un plan, par préparer son écriture, rédiger un premier essai pour y revenir ensuite afin de produire la version définitive. Dans un autre exemple, la construction d'un bâtiment se déroule également en plusieurs étapes qui peuvent être engagées parallèlement sans perdre de vue, bien sûr, que certaines phases de la construction doivent être réalisées complètement avant le démarrage d'autres étapes. Les fondations doivent être terminées avant de monter les murs et cette étape doit également être pratiquement terminée avant de commencer à poser le toit du bâtiment et ainsi de suite. Cependant, la manière de procéder n'est pas strictement réalisée selon un modèle en cascade où chaque phase doit être complètement terminée avant de passer à la suivante. Dans la pratique, il est facile de constater qu'il y a un certain nombre d'aller-retour entre les différentes phases d'un projet afin de rectifier, peaufiner, modifier voire corriger et de prendre en compte les évolutions du chantier pendant sa réalisation. Dans le domaine de l'apprentissage, les stratégies les plus efficaces fonctionnent également par petites périodes d'études récursives.

Intuitivement, nous avons tous un ordre d'idées concernant la conduite et la réalisation d'un projet. Cela peut être une initiative privée ou professionnelle. Par exemple, l'écriture d'un roman, la construction d'une extension à son logement ou encore la reconversion vers une autre activité professionnelle et bien sûr, le développement d'une application informatique, sont considérés comme étant des projets. En d'autres termes, on peut dire qu'un projet est une réalisation humaine qui est exécutée avec une certaine méthodologie.

Les méthodologies de conduite et de gestion de projets on été formalisées depuis longtemps, et dans l'informatique de nombreuses pratiques et méthodes ont été mises au point avec les avantages et les inconvénients que l'on a pu constater. L'historique part des méthodes dites en « cascade » avec l'utilisation des diagrammes de Gantt et des réseaux PERT, en passant par les cycles de développement en « V » pour aboutir aux méthodologies modernes dites « agiles » basées sur une démarche « itérative ». Cette manière de procéder est illustrée ci-dessous avec les méthodes agiles regroupées par l'approche SDLC (Software / System Development Life Cycle) qui vise à englober l'ensemble des méthodologies.

L'efficacité du cycle de développement itératif n'est plus à démontrer par rapport à l'approche en cascade. Encore aujourd'hui, de nombreux projets, et pas seulement dans l'informatique, se basent sur une approche en « cascade » ou en « V » et l'on peut observer une dérive majoritaire quand au respect des délais et des objectifs.

Cela semble être à cause d'une hiérarchisation exacerbée des processus et des équipes qui participent aux développements, et ce par ignorance des techniques et des pratiques modernes en matière de développement logiciel avec un mépris total des règles élémentaires de communication :'-) . La démarche en cascade est intuitive mais reste très théorique. Elle est issue des décisions de la haute hiérarchie qui s'implique peu dans la réalisation proprement dite, sa mise en œuvre reste trop abstraite et s'éloigne de la réalité tout au long de l'avancement du projet. A contrario, l'approche itérative est beaucoup plus réaliste et permet de prendre en considérations des évènements imprévus au départ, et cela tout au long du projet.

En résumé, il est astucieux d'adopter et d'intégrer ce qui semble efficace dans l'ensemble des méthodologies de conduite et de gestion de projets sans perdre de vue le coté « pragmatique » de la démarche « itérative ». Par exemple, Oracle Application Express a été spécifiquement conçu pour pouvoir adopter une démarche de développement logiciel agile tout en conservant les bénéfices des anciennes méthodologies. De part la souplesse d'APEX, les méthodes agiles telles que SCRUM ou Extreme Programming peuvent être adoptées par exemple, tout en conservant le formalisme des anciennes méthodologies. APEX est issue de la Méthodologie CDM Fast Track d’Oracle elle même originaire d'un concept RAD fondé sur DSDM (Dynamic Systems Development Method) permettant le prototypage, le développement et la fourniture d’artefacts itératifs et incrémentaux, le jalonnement, l’analyse de la valeur et entre autres une validation continue.

RAD (acronyme de l'anglais Rapid Application Development) est à l'origine des méthodologies modernes dites « agiles » dont le dénominateur commun est le cycle qualifié d'itératif, d'incrémental et d'adaptatif. Cette approche pragmatique apporte une grande souplesse dans la réalisation et permet de raccourcir les délais de livraison. L'objectif de la méthode est d'impliquer l'utilisateur final avec un principe de « validation » à chaque étape afin d'obtenir une application en adéquation avec les réels besoins.