La montée de l’Open Source et des forges logicielles

Publié le 15 novembre 2008

20081115« L'Open Source est à peu près partout et l'on observe une tendance à l'augmentation de l'utilisation de l'Open Source ». C'est ce qu'indiquait Henry Peyret, analyste du cabinet Forrester lors d'un séminaire organisé par Bull la semaine dernière en présentant les résultats d'une enquête auprès de 132 décideurs IT et métiers d'entreprises situées dans quatre pays d'Europe.

 

Au-delà des statistiques dont les marges d'erreurs ne permettent pas de donner une photographie précise de la situation, cette enquête montre des tendances de fond rappelait en introduction le consultant de Forrester. Selon cette enquête, les évolutions seraient assez claires et montreraient une extension de la couverture de l'utilisation de l'Open Source par les DSI à la fois en densité et au niveau fonctionnel, partant des couches d'infrastructure vers les couches applicatives. Les DSI déclarent à 44 % utiliser l'Open Source pour développer les applications critiques et ils sont 27% à vouloir le faire dans les 12 mois à venir. Pourquoi choisir l'Open Source ? Les raisons ne sont pas nouvelles, mais elles sont confirmées enquête après enquête : la réduction des coûts bien sur, mais aussi l'indépendance et la capacité de ne pas être « prisonnier » d'un fournisseur, la conformité à la gouvernance informatique, le bénéfice de l'innovation et le support.

 

Autre enseignement de cette enquête, explique Henry Peyret, « l'adoption de l'Open Source va aider à la transformation de la DSI avec deux effets collatéraux positifs :

- en favorisant un meilleur consensus autour du développement avec une meilleure articulation entre la maîtrise d'ouvrage et la maîtrise d'œuvre

- en associant largement les utilisateurs au développement des fonctionnalités des solutions ».

 

Les forges logicielles sont liées au développement du logiciel Open Source, même si techniquement elles peuvent exister dans d'autres environnements. Parmi ces dernières, on peut citer CodePlex lancé par Microsoft en 2006.

SourceForge.net a été le projet pionnier dans ce domaine des forges logicielles. C'est une plate-forme qui met à disposition des outils de développement logiciel sous forme intégrée qui existaient séparément (CVS, gestion des sources, génération de code, qualimétrie, workflow, support, test...). Administrée par VA Linux, rebaptisée depuis Sourceforge Inc, SourceForge.net est dérivée de la dernière version Open Source de la forge initiale. Elle fait état de quelque 180 000 projets et de près de 2 millions d'utilisateurs. Des logiciels sortis du lot aujourd'hui ont été développés sur SourceForge. On peut citer par exemple JBoss (racheté par Red Hat), Zimbra (racheté par Yahoo), SugarCRM, OpenBravo, Gallery...

 

La forge de l'Adullact pour le secteur public

 

Depuis, de nombreux projets de forges sont apparus dans des domaines différentes et avec des missions particulières : BerliOS, PicoForge, Savannah... et encore Gforge lancée par l'Adullact dans le domaine des logiciels pour le secteur public et NovaForge ouvert par Bull en 2006. François Elie propose une typologie des forges logicielles en trois catégories avec des modèles économiques qui leur sont spécifiques : les forges industrielles comme d'OW2 (consortium créé en 2007 résultant de la fusion d'ObjectWeb et d'OrientWare) qui sont fondées sur la mutualisation de la R&D, les forges historiques comme SourceForge.net dont le business model est basé sur le revenu publicitaire et les forges clients qui regroupent des acteurs présents sur un même secteur, comme celle de l'Adullact dans le secteur public.

 

La plate-forme de développement coopératif Gforge Adullact est au service des collectivités, des services de santé, de l'éducation nationale, des associations, de l'état et des services publics en général. Les catégories représentées sont les suivantes : Administration, Cartographie, Communication, Education, Elections, Finances, Gestion des ressources, Logistique, Maintenance, Méthodologies, Productivité, Sécurité, Services aux citoyens, Télé-procédures multipartenariales. Selon François Elie, la forge de l'Adullact regroupe environ 2 000 développeurs et 300 projets, avec des niveaux d'avancement et de qualité très divers. Ces projets vont de Lutèce, le portail développé par la Mairie de Paris, à des petits projets développés par des particuliers. Sur ces projets, environ 40 sont aujourd'hui pleinement opérationnels. La Gforge a tissé un réseau de forges partenaires, dans d'autres pays européens, regroupant plus de 900 développeurs.  

 

