Compréhension de la gestion de
configuration sur le marché actuel
Peu de choses font battre le cœur comme de parvenir à déboguer un bloc de code et de découvrir que quelqu'un y est parvenu la veille. Avez-vous ressenti de plus grandes poussées d'adrénaline qu'en terminant un grand projet logiciel... après la date de livraison prévue ? Qu'y a-t-il de plus revigorant que partir en quête de la révision la plus récente de ce module logiciel, terminé trois semaines plus tôt par l'équipe, et qui a depuis été réattribué ?
Tous ces problèmes pourraient être évités en employant la gestion de configuration logicielle (GCL). Les outils de GCL permettent de suivre et de gérer l'évolution d'un produit logiciel. Il a souvent été reproché à la GCL en tant que telle de ne pas être assez excitante. C'est en fait l'objectif de la GCL : éviter certaines sources d'excitation.
De grandes entreprises logicielles, en particulier celles qui exécutent plusieurs grands projets de développement simultanés, avec chaque projet réparti entre plusieurs équipes, commencent à penser de même. Ces entreprises ont souvent été échaudées et comprennent à quel point il est essentiel de gérer efficacement le processus de développement logiciel. Elles sont également parmi les premières à comprendre à quel point il est difficile de mettre en œuvre soit même un système de GCL véritablement efficace.
L'origine de la GCL
Par le passé, avant que la GCL soit comprise comme étant une tâche en soi, les entreprises de développement étaient persuadées que l'activité de programmeur serait gérée comme une activité dérivée du processus de développement logiciel, que les équipes de développement assureraient elles-mêmes le suivi de l'évolution du logiciel. Lorsqu'il est devenu évident que c'était au mieux une solution inadéquate et au pire nullement la solution, certaines entreprises logicielles ont concocté leurs propres outils de GCL. Certains de ces outils maison ont évolué pour devenir des projets Open Source. D'autres entreprises se sont tournées vers les systèmes de gestion de documents pour leurs fonctions de GCL.
Mais au cours de ces dernières années, avec de nombreux projets logiciels s'exécutant avec plusieurs millions de lignes de code, avec plusieurs équipes qui travaillent sur des modules distincts d'un programme et avec l'éloignement géographique des équipes, la GCL est devenue une tâche trop volumineuse et trop importante pour être effectuée par autre chose que des outils commerciaux professionnels et dédiés. La création de vos propres outils est désormais peu réaliste, les logiciels Open Source sont à présent trop limités, et les systèmes de gestion de documents ont toujours été inadaptés à cette tâche. En réponse à ces pressions, un marché commercial des outils de GCL a commencé à émerger au début des années quatre-vingt-dix.
Les avantages des outils de GCL professionnels
Parmi les avantages tangibles des outils de GCL figurent la capacité à :
- créer un cycle de développement logiciel et de version plus prévisible;
- automatiser les tâches de développement répétitives;
- gérer le développement simultané de plusieurs lignes de code, afin d'accroître la productivité;
- fournir un produit moins sujet aux bogues;
- créer des équipes de développement distribué, quel que soit leur implantation géographique.
La GCL peut avoir la réputation d'être aussi intéressante que la comptabilité, mais les conséquences d'une approche désinvolte de la GCL ne sont pas moins regrettables que celles d'une mauvaise tenue des livres comptables. C'est pourquoi les entreprises de développement logiciel les plus ingénieuses et les plus compétitives sont les plus enthousiastes à adopter et utiliser les systèmes de GCL formels.
Le marché
Parmi les sociétés qui ont accueilli à bras ouverts l'approche de la GCL figurent Silicon Graphics, IBM, PowerSoft et le géant allemand SAP AG. Et s'il reste un doute quant à la valeur de la GCL, les chiffres devraient le dissiper. Le chiffre d'affaires lié aux outils de GCL est en constante augmentation avec une hausse moyenne annuelle d'environ 50 pour cent depuis 1995, d'après Ovum Associates. En 1999, le marché mondial de ce que Ovum appelle les outils et services de "gestion de la configuration" ou "GC" a atteint 1,5 milliard de dollars.
"La source principale de croissance tient au fait que les utilisateurs ont obtenu d'excellents résultats dans les essais préliminaires, et ont commencé à appliquer les outils de GC à d'autres projets au sein de leur entreprise. Une fois que vous avez goûté aux avantages de la GC, il est difficile de les abandonner", précise un récent rapport sur le marché rédigé par Ovum.
Outils de GCL
La méthode habituelle pour classer par catégorie la plupart de produits logiciels, y compris les produits de GCL, consiste à les placer sur une échelle haut de gamme/bas de gamme.
En bas de l'échelle figurent les outils de GCL des logiciels Open Source sans frais. Bien que toujours limités, certains peuvent être adaptés. Toutefois, sans modification, ils ne parviennent finalement pas à répondre aux demandes réelles d'un cycle de développement logiciel complet. La capacité à modifier ces outils implique de trouver et de conserver des personnes pour faire le travail ; et peu d'entreprises de développement logiciel sont désireuses de supporter de tels frais généraux. Le marché commercial des produits bas de gamme compte de nombreux outils, en majorité des outils de contrôle de la version fondamentalement simples. Généralement une interface graphique utilisateur (GUI) placée sur un outil logiciel Open Source.
Les outils de GCL haut de gamme offrent un ensemble de fonctionnalités supérieures, fournissant généralement plus d'options pour le suivi, la création de rapports et la génération de données analytiques. Ils sont souvent hautement configurables. Si vous consultez la description des produits, une grande diversité apparaît entre les différents outils de GCL, avec une gamme de prix et de fonctionnalités proposées dans des combinaisons étonnantes.
Distinctions réelles entre outils de GCL
La comparaison des fiches techniques des produits peut prêter à confusion. Un moyen plus utile, mais également plus difficile, pour distinguer la valeur d'un outil de GCL par rapport à un produit concurrent consiste à évaluer ses performances réelles. Avec cette mesure, la distinction entre les outils de GCL bouscule la hiérarchie qui n'a alors plus rien à voir avec leur positionnement sur l'échelle haut de gamme/bas de gamme, ni même avec le prix.
Un inconvénient commun à plusieurs produits bas de gamme est l'incapacité à répondre aux besoins des gros projets de développement logiciel complexes. Les outils de GCL haut de gamme peuvent être encore pires. En pratique, le nombre de fonctionnalités et la configurabilité demandent aux développeurs de procéder à un certain nombre de personnalisations pour rendre les outils de GCL haut de gamme fonctionnels. La maintenance des outils de cette catégorie est souvent pénible, sans compter les coûts cachés. La nécessité d'engager des administrateurs spécialisés et l'investissement dans des ressources informatiques supplémentaires représentent deux des coûts cachés les plus élevés.
Les caractéristiques, qui sont de prime abord séduisantes sont en réalité utiles aux responsables et aux administrateurs. Mais le besoin sans cesse croissant de plus de suivi, plus de rapports, plus de données, plus de gestion et plus d'administration devient un fardeau inacceptable pour les programmeurs et les équipes de programmation. Le secret que l'on cherche à cacher est que dans un nombre de cas plus important que l'on ne veut l'admettre, les ingénieurs logiciels ont trouvé certains outils de GCL tellement peu maniables qu'ils refusent de les utiliser. Ces outils sont d'une valeur limitée, le cas échéant.
S'il n'y avait la résistance des développeurs à utiliser des outils de GCL peu maniables, le marché serait encore plus conséquent qu'il ne l'est aujourd'hui. Avec 1,5 milliard de dollars, le marché témoigne de la confiance désespérée que portent les entreprises de développement logiciel au concept et de leur désir de disposer d'outils opérationnels.
La question que presque tous les fournisseurs d'outil de GCL oublient de se poser est de savoir ce qui, des tâches administratives ou du produit, est le plus important ? En d'autres termes, lorsque les fournisseurs d'outils de GCL créent leurs produits, se concentrent-ils sur la configuration logicielle ou sur la gestion ? La question est loin d'être frivole ; les ramifications sont réelles et profondes. Si les ingénieurs refusent d'utiliser les outils ou ne les utilisent pas correctement en raison du manque de maniabilité des éléments de gestion, cela signifie que l'investissement dans un outil de GCL est contre-productif et ruineux. Cependant, si l'outil met l'accent sur les éléments de configuration logicielle, la productivité du développeur est mise en avant et la résistance dont il peut faire preuve face à son utilisation disparaît. Pour Perforce, ces outils qui mettent l'accent sur le G de GCL sont des outils "orientés processus", tandis que les outils qui mettent l'accent sur la CL, sont des outils "orientés développeur".
Les GCL orientées processus sont construites pour répondre aux préoccupations des responsables et administrateurs de projet. L'objectif visé étant le contrôle organisationnel. Les solutions de GCL orientées processus sont particulièrement séduisantes pour les industries hautement régulées qui exigent des directives de développement strictes et une surveillance attentive de la gestion. L'argument essentiel des outils de GCL est souvent qu'ils représentent une solution de développement logiciel clé en main. Toutefois, suivez le chemin orienté processus, et vous vous retrouverez inévitablement avec de jolis outils de GCL, bon marché et peu fiables, ou bien gonflés avec un prix élevé injustifié.
Les solutions de GCL orientées développeur sont construites pour répondre aux préoccupations des développeurs d'application. L'accent est mis ici sur les solutions visant à rendre les programmeurs (et les équipes de programmation) plus productifs tout en répondant aux exigences des dirigeants et de l'entreprise dans son ensemble. Suivez le chemin des solutions orientées développeur et vous vous retrouverez avec des outils qui s'installent rapidement, dont les frais généraux et le support sont minimes, et qui sont discrets du point de vue de l'équipe de développement logiciel ou du programmeur moyen.
Perforce Software préfère cette distinction pour une raison évidente : Perforce est l'un des rares fournisseurs d'outils de GCL à suivre le modèle orienté développeur ; ses outils de GCL se comportent bien et sont adoptés avec enthousiasme.
Il est également vrai que les produits Perforce ne s'adaptent pas très bien à l'échelle haut de gamme/bas de gamme. Ses outils de GCL sont peu onéreux et se comportent pourtant bien ou mieux que des outils soi-disant haut de gamme (comprendre "chers") servant complètement les besoins des développeurs de logiciels et de leurs responsables. Par ailleurs, les outils de GCL de Perforce ne proposent pas le même volume de fonctionnalités que certains autres outils de GCL "haut de gamme". Ceci est intentionnel. La société a volontairement conçu ses outils pour qu'ils soient légers, occupant peu de ressources système, n'exigeant que peu de frais généraux et effectuant les fonctions de suivi et de gestion nécessaires sans ajouter de fonctions potentiellement utiles mais en définitive totalement inutiles. Résultat : de meilleures performances.
Si les performances visent à devenir la norme en matière d'évaluation des outils de GCL, les critères les plus pertinents sont la facilité d'emploi, l'évolutivité, la force du modèle et la fiabilité.
- Facilité d'emploi - Le système est-il suffisamment rapide ? Est-il suffisamment rapide sur différents réseaux ? Tolère-t-il un environnement informatique hétérogène ? L'utilisation du système est-elle gênante pour le développeur ?
- Évolutivité - Que se passe-t-il lorsque vous chargez vos 20 000 fichiers source (ou 400 000 pages Web) sur le système de GCL ? Avez-vous toujours un système ? Ou avez-vous dû le fragmenter en 20 blocs distincts ?
- Force du modèle - Le système de GCL peut-il gérer plusieurs lignes de code de développement et de versions simultanées ? Assure-t-il un suivi des correctifs déjà effectués ? Si oui, où ?
- Fiabilité - Les outils fonctionneront-ils comme prévu, et seront-ils utilisés en conséquence ? Quel est le classement des outils en terme de qualité de service ?
Si l'on tient compte de ces facteurs, les outils de GCL Perforce se comportent extrêmement bien. Ils représentent le point de référence en matière de facilité d'utilisation, ils se dimensionnent particulièrement bien, ils sont exceptionnellement fiables et le modèle sous-jacent est solide.
Résumé
Les outils de GCL ne sont pas tous semblables ; ils ont une approche
différente du travail et certains sont plus puissants, plus utiles et plus flexibles que d'autres. Certains outils de GCL paraissent sophistiqués car ils ont une belle interface, mais leur GUI est en fait leur seule sophistication. Certains outils de GCL s'adaptent à n'importe quel flux de processus, tandis que d'autres forcent les ingénieurs à adapter leur flux à l'outil. D'autres encore, tels que les outils Perforce, sont puissants, flexibles et s'adaptent à n'importe quel flux de processus ; en outre, ils sont tellement simples à utiliser que des développeurs ont rapporté qu'ils peuvent être installés et opérationnels en 20 minutes. Certains outils de GCL sont réellement efficaces.
Remarques :
1. Pour plus d'informations, reportez-vous à l'article rédigé
par le cabinet d'analystes Quocirca:
Through the fog... Software configuration management [PDF]
| 2. Chiffre d'affaires prévisionnel pour les fournisseurs d'outils de gestion de configuration (en millions de dollars) | |||||||
| Source : Ovum Associates | |||||||
| 2000 | 2001 | 2002 | 2003 | 2004 | 2005 | ||
|---|---|---|---|---|---|---|---|
| États-Unis | 1,200 | 1,575 | 2,050 | 2,700 | 3,300 | 4,000 | |
| Europe | 600 | 800 | 1,050 | 1,350 | 1,700 | 2,100 | |
| Reste du monde | 150 | 225 | 325 | 450 | 600 | 800 | |
| Total | 1,950 | 2,600 | 3,425 | 4,500 | 5,600 | 6,900 | |