| Accueil >> Varia >> Génie logiciel

Le Gardien des Classes

Imaginez la scène suivante dans un hôpital:

[Directeur d'hôpital]: «La chirurgie sans souffrance est un mythe. Voilà des années que je suis dans le domaine, et tous nos patients hurlent à mort quand ils se font opérer.»

[Journaliste:] «Mais Seigneur, qui est votre anesthésiste?»

[Directeur d'hôpital]: «Un quoi?»

Cette scène désopilante se produit réellement dans plusieurs compagnies qui font du développement logiciel:

[Gestionnaire:] «La réutilisation de code est un mythe. Voilà des années que je suis dans le domaine de l'informatique, et j'en n'ai jamais vu.»

[Programmeur:] «Mais Seigneur, qui est votre Gardien des Classes?»

[Gestionnaire:] «Un quoi?»

Voici donc quelques citations:

«La réutilisation est d'abord et avant tout un phénomène social. [...] La réutilisation de code n'apparaît pas comme par magie suite à l'utilisation aveugle de fonctionnalités spécifiques d'un langage ou de techniques de programmation.»

«Selon mon expérience, les conditions nécessaires pour la réutilisation de code n'existeront que si on attribue à quelqu'un la tâche de faire fonctionner un tel partage. Dans un petit groupe, ceci signifie habituellement qu'un individu, par accident ou suite à une décision formelle, devient le Gardien des Classes. Dans une plus grosse organisation, cela signifie qu'un groupe ou un département est mandaté pour rassembler, construire, documenter, entretenir et disséminer les produits logiciels utilisés par plusieurs groupes.»

Bjarne Stroustrup, inventeur du langage C++
(The C++ Programming Language, Special Edition, p. 714)

«Le Gardien des Classes est responsable de la gestion du dépôt corporatif de produits logiciels réutilisables, incluant le code, les architectures, et même la documentation. Au minimum, les tâches du Gardien incluent l'entretien et l'accessibilité du contenu de ce dépôt. Sans un tel effort actif, un tel dépôt peut devenir un déplorable désert de détritus dans lequel aucun programmeur ne voudrait aller fouiller. Dans les organisations qui ont atteint un niveau de maturité plus élevé, les tâches du Gardien comprennent la participation aux réunions d'architecture et de révision de code, la recherche active des éléments communs, et ensuite la défense et l'exploitation de ces éléments communs.»

Grady Booch, inventeur de la conception orientée-objet
(Object Solutions, p. 204)

Dans la section «Carrières» des journaux, on devrait bientôt retrouver des offres d'emploi pour le poste de Gardien des Classes, au même titre que d'autres postes comme «Programmeur», «Analyste» ou «Responsable de l'Assurance-Qualité». Voici à quoi pourrait ressembler une telle annonce:


La compagnie XYZ, toujours soucieuse d'augmenter la qualité
de ses logiciels, ainsi que de diminuer le coût et le temps de leur production,
est à la recherche d'un Gardien des Classes. Ce poste comporte les
responsabilités suivantes:

- Conserver, augmenter et disséminer le code commun
- Favoriser l'enrichissement du dépôt de composantes réutilisables
  de la compagnie.
- Être la personne-ressource à qui on s'adresse pour savoir
  où sont et comment se servir des composantes réutilisables.
- Élaborer un «Arbre de signets Internet» bien documenté par
  catégorie, pour permettre l'accès rapide aux composantes
  réutilisables vendues par d'autres compagnies.
- Identifier, décrire et éliminer les chevauchements d'efforts entre les
  projets passés, présents et à venir
- Participer aux réunions d'architecture de tous les projets.
- Veiller à ce que les composantes qu'on veut réutiliser aient une
  architecture orientée-objet flexible et saine.
- Garder une bonne vue d'ensemble autant de la compagnie que
  de l'industrie informatique en général, afin de prévoir autant
  que possible où sont les meilleures chances de réutilisation.
- Aider les gestionnaires à chiffrer les bénéfices et les coûts
  de la réutilisation
- Évaluer les possibilités de réutilisation (nombre de réutilisations
  et degré des modifications nécessaires pour chacune d'entre elles)
  pour toute composante intéressante.
- Identifier les composantes qui coûteraient trop cher à rendre réutilisables.
- Éventuellement, dénicher d'autres compagnies qui seraient intéressées
  à partager les coûts de production d'une composante réutilisable.
- Favoriser les bonnes techniques de programmation
- Encourager l'application des règles de l'art dans la programmation
  et la documentation (pour être réutilisable, une composante doit
  d'abord être utilisable).
- Donner des formations ponctuelles aux programmeurs sur les sujets
  pertinents.

© Stefan Jetchick, 15 juin 1997.

| Accueil >> Varia >> Génie logiciel