Vers une convergence des trois types de forges ?

 

« Il faut que ces trois types de forges se réunissent, considère François Elie, président de l'Adullact. Au rang des questions qui menacent l'avenir du logiciel, selon François Elie, président de l'Adullact, figurent « le contrôle de la roadmap dont un avatar serait le monopole propriétaire et le cloud computing avec lequel les fournisseurs entendraient museler les utilisateurs ». Par ailleurs, le président de l'Adullact voit trois défis à surmonter : « faire cesser le travail non payé (les « hackers » dans le sens originel du terme ne sont pas seulement avides de reconnaissance, ils souhaitent une juste rémunération de leur production), effectuer des contrôles permettant de garantir la généricité des demandes et réduire la granularité des composants ».

 

NovaForge + Centre de services = Virtual Shore

 

« Bull est une société qui se porte bien », a tenu à rappeler Jean-Pierre Barbéris, directeur général de Bull, lors de ce séminaire. C'est également une entreprise (un peu comme tous les constructeurs informatiques) qui s'est largement transformée. « 43% des salariés de Bull n'étaient pas dans l'entreprise il y a seulement trois ans ». Ce renouvellement à marche forcée peut d'ailleurs s'interpréter d'une double manière car il mentionne une arrivée de sang neuf très forte, mais également des départs en masse.

 

20081115_01

 

Encore plus que dans d'autres domaines, « le développement logiciel doit désormais se penser en réseau et en mode collaboratif », commentait Jean-Pierre Barbéris et l'Open Source est particulièrement adapté à ce nouveau paradigme.

 

Bull, qui se présente comme un des champions de l'Open Source (ce qui ne l'empêche pas d'être aussi partenaire de Microsoft, il faut bien être pragmatique), s'est également lancé dans l'industrialisation du développement du  logiciel en créant Novaforge une plate-forme partagée et qui « s'appuie sur un processus de développement basé sur un ensemble d'outils et mis en œuvre depuis des années par la R&D de Bull dans ses propres programmes de développements répartis ». Novaforge peut-être utilisé à différentes fins :

- Projets de développement ou de rénovation d'application (refactoring);

- Maintenance applicative (TMA) des composants développés;

- Recette applicative (TRA) industrielle;

- Projets nécessitant une gestion des exigences

 

 

Les 5 éléments de Novaforge

 

Novaforge est créée autour de 5 éléments principaux : Référentiel, collaboratif, développement, intégration et test et pilotage.

 

Un Référentiel 

Ce référentiel regroupe les éléments réutilisables tels que composants, outils, pratiques et procédures

- recueil de bonnes pratiques ;

- check-list d'enchaînement des phases ;

- plans-types des artefacts projets ;

- guides méthodologiques pour toutes les phases du développement ;

- guides de processus conformes aux méthodologies et normes en vigueur dans l'organisation (CMMI) ;

- organisation et mise en place des équipes de développement ;

- bibliothèque de composants techniques et graphiques.

 

Un Portail collaboratif 

Le portail sécurisé pour la gestion du projet et des documents associés est articulée

autour de deux fonctions :

- la communication, à travers des outils collaboratifs comme la messagerie, le forum,

le wiki, la base de connaissance ;

- la gestion de la personnalisation des données et de l'accès aux différentes bases (sources,

documentation, délivrables, événements et traçabilité des anomalies).

 

Un Atelier de développement 

Cet atelier est basé sur l'IDE (Integrated Development Environment ; Environnement de développement intégré, réunissant tous les outils nécessaires à la création d'applications) Eclipse et le langage de modélisation UML (Unified Modeling Language). Il couvre toutes les phases de la réalisation du projet de développement, au sein d'un environnement intégré :

- spécifications : NovaForge permet le stockage des fichiers, leur partage et le versionning au sein du référentiel de documentation ;

