RAD La Méthode
Transcription
RAD La Méthode
Méthode RAD Éléments fondamentaux Le Développement Rapide d'Applications Organisation des développements, conduite de projets, ingénierie applicative. Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 2 Méthode RAD Le Développement Rapide d'Applications Jean-Pierre Vickoff RAD.fr © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 3 SOMMAIRE DU DOCUMENT MÉTHODE RAD 1 1. MÉTHODE DE DÉVELOPPEMENT LOGICIEL RAD 5 1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7. 1.8. 1.9. 1.10. Structure de développement Description globale des phases Approfondissement des phases Phase INITIALISATION Phase CADRAGE Phase DESIGN Phase CONSTRUCTION Phase FINALISATION Objectifs et travaux par phase Principaux documents par phase 5 6 7 8 9 10 14 17 17 25 Bibliographie RAD, Conduite de projet Bibliographie Objet Bibliographie Management, Qualité Divers documents, normes, standards Principaux WEB et contributeurs Index Figures Tableaux et listes 26 26 26 27 28 29 31 31 2. BIBLIOGRAPHIES ET RÉFÉRENCES 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. 2.7. 2.8. 26 © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 4 RAD, méthode pour une conduite de projet « haute performance » « Il est vrai que pendant que je ne faisois que considérer les mœurs des autres hommes ... que le plus grand profit que j'en retirois étoit que, voyant plusieurs choses qui, bien qu'elles nous semblent fort extravagantes et ridicules, ne laissent pas d'être communément reçues et approuvées par d'autres grands peuples. » René Descartes, Discours de la méthode © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 5 1. Méthode de développement logiciel RAD La méthode RAD et le Processus Qualité RAD2, impliquent 3 intervenants principaux (MOA, MOE, GAR1). Pour la maîtrise d’œuvre les grandes phases de la démarche sont : § Initialisation (mise en condition de l’organisation). § Cadrage (expression des objectifs). § Design (conception du futur système). § Construction (développement de l’application). § Finalisation (livraison des fonctionnalités attendues). Le projet est piloté selon un suivi rigoureux des contraintes, des risques et de la qualité technique. La maîtrise d’ouvrage doit assurer : § L’expression des exigences et sa validation permanente. § La préparation au changement organisationnel. § La recette fonctionnelle et technique. § Le démarrage. Le projet est piloté selon un suivi rigoureux de la qualité fonctionnelle (rapport de Focus, suivis des divergences). Le Groupe d’Animation et de Rapport prend en charge les communications et la formalisation des informations. 1.1. Structure de développement La structure méthodologique du projet s'appuie : § la méthode RAD et son cycle semi-itératif2 en ce qui concerne les principes fondamentaux de conduite de projet ; § le processus RAD2 pour l’ordonnancement pratique des opérations de développement ; § une techniques de modélisation adaptée à la typologie de l’application (Merise / UML / Flux / etc.). Pour rappel (et en synthèse), la méthode RAD implique : 1. Un cycle de développement sécurisant et court fondé sur un phasage simple : Cadrage, Design, Construction et l’absolu respect d’une dimension temporelle (90 jours optimum, 120 jours maximum) [Martin 1991]3. 2. Une architecture de communication engageant des groupes de travail de structure et de composition variable selon les besoins des phases et respectant un 1 Maîtrise d'ouvrage, maîtrise d’œuvre, Groupe d'Animation et de Rapport 2 Merise ou SDMS utilisent un cycle en cascade, alors que DSDM ou RUP préconisent un cycle totalement itératif. 3 Les trois premiers points définissent les principes de la méthode RAD telle que James Martin l’avait conçue dès la fin des années 80. © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 6 mode opératoire précis structuré en trois étapes : pré-session, session, postsession [Mucchielli 1987]. 3. Des méthodes, techniques et outils permettant de définir et d’appliquer des choix portant sur quatre natures d'objectifs potentiellement contradictoires : budget, délais, qualité technique, qualité fonctionnelle et visibilité4 [Vickoff 1998]. 4. Une architecture de conception s’appuyant sur les techniques de l'objet et particulièrement sur celles qui permettent une conception « en vue de modifications » [McCarty 1997]. 5. Une architecture de réalisation qui impose, pour garantir la qualité technique, des normes minimales, des revues de projet, des jalons zéro-défaut5 et qui recommande, pour garantir la qualité fonctionnelle, le prototypage actif et les Focus6 de visibilité [McConnell 1996]. 1.2. Description globale des phases La méthode RAD structure le cycle de vie du projet en 5 phases : § L’Initialisation définit l’organisation, le périmètre et le plan de communication. § Le Cadrage définit un espace d’objectifs, de solutions et de moyens. § Le Design modélise la solution et valide sa cohérence systémique. § La Construction réalise en prototypage actif (validation permanente). § La Finalisation est un contrôle final de qualité en site pilote. Mise Miseen encondition conditionde del’organisation l’organisation Interviews Interviewsde degroupe groupe Expression Expressiondes desbesoins besoins Création Créationd’un d’unétat étatde delivraison livraison permanente permanentepour pour1er 1erFOCUS FOCUS Spécification Mise Miseen enopération opérationdu duSWAT SWAT Modélisation Modélisationdu dusystème système Validation Réalisation Qualité Qualitéetetsupport supportsite sitepilote pilote Figure 1. — Jalons décisifs du cycle projet RAD Dans un second niveau de détail (figures 1 et 2), ces phases comprennent : 1. INITIALISATION (préparation de l’organisation et communication ) Cette phase permet de définir le périmètre général du projet, de structurer le travail par thèmes, de sélectionner les acteurs pertinents et d’amorcer une dynamique de projet. Cette phase représente environ 6% du projet en charge. 4 Visibilité = capacité de contrôle offerte aux responsables. Jalon zéro-défaut (ZD) : jalon du projet intégrant une validation technique, une intégration et une validation fonctionnelle par l'utilisateur. 6 Focus : réunion plénière de présentation débouchant sur une validation globale. 5 © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 7 2. CADRAGE (analyse et expression des exigences) La spécification des exigences est du ressort des utilisateurs. Ils expriment leurs besoins lors d’entretiens de groupe. Il est généralement prévu de 2 à 5 jours de sessions par commission (thème). Cette phase représente environ 9% du projet. 3. DESIGN (conception et modélisation) Les utilisateurs sont également impliqués dans cette étape. Ils participent à l’affinage et à la validation des modèles organisationnels : flux, traitements, données. Ils valident également le premier niveau de prototype présentant l’ergonomie et la cinématique générale de l’application. Il est prévu entre 4 et 8 jours de sessions par commission. Cette phase représente environ 23% du projet. A partir de la phase de Design la parallélisation du travail est possible (figure 3). 4. CONSTRUCTION (réalisation, prototypage) Durant cette phase, l’équipe RAD (SWAT) doit construire l’application module par module. L’utilisateur participe toujours activement aux spécifications détaillées et à la validation des prototypes. Plusieurs sessions itératives sont nécessaires. Cette phase représente environ 50% du projet. A partir de la phase de Construction, à la parallélisation du travail peut s’ajouter la sérialisation (figure 3). 5. FINALISATION (recette et déploiement) Des recettes partielles ayant été obtenues à l’étape précédente, il s’agit dans cette phase d’officialiser une livraison globale et de transférer le système en exploitation et maintenance. Cette phase représente environ 12% du projet. Focus FocusR1 R1 120 jours maximum Réunion Réunionde delancement lancementetet d’individualisation d’individualisation Focus FocusR2 R2 Focus FocusCC Initialisation du projet et Initialisation du projet et immersion animateur & immersion animateur & coordinateurs dans le coordinateurs dans le domaine fonctionnel domaine fonctionnel Focus FocusR3 R3 CADRAGE CADRAGE Recette RecetteUtilisateurs Utilisateurs Focus FocusDD DESIGN DESIGN Entretien Entretien propriétaire propriétaire 2/1 15/1 18/1 Site pilote Site pilote CONSTRUCTION CONSTRUCTION Généralisation Généralisation 1/2 18/2 10/4 10/5 30/5 30/6 30/7 20/8 1/9 Figure 2. — Principales étapes d’un cycle de projet à 120 jours 1.3. Approfondissement des phases Voici pratiquement et succinctement comment se déroule un projet RAD. La première des conditions réside dans la présence d’un animateur ou d’un coordonnateur maîtrisant parfaitement tous les aspects du RAD. Dans les projets où des dissensions pourraient apparaître entre les différents interlocuteurs, ce spécialiste de l’entretien de groupe doit nécessairement être neutre. Fonctionnellement, trois catégories d’intervenants participent à un projet RAD : ceux « pour action » qui sont convoqués, ceux « pour validation » qui sont souhaités et ceux « pour information » qui peuvent s’inviter. Il est illusoire de vouloir développer avec des ressources à temps partiel un projet stratégique ou sous contrainte de temps. © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 8 La maîtrise d’ouvrage doit s’investir aussi régulièrement dans la validation de sa future application (prototype7) que la maîtrise d’œuvre le fait dans la production. Seul le respect de ces conditions de communication permettra aux développements modernes de sortir de leur enlisement actuel. Lorsque la charge de travail ainsi dédiée à la spécification et au prototypage est trop importante pour la maîtrise d’ouvrage et déséquilibre sa production opérationnelle, des ressources supplémentaires lui sont affectées. Leur coût est inclus dans le budget global du projet. Le retour sur investissement de ce recouvrement de fonction est chiffrable et positif. Une des missions de l’animateur est de justifier l’impact de chaque action en termes de retour sur investissement. L’animateur, en plus de son rôle de facilitateur, est le garant du respect de la méthode. Il informe les maîtrises des écarts observés et de leur conséquence sur la stratégie initialement décidée. Il forme les intervenants, contrôle la planification, l’ordonnancement des tâches et le suivi de leur exécution. Il s’assure de l’efficacité des entretiens (participation, progression, centrage des thèmes, respect des priorités) et de la performance de l’environnement technologique, méthodologique. Afin de soutenir l’évolution positive des motivations et la dynamique d’équipe, des moyens matériels sont à sa disposition : budget pour actions incitatives au renforcement de la cohésion interpersonnelle, amélioration du cadre de travail, assouplissement des contraintes matérielles, prise de décision démocratique, prime sur atteinte d’objectifs. L’animateur est « neutre » vis-à-vis des deux maîtrises et cette neutralité doit le faire dépendre de la direction générale [Boehm 1998] ou d’une instance arbitre entre l’informatique et la direction utilisatrice. 1.4. Phase INITIALISATION La phase d’Initialisation a pour objectif d’informer les intervenants des contraintes d’un projet RAD. Après une courte Immersion dans le domaine fonctionnel, le pilote, les coordinateurs et l’animateur présentent aux dirigeants et à la maîtrise d’ouvrage les contraintes de la méthode et le plan d’action à respecter. Un plan de communication est produit. Cette étape a pour nom l’Entretien propriétaire. Si nécessaire, une opération de réingénierie des procédés « métier » précède l’automatisation du domaine. Une Réunion de lancement du projet est ensuite organisée. Elle regroupe tous les acteurs recensés et donne lieu à l’individualisation des travaux préparatoires, à la spécification des exigences de la future application et à sa modélisation. Dans le cadre du plan de communication, les utilisateurs sont répartis dans des groupes de travail8 organisés par thèmes. Cette étape doit s’effectuer en quelques dizaines de minutes. Il faut distinguer le principe des groupes de travail de celui des Focus. : 7 Le prototype est un état intermédiaire du développement. C'est une version opérationnelle de l'application en cours d'amélioration. Le prototype est un système, éventuellement très incomplet, mais dans son dimensionnement réel. Dans le respect de règles strictes de construction, il est utilisable en fonctionnalités partielles. Il constitue un ensemble minimum, mais viable, de fonctions représentatives. Le prototype se transforme progressivement en exécutable, limité dans un premier temps au site pilote. Après recette fonctionnelle et technique, le déploiement et la montée en charge consacrent leur version finale. Le prototype continue par la suite à être amélioré. Cette continuité dans l'évolution s'appelle la maintenance applicative. 8 Le travail de groupe implique la disponibilité totale et permanente de tous les participants, particulièrement des décisionnaires. Ce point doit être explicitement reconnu par les membres du groupe et par leur encadrement. © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 9 § Un groupe de travail réunit généralement moins de dix personnes qui concourent à l'analyse d'un problème et à l'élaboration de la solution. § Un Focus peut rassembler un nombre élevé de participants pour une sensibilisation, une prise de connaissance ou un jugement général (validation) sur le produit en cours de réalisation. Les utilisateurs associés en permanence à un développement RAD doivent être en grande partie les réels exécutants des tâches à automatiser. Le choix des utilisateurs participant au projet est fonction de leur motivation affirmée (pour les deux tiers d’entre eux). Ce point est essentiel au RAD, les futurs clients du système représentent une force de proposition fonctionnelle. L'entretien de groupe est la meilleure forme de réunion pour déterminer les fonctionnalités générales d'un système. Lorsque celui-ci est conséquent, un individu isolé a difficilement une vue d'ensemble objective et complète. Parfois, pour réaliser des fonctions identiques, les méthodes de travail sont différentes d'un participant à l'autre. L'analyse commune des diverses pratiques aboutit à un consensus sur la plus efficace. L'interview de groupe, par la communication qu’il suscite, éveille naturellement la réflexion, l'évolution, le progrès dans la recherche d’amélioration de la qualité. La réunion de lancement (d’une demi-journée à une journée) est souvent considérée comme le lancement officiel du projet RAD. A l'issue de la réunion de lancement, les participants disposent de quelques jours pour réaliser la préparation de la première réunion de Cadrage dont la date est fixée. 1.5. Phase CADRAGE Il est inutile d’engager des ressources humaines de qualité et coûteuses si les ressources matérielles (salle, vidéoprojecteur, micros, logiciels) ne sont pas disponibles. Le coût direct et la démotivation résultant de ce genre de situation sont tels que le qualificatif « RAD » peut être oublié. Lors du CADRAGE auquel participent les décideurs, l’animateur obtient le verrouillage des exigences, des budgets, des délais et de la solution globale sur les plans stratégique, fonctionnel, technologique et organisationnel. Dans le cas où les exigences et les ressources divergeraient, il faut attribuer des priorités aux fonctionnalités en termes de retour sur investissement. Cette modélisation des traitements peut s’effectuer sous la forme d’une hiérarchie de fonctions et/ou suivant le principe des cas d’utilisation. Le cadrage nécessite des équipes de taille intermédiaire9, incluant des utilisateurs de tous niveaux. Le processus est le suivant : § dans chaque domaine, les thèmes principaux sont déterminés ; § dans le cas d’un domaine stable, il n’est pas nécessaire de réaliser une étude détaillée de l’existant en session plénière ; § dans les domaines où les fonctionnalités sont instables, un effort de réflexion devra être engagé et le cercle d’interlocuteurs élargi. Modéliser en direct avec un vidéoprojecteur électronique. Dans le principe, la modélisation concrète des flux et des fonctionnalités devra être engagée le plus tôt possible avec un outil adéquat. 9 Taille des groupes : Cadrage jusqu’à une douzaine d’utilisateurs ; Design de un à six utilisateurs ; en Construction un ou deux utilisateurs ; lors des Focus tous les intervenants sont conviés. © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 10 La durée des sessions de Cadrage est d’une demi-journée ou d’une journée. Il est possible en cas de contraintes de délais de réaliser des sessions pouvant atteindre 5 jours. Le Cadrage complet peut alors être réalisé en une seule session. Les sessions de Cadrage engagent simultanément les informaticiens de conception-développement (le SWAT) et les utilisateurs. Seules les validations d’un ensemble conséquent modélisé nécessitent un Focus. En général, les groupes d'utilisateurs qui participent aux séances de définition de la future application sont limités à quelques personnes significatives. Pour améliorer la couverture de cette activité et lever un maximum de risques, il est souhaitable d'élargir la base de participants dans le cadre d'une consultation préalable. Cette approche s'avère généralement efficace et est indispensable dans le cadre d'un management par la qualité de service (MTQS). Avant la réunion officielle, on engagera donc une réflexion sur l'ensemble des thèmes composant le domaine applicatif. 30, 60, 90 ou 120 Jours maximum CONSTRUCTION CADRAGE Parallélisation Sérialisation CONSTRUCTION Finalisation Préparation DESIGN DESIGN 6% 9% 23% 50% 12% Figure 3. — Phasage et parallélisation (grand projet) 1.6. Phase DESIGN La phase suivante, le DESIGN, repose sur la disponibilité d’un AGL de conception léger et puissant. Cet outil est utilisé « en direct », dans une salle spécialement équipée de moyens de vidéoprojection et de communication. Sous la coordination de l’animateur, les utilisateurs significatifs et les concepteurs-développeurs travaillent alors en commun et en direct à la modélisation détaillée des traitements et des données de l’application. La présentation d’un premier niveau de prototype conclut cette phase. Le RAD s’appuie sur les techniques dérivées de l’objet et préconise une architecture à « modèles variables » ainsi qu’une conception « en vue de modifications ». Le concepteur s’attache à mettre en œuvre une conception « en vue de modification ». Il utilise un niveau d’abstraction élevé et définit initialement un modèle de données, suffisamment généraliste, pour couvrir en un seul axe de structuration l’ensemble du métier de l’organisation ou la partie concernée par le système. Le noyau stable acquis, il modélise en couches périphériques la variété de traitements permettant de mettre en œuvre des stratégies opérationnelles. En cas d’évolution, il suffit d’adapter la couche concernée. Ces concepts sont repris et détaillés dans les paragraphes suivants. Modéliser avec un niveau d’abstraction « métier » est le meilleur moyen de repousser les limites d’un existant et de garantir les capacités d’évolution ultérieure de l’applicatif. Par ailleurs, un système basé sur une structuration « métier » des données et sur une stratification des traitements dispose d’une grande capacité d’évolution © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 11 d’une pérennité exceptionnelle. Cette approche s’avère plus facile à développer malgré sa généralité : § les parties les moins sujettes à évolution sont réalisées en premier ; § les autres parties sont planifiées dans un ordre dicté par leur stabilité. Le but est d’obtenir tous les modules du système simultanément disponibles au moment du déploiement. Abstraction, structuration, isolation, cohésion, modularité, généralisation, encapsulation et surtout dissimulation sont les techniques de base de la modélisation qui permettent la mise en œuvre d’une architecture de conception évolutive. Avec UML, la modélisation Objet propose les « cas d’utilisation ». De nombreux outils supportent maintenant cette approche (figure 4). Figure 4. — Modélisation UML des exigences (Paradigm Plus) Plaidoyer pour une modélisation simple et cohérente Modéliser10 les activités de l’entreprise étendue nécessite des techniques et des outils aussi puissants que simples d’usage. Lors de la conception d'une application classique de gestion, la préoccupation première de l'informaticien est généralement d'élaborer avec l'utilisateur la description de l'architecture applicative représentée par un modèle synthétique mais exhaustif du domaine à considérer. Cette architecture applicative prend toute son importance avec l'évolution typologique des projets. En effet la tendance actuelle est à la transversalité des solutions informatiques (ERP11, Supply-Chain12) et le nombre de composants et d'interfaces avec les autres éléments du système d'information se multiplie. Pour être pratiquement utilisable, le modèle représentatif d’une architecture applicative doit permettre une vision simultanée des acteurs et des événements qui conditionnent leurs actions ainsi que des procédés employés et de leur séquence d'exécution. Les dépendances fonctionnelles et organisationnelles sont alors mises en 10 Modélisation : représentation théorique d'un système dans le but d'en maîtriser la complexité au prix d'une certaine réduction du détail. 11 Entreprise Ressource Planning. 12 Ensemble de tous les composants (maillons) impliqués dans la production et concourant à son efficacité et à sa qualité. © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 12 évidence. Bien entendu, la globalité de l’information manipulée doit aussi apparaître. L’ensemble permet de révéler les interfaces des sous-systèmes avec les autres (dépendances organiques). A ce jour, trois possibilités sont offertes à l'informaticien pour représenter et réduire au mieux cette complexité : l'approche française Merise, l'approche américaine par les flux (DFD13, Gane & Sarson, SASD14) et, depuis peu, UML15 qui consacre la fusion des principales approches « Orientées Objet ». Modéliser permet de réduire la complexité pour la maîtriser, néanmoins le modèle ne représente pas, dans l'état actuel de nos outils, la réalité de la solution. La modélisation, si elle s'avère souvent indispensable, n'en reste pas moins une opération qu'il faut considérer comme parasitaire en regard de la fourniture des fonctionnalités réelles. Dans ces conditions, le défi imposé alors par la performance est l'obtention d'une vision complète du SI en un seul modèle. L'analyse d'un système d'information de gestion révèle l'omniprésence des données à tous les niveaux de décomposition des traitements. Ces données ne doivent cependant pas être trop détaillées afin de préserver la lisibilité du modèle. Un outil de modélisation efficace doit donc être susceptible de représenter une décomposition des traitements intégrant leur environnement d'exécution et de disposer d'un accès sousjacent au référentiel des données. Ce référentiel est décrit selon une approche relationnelle ou objet. Merise s'appuie sur la dichotomie de trois niveaux de préoccupations (données, traitements, communication) et de multiples niveaux d'abstraction (conceptuel, organisationnel, logique ou physique). Merise impose la production et la validation croisée d'un nombre rebutant de modèles, aussi cette méthode ne convient plus aux exigences générales des projets actuels. Le concept objet qui associe données et traitements semble théoriquement plus proche, mais il impose dans la réalité de la modélisation de multiples formes de représentation complémentaires. La gymnastique intellectuelle permettant de « zapper » d'une vue à l'autre n'est pas encore à la portée d'un utilisateur même averti soucieux de valider simplement son futur système. Avec les outils actuels, il semble donc impossible d'obtenir une représentation exhaustive, détaillée, compréhensible, simple et structurée à la fois des informations, de leur environnement et des procédés utilisés pour les manipuler. Si l'OO16 avec UML représente certainement le futur normalisé de la modélisation, il est indispensable que des outils simples et puissants viennent en faciliter la mise en œuvre. Les outils en question devront permettre une représentation de la réalité unique donc multidimensionnelle. En attendant, il faut l'admettre, seule l'approche par les flux (en complément de la description relationnelle des données) est suffisamment puissante et outillée pour atteindre raisonnablement et économiquement ce but et permettre de lever le risque inhérent à l'absence de modélisation auxquels sont toujours soumis de nombreux projets. 13 Data Flow Design. 14 System Analyse System Design. 15 Unified Modeling Language. 16 Orienté Objet. © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 13 Modélisation dynamique et évolution stratégique Sur le plan pratique les buts et les formes de modélisation sont remis en question. Le concepteur assimile la divergence du statique et du dynamique, de ce qui représente le cœur du métier et de ce qui est imposé par l’évolution. Il doit privilégier, mais sans la rendre unique, l’approche par les processus bien qu’elle ne représente qu’une vision momentanément figée de l’organisation (c’est à travers l’axe des flux que l’organisation évolue). Avec la généralisation d’une modélisation « métier » (systématique dans tout projet Objet), la notion d’informatique et d’organisation, dont l’application consistait le plus souvent à reproduire avec la dernière technologie un existant insatisfaisant, renouvelle totalement son « approche » du changement. Une vision économiquement viable de la réactivité d'un SI impose de le concevoir en vue de sa « modification permanente17 ». Il est alors préférable, comme d’ailleurs les méthodes objets le préconisent, de figer initialement la vision statique, c’est-à-dire la description des données. Cette vision est plus stable dans le temps, car elle représente le « métier » de l’organisation. La capacité de généraliser suffisamment la description de ces données permet d'obtenir un noyau de base dont les risques de remise en question sont limités à un changement fondamentalement du métier de l’organisation (type de services ou de produits). L’ensemble des descriptions représente la mémoire des processus de l’entreprise. Dans un contexte concurrentiel, si l’architecte du système d’information dispose d’un niveau d’abstraction suffisant, il définit en premier un modèle des données suffisamment généraliste pour couvrir en un seul axe de structuration l’ensemble des activités prises en compte par le système. Cela conduit à une représentation unique descriptive de l’activité. Le noyau stable acquis, on développe en couches périphériques la variété de traitements permettant de mettre en œuvre des pratiques agressives. En cas d’évolution, il suffit d’adapter la couche concernée, le noyau de données restant inchangé. Un système basé sur une structuration métier, des données et une stratification des traitements dispose d’une très grande capacité d’évolution et donc d’une pérennité exceptionnelle. Il est aussi plus facile à développer, même s'il paraît global. En effet, on réalise en premier les parties les plus stables dans le temps, celles qui seront les moins sujettes à évolution, puis on développe ensuite les autres dans l’ordre de leur stabilité. Les multiples modules du système sont alors rendus simultanément disponibles au moment du déploiement général. Les formes de la modélisation transdomaines Dans la plupart des systèmes ne concernant qu’un seul domaine, la modélisation des flux n’est pas primordiale ; seule est fondamentale la modélisation des données. Par contre, dans l’architecture d’un système multi-domaines ou transdomaines, la modélisation des flux prend une importance particulière. Néanmoins, le plus souvent, il n'est pas utile de détailler le système au-delà d’un certain niveau. Suivant la taille du système deux ou trois niveaux de décomposition sont suffisants. Dans le cas d’usage d’un outil permettant de modéliser les flux, il faut obtenir parallèlement une hiérarchie des fonctions18. C’est en partant de cette hiérarchie de fonctions que l’on détaille si nécessaire le modèle fonctionnel. 17 « en vue de modification », pratiques de conception et de réalisation d'une solution informatique orientées en vue de faciliter son évolution régulière. 18 La représentation de la structure d'un SI ou d'une application sous la forme d'une hiérarchie de fonctions est la forme de modélisation la plus simple et la plus compréhensible pour un noninformaticien. © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 14 Le prototypage utilisé par la méthode RAD19 déporte la partie détaillée des spécifications dans l’action de réalisation, aussi, le descriptif documenté est-il limité à l’indispensable (le juste suffisant). Les flux permettent aussi de préciser une partie de l’information manipulée. Dans les cas les plus simples (en termes de complexité des relations entre données) on peut à travers les flux modéliser totalement le système (workflow20). Une des raisons pour lesquelles il est préférable de ne pas trop détailler ces modèles est leur relative volatilité. En effet, ils s’altèrent au rythme de l’évolution organisationnelle, voire des pratiques commerciales. Seul le modèle des données le plus stable dans le temps, et d’ailleurs le plus concrètement utile en terme d’usage informatique, doit être totalement et parfaitement détaillé. C’est donc dans la rigueur et la perfection du modèle de données et dans le choix judicieux des principes et niveaux de décomposition des modèles de flux et de la hiérarchie de fonctions (traitements) que réside la performance de réalisation d’un système autant que son évolutivité. Le temps des bricoleurs de la méthode et du développement s'achève. Le futur de la profession se présente comme un défi industriel vital et passionnant. 1.7. Phase CONSTRUCTION La phase de CONSTRUCTION affine le prototype21. Elle fusionne les étapes classiques de spécification détaillée, de réalisation (codage), de tests unitaires et de tests d’intégration, ainsi que la plus grande partie des tests de cheminement fonctionnel qui constituent la recette initiale de l’application. Cette homogénéité constitue, avec la prise de décision immédiate et la validation permanente, les bases mêmes de la productivité et de la qualité RAD. Pour atteindre cette performance, les outils de Construction utilisés doivent être choisis avec soin, une charte graphique doit avoir été validée, des normes de programmation employées, un modèle de transaction généralisé à tous les modules. La validation permanente, comme son nom l’indique, est réellement permanente. Elle s’effectue à chaque séance de travail avec l’utilisateur. La validation permanente garantit lors de chaque ajout de fonctionnalité la conformité au besoin. Le groupe de travail idéal comprend un membre du SWAT et un ou deux utilisateurs. Un développement RAD se distingue par la mise en œuvre de plusieurs techniques de réalisation. § SWAT : organisation d’une équipe de profil « concepteur-développeur » basée sur la compétence, la complémentarité, l’autonomie et la démocratie. 19 RAD est une méthode axée sur la communication, la validation permanente de l'utilisateur et utilisant des pratiques formelles (processus et plan qualité RAD2, modes opératoires, architectures de conception et de réalisation, etc.). 20 Workflow (flux de travail) : définit généralement un outil permettant de maîtriser la circulation des informations entre leurs points d'élaboration. 21 RAD est une méthode basée sur le partenariat. L'utilisateur s'affirme le vrai maître de son application et, par sa participation active, il s'en approprie la réalisation. Le RAD et le prototypage permettent de réaliser en concevant, tout en testant ce que l'on réalise. Le résultat garantit ce que l'on peut qualifier de « Really Approved Design » : une conception réellement approuvée par les utilisateurs. Un bon développeur RAD utilise un langage ou outil de type « visual » et dispose d'une panoplie de customs-controls. L'ensemble représente un AGL de réalisation évolutif et ouvert. Les possibilités de cet AGL sont présentées aux utilisateurs avant la première séance de prototypage. De la diversité et de la puissance de ces outils peuvent émerger des idées brillantes d'application. Des petits groupes d'utilisateurs sont délégués en assistance à la réalisation des fonctionnalités spécifiques (Construction Assistance Team). © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 15 § Normes de codage : normes publiées et acceptées visant à uniformiser les techniques de codage. § Validation permanente : engagement continu des utilisateurs dans le prototypage lors de réunions informelles qui engagent un ou deux utilisateurs par concepteurdéveloppeur. § Revue de code : principes planifiés et acceptés de vérifications croisées de la conformité des pratiques de codage aux normes publiées. § Jalons zéro-défaut (ZD) : technique orientée « planning » ; elle permet de contrôler l’avancement de l’application en matière de visibilité et de qualité. Des jalons ZD peuvent être, si nécessaire, planifiés entre les Focus. Ils correspondent à une revue du code suivie d’une intégration et d’une validation complète de cheminement par l’utilisateur de base. § Focus : réunion plénière de présentation et de validation du projet dans toutes ses dimensions. § Etat de livraison permanente : une version de l’application est maintenue dans un état livrable suite à un Focus ayant confirmé le jalon ZD. Elle peut être présentée à tout moment ou utilisée si nécessaire en fonctionnalités réduites. § Techniques de conception en vue de modifications : ont pour but de faciliter l’évolution ultérieure de l’application. Elles sont mises en œuvre lors de la phase de Design. En phase de Construction il existe des techniques dont le but est similaire. L’ensemble de ces techniques a pour finalité de permettre une évolution continue depuis la conception, la réalisation et jusqu'à la maintenance, prolongement naturel de la vie d’une application. § Structure de Construction itérative et incrémentale : dès le début de la phase de Construction un plan d’évolution du prototype est précisé. Il définit et segmente l’ensemble des fonctionnalités à produire, lors de chaque borne de validation, appelée Focus. La segmentation peut être verticale ou horizontale : § une segmentation verticale repose sur un simple découpage en modules ou en écrans ; § une segmentation horizontale se base sur la notion de priorité des fonctions et impose souvent que l’ensemble des modules soit mis en chantier simultanément, mais à un niveau de fonctionnalité limité. La notion de Focus couvre en pratique l’enchaînement de plusieurs étapes contraignantes pour le SWAT (figure 5). Le facteur décisif pour fixer la cadence des Focus doit être le nombre de fonctionnalités additionnelles attendues. Concrètement, un Focus débute par la planification d’une charge de travail à réaliser dans un délai précis (de 10 à 20 jours). Participent au Focus tous les acteurs du projet. Outre le travail de développement, la planification comprend la préparation du Focus, sa réalisation et le laps de temps nécessaire à l’exploitation des informations que cette manifestation permet de dégager. L’organisation de la communication préalable au Focus est du ressort de l’animateur RAD. Quelques jours avant la date fixée pour le Focus, en fonction de l’avancement validé, le coordonnateur technique stoppe les développements. Les utilisateurs ayant participé aux séances de spécification et de validation permanente sont alors impliqués dans une étape de vérification de la qualité fonctionnelle. Le maximum de corrections de divergences visuelles ou mineures doit être effectué. En général, la validation permanente réduit cette tâche à une simple formalité. Cette étape cesse au plus tard deux jours avant le Focus. Chaque membre du SWAT focalise alors sur l’amélioration technique qualitative de sa propre production. Si les normes de codage publiées et acceptées ont été respectées, © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 16 une journée suffit pour vérifier une production de deux semaines. L’équipe procède alors à des revues croisées. Le niveau de qualité requis peut être très variable d’une application à une autre selon sa typologie. Cette étape prend fin lorsque la qualité de l’application atteint un niveau suffisant en robustesse, normalisation, documentation et conformité aux exigences fonctionnelles. Le membre du SWAT chargé de l’intégration des modules réalise alors cette opération. Il s’attache tout particulièrement à tester les interfaces des applicatifs mettant en œuvre des données communes (externes, globales). Les utilisateurs ayant participé aux séances de spécification et de validation permanente sont alors rappelés pour la dernière étape de vérification de la qualité fonctionnelle et des cheminements. L’intervention des utilisateurs est indispensable, car ils devront manipuler l’application durant le Focus et ils sont susceptibles de déclencher des événements que le développeur n’aurait pas imaginés. A ce point, seules les divergences bloquantes et majeures sont corrigées. Cette opération implique un minimum de tests de non-régression et une étape complète d’intégration. Publication des normes Planification FOCUS Planification Jalon ZD PROTOTYPAGE étape Vérification personnelle Prise en compte des remarques étape Revue de code (croisée) étape Vérification utilisateur étape Intégration modules Étapes M.E. Étapes M.O. État de livraison permanente (n) Figure 5. — Architecture de réalisation (Focus de visibilité) Durant le Focus, les rapporteurs devront consigner les éventuels incidents et les observations qui ne manqueront pas d’être émises par une nombreuse assistance. Les personnes ne participant pas aux spécifications ont souvent un avis a posteriori et parfois une vision plus profonde ou plus précise des évolutions du métier. Ces ressources étant le plus souvent des décisionnaires, leurs recommandations doivent être étudiées sous un angle de vision prospective. C’est d’ailleurs souvent cette absence de vision qui confine une application dans un cadre strictement opérationnel alors qu’elle aurait pu revêtir une dimension stratégique. L’intervalle entre deux Focus ne doit pas être assimilé à un effet tunnel (même réduit). Le Focus est une affaire de visibilité externe ponctuelle et non un moyen de validation interne. Entre deux Focus, les concepteurs-développeurs sont en contact avec les utilisateurs qui participent en direct à la spécification de détail. Lors d’un Focus, l’utilisateur manipule la partie de l’application a laquelle il a contribué. Les spectateurs observent et critiquent. Le groupe d’animation et de rapport note les observations. © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 17 Sur le plan des communications, l’organisation d’un Focus est identique à celle d’une session de travail. Le nombre de Focus dépend de la durée du projet et de sa complexité22. Il est en général planifié 3 ou 4 Focus pour un « petit » projet et de 4 à 8 Focus pour un projet intermédiaire. Lors du Focus, la discrétion de l’informaticien est proportionnelle à son efficacité technique et à la puissance de sa méthode. Tableau 1. — Nombre de Focus en fonction du projet Durée du projet en jours 30 60 90 120 Nombre moyen de Focus 2 3 4 5 1.8. Phase FINALISATION Pour de multiples raisons dont notamment les techniques de validation permanente et de jalons zéro-défaut, la recette RAD est beaucoup moins conséquente qu’une recette classique. La phase de FINALISATION comprend, entre autres, la formation, les activités liées au déploiement, le bilan de projet, le retour de connaissance. Elle clôture le projet RAD. 1.9. Objectifs et travaux par phase Pour chacune des phases du projet, la suite de ce document précise : § son objectif, son contenu et la liste des travaux à réaliser, § les principaux produits en entrée, § les produits en sortie (la liste des livrables de la phase), § les acteurs de production, § les actions de contrôle et de validation. 22 Un projet considéré comme « petit » selon les critères du RAD engage une ou deux ressources expérimentées pour une durée de 30 à 90 jours. Un projet « intermédiaire » engage une équipe (SWAT, Skill With Advanced Tools) de 4 à 6 concepteurs-développeurs pour une durée de 60 à 120 jours. Les grands projets utilisent des techniques de parallélisation durant la phase de DESIGN et de sérialisation durant la phase de CONSTRUCTION. La planification des Focus dépend alors du nombre d'équipes et du style de projet. © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 18 Phase INITIALISATION La phase d’Initialisation prépare les intervenants aux contraintes d’un projet RAD. Après une courte immersion dans le domaine fonctionnel, lors d’un entretien propriétaire, l’équivalent d’une étude de faisabilité, les contraintes de la méthode et un plan d’action à respecter sont présentés à la maîtrise d’ouvrage. Un modèle et un plan de communication sont produits. Si nécessaire, un BPR ou de modélisation au niveau « métier » précède l’automatisation du domaine. Une réunion de lancement du projet est ensuite organisée. Elle regroupe tous les acteurs recensés et donne lieu à l’individualisation des travaux préparatoires à la modélisation du système. Tableau 2. — Synthèse phase Initialisation Objectifs de la phase INITIALISATION Travaux à réaliser Formaliser les objectifs, valider le périmètre du projet et les exigences. Envisager un planning, l'organisation et le Plan d’Assurance Qualité du projet. Acteurs Produits / Livrables GAR + Répertorier l’ensemble des intervenants MOA Plan de communication Définir les objectifs stratégiques du projet MOA Périmètre applicatif Recherche de solutions MOE Rapport de faisabilité Evaluer les moyens nécessaires. MOE Evaluation des charges Accord MOE / MOA MOE + Lettre d’engagement MOA Lancement projet MOA Plan de réunion et documents Actions de contrôle en fin de phase Validation des objectifs par le Maître d'Ouvrage. Accord de la direction générale (budget, engagement de ressources). © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 19 Phase CADRAGE Le Cadrage et la première partie du Design s’appuient sur une approche top-down qui permet de respecter la cohérence systémique et les choix stratégiques ou opérationnels (à l’inverse de la Construction qui privilégie la définition détaillée des exigences et applique une approche bottom-up). Lors du Cadrage auquel participent les décideurs, l’animateur obtient le verrouillage des exigences, des budgets, des délais et de la solution globale sur les plans stratégique, fonctionnel, technologique et organisationnel. Dans le cas où les exigences et les ressources divergeraient, des technique « AV » permettent d’attribuer des priorités aux fonctionnalités en termes de retour sur investissement. Cette modélisation des traitements s’effectue sous la forme d’une hiérarchie de fonctions. Tableau 3. — Synthèse phase Cadrage Objectifs de la phase CADRAGE Travaux à réaliser Formaliser les exigences. Etablir le Plan de cadrage. Engager les ressources. Acteurs Produits / Livrables GAR + Stratégique DG Fonctionnel MOA+ Hiérarchie de fonctions ou Cahier des Charges ou Gestion des exigences MOE Technologique MOE (PPI) Rapport de solutions Organisationnel MOA Plan d’accompagnement du changement, modèle « métier » (CPU) Contraintes MOE MOA Objectifs hiérarchisés Ressources, cycle de développement, planification, etc. Actions de contrôle en fin de phase Validation des objectifs et des contraintes par le Maître d'Ouvrage et ses experts. Validation des solutions et des contraintes par le Maître d'Œuvre et ses experts. © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 20 Phase DESIGN Cette phase repose sur l’usage d’un AGL de conception léger et puissant. Dans la mesure du possible, cet outil est utilisé « en direct », dans une salle spécialement équipée de moyens de vidéoprojection et de communication. Sous la coordination de l’animateur, les utilisateurs significatifs et les concepteursdéveloppeurs travaillent alors en commun et en direct à la modélisation détaillée des traitements et des données de l’application. Si la performance immédiate est recherchée, la modélisation des données reste classique et s’appuie sur le modèle entité-relation. La présentation d’un premier niveau de prototype conclut cette phase. Tableau 4. — Synthèse phase Design Objectifs de la phase Définir la solution cible en termes de modèles, valider un premier prototype DESIGN Travaux à réaliser Acteurs Produits / Livrables GAR + Modélisation MOE + MOA Documentation technique Révision l'évaluation MOE de MOE + Liste détaillée des fonctionnalités et modèle de données exhaustif Modèles issus de l’AGL de conception Charges et planning révisés MOA Actions de contrôle en fin de phase Validation de la conception d'ensemble. Validation des choix technologiques. Validation des modèles et du prototype. Validation des charges et du planning. Pour atteindre une réelle performance, les outils de Construction doivent être choisis avec soin (VB, Delphi, PB, D2000, etc.) ; une charte graphique doit avoir été validée et instrumentée ; des normes de programmation publiées, un modèle de transaction généralisé applicable à tous les modules et, si possible, le cadre d’une méta-application devront être mis à la disposition des équipes ; tous les participants devront utiliser les outils choisis et les normes arrêtées. © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 21 Phase CONSTRUCTION Cette phase affine le prototype, elle fusionne les étapes classiques de : § spécification détaillée, § réalisation (codage), § tests unitaires et tests d’intégration (en Focus), § la plus grande partie des tests de cheminements fonctionnels et la recette informelle de l’application. Tableau 5. — Synthèse phase Construction Objectifs de la phase Réaliser l’application et livrer rapidement des fonctionnalités. CONSTRUCTION Travaux à réaliser Acteurs Produits / Livrables GAR + Publication des normes MOE Normes de développement Planification FOCUS MOE Calendrier des présentations MOA Etablissement des jeux d'essai utilisateurs MOE Prototypage ACTIF en validation permanente MOE FOCUS MOE MOA Jeux d'essai utilisateurs Jalons zéro-défaut MOA Application en fonctionnalités partielles MOA Site Pilote MOE Application utilisable MOA Documentation utilisateur MOA On-line, contextuelle, papier Documentation technique MOE Intégrée aux modules développés Actions de contrôle en fin de phase Recette générale de l’application. Phase FINALISATION Cette phase engage surtout la MOA. Elle comprend, entre autres, la formation des utilisateurs, la surveillance d’un site pilote et les activités liées au déploiement général. Elle clôture le projet RAD. Une application réalisée suivant les principes de la méthode RAD est validée en permanence par ses utilisateurs. La recette d’une application RAD est donc beaucoup plus rapide qu’une recette classique. Selon l’importance du projet et les principes de l’organisation en termes de recette et de déploiement, il peut être nécessaire d’organiser tout ou partie des étapes décrites dans les tableaux suivants. © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 22 Etape « Préparation de la mise en œuvre» Tableau 6. — Finalisation, étape de mise en œuvre Objectifs de l’étape Préparation de la mise en œuvre Travaux à réaliser Réalisation de la recette finale Préparer le changement : - préparer la recette, - produire la documentation utilisateur, - établir le plan de démarrage, - transférer la connaissance aux formateurs, - mettre en place la nouvelle organisation. Acteurs MOE Produits / Fournitures prérequis livrables exigences PV de recette MOA Rédaction des manuels utilisateurs Manuels utilisateurs MOE MOA Rédaction du manuel d’exploitation Manuel exploitation MOE MOA Préparation de la formation MOA Manuels Utilisateurs Supports de formation Etablissement du plan de formation, préparation de l'environnement et de la logistique de formation MOA Supports de formation, planning du projet Plan de formation, environnement et logistique d’opération Formation des futurs formateurs auprès des utilisateurs finaux MOA Supports, plan de formation et logistique Formateurs opérationnels Mise en place des procédures organisationnelles MOA Exigences organisationnelles Procédures opérationnelles Etablissement du plan de démarrage, incluant reprises de données, la bascule technique, les tests après bascule. MOA Communication aux utilisateurs (planning, formation, plan de démarrage, etc.). DG DG MOE MOA Plan de démarrage Notes d'information Actions de contrôle en fin de phase Validation de la stratégie de recette et des jeux d'essais. Validation des scénarios de tests internes. Validation du manuel utilisateur, du manuel administrateur, du plan de formation et des supports de formation : interne à la MOA. Validation du plan de démarrage par la MOE et la MOA. Validation des charges et planning par la MOE, puis par le comité de suivi. © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 23 Etape « Recette officielle » Tableau 7. — Synthèse Finalisation, étape recette officielle Recette officielle Recette de l'application avant sa mise en œuvre. Recette de la reprise de données avant bascule effective. Travaux à réaliser Acteurs Objectifs de l’étape Produits / Fournitures Prérequis Livrables Recette interne MOE avant livraison à la MOE MOA : MOA - recette des interfaces, - recette fonctionnelle du lot assemblé - recette de la reprise des données Scénarios de tests et jeux d’essais Lot assemblé et opérationnel pour les tests fonctionnels et d'intégration Application Recette fonctionnelle utilisateurs, incluant les interfaces et la reprise des données MOE MOA Cahier de recette, jeux d'essais, application intégrée Application recettée fonctionnelle par les utilisateurs. Journal des tests. Intégration technique du lot, incluant les tests de charge et les tests réseau. MOE DTI Application et recette fonctionnelle Application « recettée » technique Communication auprès des utilisateurs. MOE MOA GAR Journal des tests Notes d'information Actions de contrôle en fin de phase Vérification de la complétude des tests en rapprochant le journal des tests, du cahier de recette et du jeu d'essais : par la MOA (CPU) et la MOE (PPI). © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 24 Etape « Organisation et Démarrage» Tableau 8. — Synthèse, finalisation, démarrage Objectifs de l’étape Organisation et démarrage Travaux à réaliser Mettre en œuvre l'application et accompagner le changement Acteurs Produits / Fournitures prérequis Etablissement de l'environnement d'exploitation et de l'infrastructure du support d'exploitation DTI Mise en œuvre du plan de démarrage (incluant la reprise des données) MOE Audit du fonctionnement et évaluation des écarts : - d'objectifs fonctionnels - de couverture des exigences MOE DTI MOE Livrables Manuel Exploitation Exploitation opérationnelle Application « recettée », Plan de Démarrage Application exploitable Tous documents du projet, application opérationnelle Bilan, Proposition d'orientations fonctionnelles et techniques Documents et application en opération Application optimisée Amélioration et optimisation du système DTI Formation des utilisateurs MOA Formateurs formés, supports et logistique de formation, Utilisateurs formés Déploiement technique DTI Plan de Déploiement Application en service Actions de contrôle en fin de phase Validation du bilan et des orientations fonctionnelles et techniques. Recette de la mise en service. © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 25 1.10. Principaux documents par phase Tableau 9. — Documents conseillés en clôture de phase Phases Etapes ou travaux Documents produits avant clôture Préparation Entretien initial Engagement réciproque des maîtrises Immersion animateur Périmètre applicatif. Plan de communication Réunion de lancement Travaux individualisés. Planning accepté Sessions de spécifications des exigences Modèle global des flux (DFD) Cadrage Modèle hiérarchique des traitements Focus de fin de Cadrage Design Sessions conception solution Focus de fin de Design Construction Revues de code et de projet Revues fonctionnelles Modèle détaillé des données et (si utile) Modèle détaillé des flux et traitements Prototype initial Application opérationnelle validée : - fonctionnellement par les utilisateurs - techniquement par jalons zéro-défaut État de livraison permanente Focus de présentation Finalisation Déroulements des cheminements fonctionnels Homologation et recette © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 26 2. Bibliographies et références 2.1. Bibliographie RAD, Conduite de projet Martin James, Rapid Application Development, Macmillan, 1991. Vickoff Jean-Pierre, RAD - Développement Rapide d’Applications, Méthodes et outils, les règles à respecter dans le développement d’application client-serveur, MGI, 1995, puis Macmillan, 1996. Vickoff Jean-Pierre, REENGINEERING, Vite fait bien fait, Le Paradigme du futur immédiat, QI, 1998. Vickoff Jean-Pierre, Réingénierie du développement d’application, Méthodes, processus, techniques et pratiques de conduite de projet sous contraintes, Gartner Group, 1999. Boehm B. & Bose P. A Collaborative Spiral Software Process Model, USC, 1994 Bouchy S. L'Ingénierie des systèmes d'information évolutifs, Eyrolles, 1994 Clark B. The Effects of software process maturity on software development effort, USC, 1997 Englewood C. JAD the Group Session, Approach to system design, Prentice Hall, 1991. Egyed A. & Boehm B. Telecooperation Experience with the WinWin System, USC, 1998 Henry A. & Monkam-Daverat L. Rédiger les procédures de l’entreprise, d’organisation, 1995. Mc Carty J. 54 Règles d'or pour un grand logiciel, Microsoft Press, 1997. Les Éditions McConnell S. Stratégie de développement rapide, Microsoft Press, 1996. Panet G. & Letouche R. Merise 2, modèles et techniques Merise avancés, Les Éditions d'organisation, 1994. Yourdon E. Modern Structured Analysis, Englewood Cliffs, 1989. 2.2. Bibliographie Objet Budd T. La Programmation par objets, Edition Addison-Wesley, 1991. Jacobson I. Le Génie logiciel orienté objet, Addison-Wesley, 1993. Lai M. UML - La Notation unifiée de modélisation objet, InterEdition, 1997. Lemay L. & Perkins C. L. Le Programmeur JAVA, Macmillan, 1996 Muller P. A. Modélisation Objet avec UML, Eyrolles, 1997. Rumbauch J. OMT Modélisation et conception orientées objet, Prentice Hall Masson, 1996. Vauquier D. Développement orienté objet, principes, processus, procédés, Eyrolles, 1993. 2.3. Bibliographie Management, Qualité Ballay J-F. Capitaliser et transmettre les savoir-faire de l’entreprise, Eyrolles, 1997. Bartoli A. Communication et organisation, pour une politique générale cohérente, Les Éditions d'organisation, 1994. Beaudoin P. La Gestion du changement, une approche stratégique pour l'entreprise en mutation, Stratégies d'entreprise, 1990. Champy J. Reengineering Management, HarperCollins Publishers, 1995. Chapman C. & Ward S. Project Risk Management : Processes, Techniques and Insights, Edition Wiley, 1997. © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 27 Courtot E. La gestion des risques dans les projets, Edition Economica, 1998 Delafollie G. Analyse de la valeur, Hachette, 1991. Hammer M. & Champy S. Reengineering the Corporation, A manifesto for Business Revolution, Harper Business, 1993. Henry A. & Monkam L., Rédiger les procédures de l’entreprise, Éditions d’organisation, 1995. Laudoyer G. La Certification, un moteur pour la qualité, Les Éditions d'organisation, 1993. Lamprecht J-L. ISO 9000 Se préparer à la certification, AFNOR, 1994. Lefebvre C. Concevoir et conduire un projet de changement, Les Presses du management, 1997. Maders H-P. & Gauthier E. & Le Gallais C. Conduire un Projet d’Organisation, Editions d’Organisation, 1998 Nizet J. & Huybrechts C. Interventions systémiques dans les organisations, Intégration des apports de Mintzberg et de Palo Alto, Editions DeBoeck Université, 1998 Mucchielli R. L'Interview de groupe, ESF, 1987. Renaud-Coulon A. La Désorganisation compétitive, Maxima, 1996 Richard J. & Paula S. Delivering Results: Evolving BPR from Art to Engineering, Texas A&M University, 1998 Sary P. La Stratégie de la programmation neurolinguistique dans l'entreprise, Editions Retz, 1990. Wenger E. 1998, Communities of Practice - Learning, Meaning and Identity, Cambridge University Press., 2.4. Divers documents, normes, standards En ce qui concerne les travaux du SEI sur CMM : § SEI/CRIM, 1993, Paulk Modèle d'évolution des capacités logiciel. § IEEE Software, 1993, Paulk & M.C. Curtis & B. & Chrissis, M.B. & Weber, C.V. Capability Maturity Model, Version 1.1, Vol. 10, No. 4, July 1993, pp. 18-27. § SEI, 1995, Paulk The Capability Model : Guidelines for Improving the Software Process. En ce qui concerne les normes ISO (Evaluation, Qualité, SPICE) : § ISO 9001-1994, Model for quality assurance in design, development, production, installation and servicing. § ISO 9000-3-1991, Quality management and quality assurance standards (Part 3: Guidelines for the application of ISO 9001 to the development, supply and maintenance of software). § ISO 9004-4-1993, Quality management and quality system elements (Part 4: Guidelines for quality improvement). § ISO 8402 et X 50-125, Management de la qualité et assurance de la qualité – Vocabulaire § ISO/IEC12207-1-1994, Software life cycle processes (ingénierie du logiciel) § ISO/IEC12119-1995, Software products - Evaluation and test. § ISO/IEC 9126-1991, Software quality characteristics. § ISO 9294, Ligne directrice pour la gestion de la documentation technique du logiciel Ainsi que diverses références aux documents suivants : § Craigmyle, M., and I. Fletcher, Improving IT effectiveness through software process assessment, Software Quality Journal, Vol. 2, pp 257-264 (1993). © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 28 § Humphrey, W.S., Managing the Software Process, Addison Wesley, 1989. § Kuvaja, P., Simila, J., Krzanik, L., Bicego, A., Koch, G. and Saukkonen, S., Software Process Assessment and Improvement: The BOOTSTRAP Approach. Blackwell, 1994. § Bell Communications Research, Inc., Quality Program Specification for Surveillance Management Process(SMP) Software (General), QPS 88.001, Issue 1. § AFCIQ-PDL, Recommandation de plan de développement logicel. § AFCIQ-PAQL, Recommandation de plan d’assurance qualité logiciel. § SCE - Software Capability Evaluation Training Guide / SPA - Software Process Assessment Training Guide, Software Engineering Institute, Pittsburgh Pennsylvania. § F. Coallier, N. Gammage, A.W. Graydon, Trillium - Software Process Self-assessment Capability Assessment , Bell Canada, PI Q008, Issue 4.0, March 1993. 2.5. Principaux WEB et contributeurs AFAV, Association française pour l'analyse de la valeur, http://www.afav.asso.fr AFITEP, Association francophone de management de projet, http://www.afitep.fr American Society for Quality, http://www.asqc.org Business Processes Ressources Centre, http://bprc.warwick.ac.uk/bp-gold.html Business Process Reengineering Advisory Group, http://www.eil.utoronto.ca/tool/list.html COCOMO, Constructiv Cost Model, http://sunset.usc.edu/CORADMO/coradmo.html CORADMO, Constructiv Cost Model, http://sunset.usc.edu/CORADMO/coradmo.html CRIM, Centre de génie logiciel appliqué de Montréal, http://www.CRIM.CA/cgla DACS, Data Analysys Center for Software (Cost estimation), http://mach10.rome.kaman.com/cgi-bin/keylist Esprit Project 27599 – RAMSES http://www.esi.es/ESSI/Reports/All/27599/ RAD for MSS, IDEF method, http://www.idef.com IFPUG, International Function Point Users Group, http://www.ifpug.org ISO, Software Process Assessment, http://www.sqi.gu.edu.au/sc7/wg10/ SEI, The Software Engineering Institute, http://www.sei.cmu.edu Software Engineering & its Applications (TFGL du CNAM), http://web.cnam.fr/TFGL Staffordshire University http://www.soc.staffs.ac.uk/~cmtrmk/rad/new/course/rad1.htm UML, Informations sur UML, http://www.essaim.univ-mulhouse.fr/uml University of California, Davis, http://sysdev.ucdavis.edu/webadm/document/rad_toc.htm Pour terminer, je remercie particulièrement les participants assidus des réunions de la commission AFITEP IM-CP-Processus. Leur contribution à la formalisation des divers aspects de la conduite de projet, a facilité la rédaction de plusieurs parties de cet ouvrage. © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 29 2.6. Index A abstraction · 11 abstraction métier · 10 AFNOR · 28 AGL de conception · 20 architecture applicative · 11 assistance · 14 B budget cadrage · 9, 19 C certification · 28 cohérence systémique · 19 communication espace · 10, 20 modèle · 8, 18 plan · 8 qualité · 9 consensus entretien · 9 CPI · 19, 23 CPU · 19, 23 customs-controls · 14 D décomposition · 12, 13 dichotomie · 12 DSDM · 5 DTI · 23, 24 dynamique de projet · 6 E entité-relation · 20 entretien de groupe · 7, 9 ergonomie · 7 F communication · 15 pratiques · 15, 17 principe · 8 validation · 15 fonctionnalités générales · 9 partielles · 8 spécifiques · 14 fonctionnel cheminement · 14, 21 conformité · 15 couverture · 9, 19 domaine · 8, 18 formation utilisateur · 17, 21 G Gartner Group · 27 groupe de travail · 9 H hiérarchie de fonctions · 13, 19 hiérarchie de fonctions modélisation · 17 modèlisation · 9 I immersion · 8 ISO · 28 J jalons ZD · 15 James Martin · 27 L lancement officiel · 9 livrable · 15 livraison · 5, 7, 15, 23, 25 M maintenance applicative · 8, 15 motivation · 9 facilitateur · 8 Focus · 5, 6, 9, 15, 16, 17, 25 Focus © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications N non régression · 16 normalisation · 16 O outil construction · 14, 20 P pérennité · 10 périmètre général · 6 pilote site · 21 planification · 8, 15, 17, 19 planification pratiques · 15 présentation prototype · 10, 20 processus réingénierie · 8 prototypage · 14 prototypage construction · 7 validation · 15 prototype · 8 prototype évolution · 15 niveau · 7, 10, 20 Q qualité fonctionnelle · 5, 6, 16 qualité technique · 5, 6 R rapporteurs · 16 recette · 5, 8, 17, 21, 22, 23, 25 recette initiale · 14, 21 partielle · 7 réingénierie · 8 30 René Descartes · 4 ressource priorisation · 9, 19 RUP · 5 S session pleinière · 9, 10 site pilote · 8 SPICE · 28 stratification · 10 structuration métier · 13 technique · 11 SWAT · 7, 15, 16, 17 SWAT composition · 10 organisation · 14 systémique cohérence · 19 T thèmes découpage · 6, 9 travail de groupe · 8 typologie risques · 16 U utilisateur exigences · 7 réel · 9 validation · 15 utilisateurs approbation · 14 utilisateurs significatifs · 10, 20 V validation permanente · 14, 16 verrouillage · 9, 19 vidéoprojecteur · 9 visibilité · 6, 15, 16 vision prospective · 16 © 2000, Jean-Pierre Vickoff, RAD.fr RAD , la méthode de développement rapide d'applications 2.7. 31 Figures Figure 1. — Jalons décisifs du cycle projet RAD Figure 2. — Principales étapes d’un cycle de projet à 120 jours 6 7 Figure 3. — Phasage et parallélisation (grand projet) 10 Figure 4. — Modélisation UML des exigences (Paradigm Plus) 11 Figure 5. — Architecture de réalisation (Focus de visibilité) 16 2.8. Tableaux et listes Tableau 1. — Nombre de Focus en fonction du projet 17 Tableau 2. — Synthèse phase Initialisation 18 Tableau 3. — Synthèse phase Cadrage 19 Tableau 4. — Synthèse phase Design 20 Tableau 5. — Synthèse phase Construction 21 Tableau 6. — Finalisation, étape de mise en œuvre 22 Tableau 7. — Synthèse Finalisation, étape recette officielle 23 Tableau 8. — Synthèse, finalisation, démarrage 24 Tableau 9. — Documents conseillés en clôture de phase 25 © 2000, Jean-Pierre Vickoff, RAD.fr Jean-Pierre Vickoff est avant tout pilote de projet et concepteurdéveloppeur. Canadien et Français, il s’est spécialisé en Amérique du Nord dans les méthodes de développements sous contraintes. Consultant en qualité et en performance, il produit des communications pour la presse professionnelle et des rapports pour le Gartner Group. Il est l’auteur de plusieurs ouvrages, dont RAD et Réingenierie du développement d’applications. Il préside la commission conduite de projet IM-CP de l’AFITEP et interviens auprès des établissements membres de la Conférence des Grandes Ecoles. Pilote 2010 n’est pas un livre dans le sens littéraire du terme mais un support d’étude, de réflexion et d’action. Pilote 2010 instrumente l’ensemble des méthodes, pratiques et outils indispensables à la productivité du développement ainsi qu’à la qualité des applications.Pilote 2010 constitue une source unique de références opérationnelles en matière de : § § § § § § § § § § § § § Conduite de projet (classique, décisionnel, NET) Plan d’Assurance-Qualité du développement Pilotage des risques et métrique quantitative des charges Méthodes, pratiques, outils de la performance Processus d’ingénierie du développement (RAD2-UML) Processus spécialisé e-commerce Gestion des Exigences, des Validations et des Divergences Gestion de la communication et des rapports entre acteurs Notations et techniques de modélisation (Merise, Flux, Objet) Ingénierie « métier » et accompagnement organisationnel, BPR, MTQS Industrialisation, choix de solutions, progiciel, externalisation Planification, documentation, plan de tests, gestion de configuration Standards d’évaluation et d’amélioration (SEI-CMM/ISO-SPICE) Ces thèmes sont traités sous une forme directement utilisable. Pilote 2010 propose aussi dans un format MS Office : § § § § § § Un ensemble normalisé de documents de projet Un plan d’Assurance-Qualité générique Divers processus (RAD2, progiciel, externalisation) Un rapport standard de pilotage de projet Un logiciel d’évaluation de charge, d’optimisation et de négociation Une présentation et une formation à la méthode RAD Dans un univers de performances, où l’obligation de résultats s’impose à tous progressivement, la rigueur devient l’alliée du changement. Les pilotes de SI se doivent alors d’envisager immédiatement l’acquisition d’une nouvelle culture « projet » et de l’appliquer à l’évolution de leur profession. Dans cette optique, Pilote 2010 leur propose une couverture complète et en l’état de l’art, des évolutions du métier. Cette ambition positionne l’ouvrage comme la Bible du développement d’applications pour la décennie en cours.