Partenaires Logiciels Libres : LinuxGraphic .::. NuXo .::. Generation Libre.::. QuebecOS
Bienvenue sur Logiciel Libre . Net, première ressource francophone sur l'économie du Libre.
Que cherchez-vous ?     ::     Imprimer  ::  Contact  ::  A propos de...  ::  Accueil
 




[NEWS] L'oeuf ou la poule ?

L'analyse conduit-elle au code ou le code conduit-il à l'analyse ? La question pourrait sembler stupide. Le logiciel libre remet pourtant en question quelques pratiques bien établies en matière de développement informatique.

La pratique d'un développement itératif a remis en question l'importance de l'analyse. La disponibilité croissante de composants logiciels libres de qualité va également dans ce sens. Cette évolution annonce un rééquilibrage de l'importance relative du code et de l'analyse (ainsi qu'une redéfinition de cette dernière). Et révèle le rôle majeur d'un architecte logiciel.


Le libre possède une conception particulière de la création d'un logiciel informatique. L'implémentation est privilégiée par rapport à l'analyse. Les propositions concurrentes s'éliminent progressivement par fertilisation croisée et darwinisme technique.

Cette conception a insipiré plusieurs méthodologies de développement de produits matériels ou immatériels. Citons en particulier la mouvance du développement flexible, qui a notamment conduit le développement du navigateur Netscape Navigator. Le développement flexible recommande un développement produit itératif, avec un grand nombre de versions intermédiaires incomplètes et imparfaites, permettant d'intégrer le feedback du client. L'objectif est de proposer rapidement un produit toujours en phase avec les attentes du client.

Le logiciel libre remet en cause la façon de concevoir l'architecture d'un logiciel. La conception classique de l'analyse logicielle affirme en effet la primauté de l'analyse sur le code. L'approche orientée objet a de son côté accru l'importance de l'analyse et facilité le développement par l'extension et la réutilisation de composants logiciels.

Le libre propose aujourd'hui un énorme réservoir de code réutilisable, parfois de très bonne qualité. Des applications complètes peuvent ainsi être crées en intégrant des morceaux de code librement téléchargeables sur Internet. La plate-forme d'e-learning Claroline a ainsi été créée en intégrant des outils pédagogiques (forums, quizz, etc) libres, jugés de qualité supérieure aux outils intégrés dans des plates-formes propriétaires existantes.

Dès lors, on peut se demander qui engendre le logiciel ? L'analyse ou le code ? L'analyse est censée déboucher sur un logiciel et un code de qualité. A l'inverse, la disponibilité de composants logiciels libres mérite que l'on perturbe l'analyse pour, d'une part, s'éviter de reprogrammer des choses préexistantes et, d'autre part, s'adjoindre des appuis extérieurs.

Cette philosophie de conception logicielle pose néanmoins question quant à l'indépendance de l'entreprise maître d'oeuvre. Ne risque-t-elle pas d'être l'otage de composants logiciels dont elle n'a pas la maîtrise et dont le comportement varie fréquemment dans le temps. La solution réside probablement dans un choix raisonné des composants libres et une réflexion préalable sur les compétences clefs de l'entreprise.

L'entreprise a besoin de stabilité. L'utilisation d'un composant logiciel libre doit occasionner un minimum de perturbations dans le temps. Le réservoir de code représenté par les grands projets libres est à ce titre intéressant. Ces grands projets sont en effet obligés :

- de concevoir l'application de manière modulaire et
- de stabiliser l'interface de ces modules

afin de permettre le co-développement et l'extension des applications. Nous pouvons citer des exemples comme Apache ou Mozilla.

Le serveur HTTP Apache peut voir ses fonctionnalités étendues par des modules additionnels. De base, une distribution Apache comporte unn vaste ensemble de modules tels que mod_auth, mod_mime, mod_usertrack, etc. D'autres modules, comme mod_perl, sont disponibles.

Mozilla ne peut pas être étendu à l'aide de modules, mais son code possède une découpe claire (Gecko, Necko, XPCOM, etc), ce qui en facilite la réutilisation. Son moteur de rendu, Gecko, anime ainsi de nombreux navigateurs tels que Mozilla, Phoenix ou Galeon.

La réflexion sur les compétences clefs est stratégique. Dans le cadre d'une stratégie de produit, pourquoi redévelopper quelque-chose qui n'est pas dans le domaine de compétence de l'entreprise, dès lors que d'autres l'ont déjà librement développé ? La question se pose donc de savoir ce que l'entreprise peut apporter comme élément différenciant à un ensemble prééxistant. Le choix de développer ces nouveaux éléments sous licence libre ou propriétaire revient à l'entreprise (mais nécessite bien sûr le respect des licences des composants logiciels utilisés).

Ainsi, Charles Ferguson, le créateur de Frontpage (éditeur HTML propriétaire aujourd'hui intégré à la gamme de produits Microsoft), souhaitait pouvoir imposer des instructions propriétaires permettant de dialoguer avec un serveur Web. Redévelopper un nouveau serveur n'était pas la solution. Par contre, la possibilité de développer un module additionnel à Apache, déjà bien implanté à l'époque (fin 1995), lui a permis de proposer rapidement un système complet et fonctionnel.

Remarquons que ce type de stratégie profite à la fois à l'entreprise et au libre. L'entreprise économise en temps de développement et peut se consacrer à ce qu'elle fait bien. Le logiciel libre gagne en crédibilité du fait de son utilisation par des professionnels.

Ce contexte nouveau illustre l'importance d'un rôle d'architecte logiciel, capable de comprendre les compétences clefs de l'entreprise, d'évaluer les ressources libres préexistantes et de les intégrer dans une infrastructure logicielle en construction.

Posté le 22 avril 2003.


[Retour aux archives 2003]   ::   [Postez un commentaire]

 

LIENS COMMERCIAUX

 

AUTRES RUBRIQUES D'INTERET

Découvrez le sommaire des archives des news de LogicielLibre.Net


© Robert Viseur @ Ecocentric.be (2003-2018)