- modélisation d'applications : NovaForge intègre les principaux AGL du marché (Mega, Enterprise Architect, etc.) et s'appuie sur Unified Process (RUP et 2TUP) pour élaborer des processus itératifs et incrémentaux ;

- génération de code, à partir d'une approche MDA (Model Driven Architecture) supportée par NovaStudio, un outil de génération de code intégrant toutes les bonnes pratiques du

développement en environnement Java / J2EE ;

 

Une structure d'intégration

Cette structure vise à améliorer la qualité grâce à un processus d'intégration continue et de test industriel en s'appuyant sur des outils de haut niveau, basés sur des composants open source (CheckStyle, Jalopy, Ant, Maven2, etc.), NovaForge propose aussi la structure nécessaire à une intégration continue avec :

- « Nightly build » : reconstruction systématique et tests automatiques quotidiens ;

- tests d'intégration (scénarii repris des UseCase UML) ;

- tests de performance (OpenSta / Mercury) : NovaForge met à disposition une plate-forme de qualimétrie intégrée, qui stocke et automatise la chaîne de tests ;

- déploiement.

 

Un module de pilotage

A l'aide d'indicateurs, ce module de pilotage fournit une vision partagée de l'état d'avancement du projet en termes de qualité, de ressources et de coûts, notamment :

- des tableaux de bord des projets pour la Direction d'une entité ;

 Une fiche d'état d'avancement sur une affaire ;

- des données agrégées, des informations unitaires et indicateurs qualitatifs saisis par l'équipe.

 

La combinaison de centres de services répartis dans le monde et de la plate-forme de NovaForge a donné naissance à ce que Bull appelle le Virtual Shore et qui permet de rassembler les compétences ad hoc pour un projet donné, indépendamment de leur localisation géographique.

 

20081115_02

 

_____________________________________
Dix points clés pour bien industrialiser ses développements

1 > Veiller à bien maîtriser le périmètre du projet.

Compte tenu des fréquentes itérations de tout projet, valider en permanence la parfaite

concordance entre les demandes et la réalisation est essentiel. Si cela semble une

évidence, force est de reconnaître que des progrès restent souvent à faire dans ce

domaine.

 

2 > Formaliser un socle d'architecture et un référentiel cohérents.

La formalisation d'un référentiel et d'un socle d'architecture est clé. Non seulement

pour chaque projet, mais aussi pour capitaliser entre projets.

 

3 > Mettre en place des outils collaboratifs.

Les projets restent très dépendants des individus qui les portent, et de la dynamique

collective. D'où l'importance cruciale des outils collaboratifs : portail, forums, mailings

lists, wikis, etc.

 

4 > Penser à la production dès l'amont du projet.

Dès le début du projet, il importe de veiller à la maîtrise des tests, de la qualimétrie

et de l'intégration continue, afin d'améliorer le niveau de qualité, sans risquer d'effet

de bord imprévu.

 

5 > Renforcer les outils de mesure et de traçabilité, tout au long du projet.

Assurer une mesure continue est essentiel pour donner à chacun une bonne visibilité

de l'avancement du projet. La qualité de la planification en dépend.

 

6 > Être rigoureux dans la planification.

Une approche intérative de la planification est fondamentale, afin de pouvoir détecter

très vite les risques de retard, et pouvoir prendre à temps les mesures correctrices

appropriées.

 

7 > Privilégier le choix des standards.

Avec les SOA, les composants devront être de plus en plus interopérables et les

développements de plus en plus distribués. Le choix des standards est essentiel à

cet égard.

 

8 > Bien définir le processus global de développement.

Les outils sont importants, mais c'est le processus qui est essentiel. C'est sur ce dernier

qu'il faut d'abord s'accorder. Les outils ne viennent qu'après.

 

9 > Gérer avec attention les aspects humains :

Il faut impliquer activement les développeurs dans le processus d'industrialisation,

afin d'éviter de susciter toute incompréhension ou réticence. Si cela semble aussi

une évidence, la marge de progrès est souvent importante dans ce domaine.

 

10 > Assurer le pilotage le plus intégré possible,

Même si les solutions sont encore émergeantes sur le marché. C'est un axe important

d'amélioration des outils.

(Source : Les forges logicielles - Bull)



Copyright © 2010 ITRmanager - All right reserved