Inscrivez-vous gratuitement à la Newsletter BFM Business
L'évolution des outils de développement a conduit à une gestion du cycle de vie des applications (ALM). La nécessité de maîtriser les processus de l'entreprise a amené les solutions de gouvernance à s'intéresser au développement d'applications
Face aux constats d'échecs des projets informatiques, les enjeux sont multiples. D'un point de vue technique, il s'agit d'améliorer la productivité des développeurs : gérer la complexité, simplifier les outils, optimiser les processus, automatiser les tâches sans valeur ajoutée. En bref, industrialiser le développement.D'un point de vue métier, le premier objectif est de faire collaborer les différentes parties prenantes du projet : améliorer la communication entre les équipes, gérer l'externalisation de certaines phases... Il faut également assurer le pilotage : disposer de métriques et d'indicateurs pour contrôler et prévoir, disposer des bons leviers pour agir... Enfin, aligner l'informatique sur le métier reste l'enjeu fondamental : gérer la qualité et s'assurer que le résultat correspond aux exigences des utilisateurs, maîtriser les risques du projet. Concernant l'entreprise, enfin, celle-ci doit s'adapter rapidement aux exigences du marché et aux évolutions technologiques. Pour répondre à ces problématiques, trois approches se dessinent, trois philosophies différentes : l'AGL (atelier de génie logiciel), l'usine logicielle et la gouvernance du changement.
L'atelier, rapide et efficace
L'approche RAD (Rapid Application Development) des AGL privilégie la rapidité de programmation. Un atelier de développement avec un environnement de conception graphique sert à créer les interfaces utilisateur, accéder aux données, construire des rapports... Le langage utilisé est de haut niveau (4e génération). Les AGL ne sont donc pas à proprement parler des solutions de d'ALM. Cependant, un produit tel que Windev de PC Soft s'est doté au fil du temps de fonctions de gestion du cycle de vie. L'outil d'ALM est alors l'atelier, qui définit les règles métier, génère le squelette de l'application, code, teste et pilote le projet. C'est une solution propriétaire, monolithique et fermée, sans possibilité d'utiliser des outils tiers de modélisation ou de test. Mais elle offre deux avantages non négligeables : une rapidité et une productivité indéniables.
L'industrialisation des développements
L'approche dite usine logicielle est l'aboutissement de l'évolution naturelle des outils de développement. Historiquement, le triptyque éditeur-compilateur-débogueur constitue l'outillage de base du programmeur. Dans les années 1980, ces outils fusionnent pour donner naissance à l'environnement de développement intégré (IDE). Les compilations sont automatisées grâce à des outils de build. Pour travailler en équipe et partager les codes source, on s'appuie sur des systèmes de contrôle de versions (VCS, Version Control System).Dans les années 1990, avec l'avènement des langages objet (C++, Java), apparaît le besoin de modéliser les applications en UML. Les outils de tests se diversifient, on commence à automatiser leur exécution. D'autre part, les besoins des utilisateurs sont formalisés grâce à une gestion des exigences. Le système de contrôle de versions se transforme en gestion de configuration pour gérer l'historique de tous les objets du projet : codes source, bibliothèques, modèles exigences, cas de tests... Pour piloter les activités du projet, on fait appel à une gestion du changement qui orchestre les différents processus du développement. C'est donc toute une myriade d'outils qui viennent se greffer autour de l'activité de développement, chacun prenant en charge une phase du cycle de vie.Mais il manque encore l'intégration entre tous ces outils, la possibilité de partager des données et de lier les différents processus. C'est le grand chantier des années 2000 auquel s'attaquent les éditeurs d'outils de développement mais également des acteurs venus de l'opérationnel, et qui donne la première vague de suites ALM : Rational (racheté par IBM), Microsoft, Borland, Serena, Telelogic... Parallèlement, les méthodes de conduite de projet dites agiles commencent à déteindre dans le discours marketing des éditeurs. Elles mettent le test au centre de l'activité de développement et préconisent des cycles itératifs plus fréquents. Les outils s'adaptent et Microsoft propose dans son outil Visual Studio Team System une implémentation de ces méthodes avec une automatisation poussée des builds. Ainsi naît le concept d'usine logicielle, le terme usine désignant un système permettant d'industrialiser les développements, la vocation première d'une ALM.Le cycle de vie des applications s'étend maintenant au-delà du simple développement. Dans les organisations multiprojets, une gestion de portefeuille vient chapeauter les projets en amont. Une gestion de la qualité tout au long du cycle permet de contrôler la conformité avec les exigences et les normes. La gestion du risque sert à arbitrer les conflits entre les exigences des utilisateurs et les risques du projet. Tableaux de bord et outils de Business Intelligence peuvent être mis en place pour la direction afin de contrôler et piloter l'ensemble des projets de l'entreprise.Ainsi, d'une vision centrée sur le développeur, les outils se sont adaptés à l'équipe, puis à l'organisation, et enfin à l'entreprise. Cette approche bottom-up (ou ascendante) issue d'une démarche d'amélioration, est ce que nous appellerons d'une manière générale l'usine logicielle. Elle reste cependant centrée sur le projet. Typiquement, IBM, avec sa gamme Rational, a construit son offre en empilant les différentes briques d'une ALM. On retrouve cette typologie chez Borland, Microsoft et Telelogic.
Une vision orientée Itil
Parallèlement, les solutions de gouvernance du système d'information se sont de plus en plus intéressées aux services Études, aux processus de développement. Ces solutions intègrent une gestion du changement concernant les demandes de modification, les nouvelles fonctionnalités, les anomalies, etc. Dans cette vision très orientée Itil, un nouveau projet est considéré comme une demande de changement, le cycle de développement aussi. Cette vision, que l'on appellera gouvernance du changement, est évidemment portée par les éditeurs d'outils d'infrastructure ou ceux issus du pilotage et de la supervision d'applications. On retrouve cette approche top-down (ou descendante) chez HP, CA, IBM (qui est partout) ainsi que chez Serena.
Votre opinion