Tuxitecte

Herve Quiroz, Lead Architect Componize

Bonjour tout le monde !

Aujourd'hui, je publie une interview de l'un de mes formateurs sur Alfresco. Il est reconnu pour être l'un des meilleurs formateurs sur Alfresco tant sa connaissance du produit mais aussi de Java est impressionnante.

En effet, j'ai l'honneur et le plaisir d'interviewer Herve Quiroz, Lead Architect chez Componize.


Bonjour Herve,

Je tenais avant tout à vous remercier de m'accorder un peu de votre temps pour répondre à cette interview et pour partager votre vision de l'ECM à travers ce post.
Merci pour cette introduction très flatteuse.

  • Tout d'abord Herve parlons un peu de vous, quel est votre rôle au sein de Componize ?
Le nom du poste que j'occupe est officiellement "lead architect". Je passe une grande majorité de mon temps entre la conception et le développement de notre produit Componize ainsi que la formation Alfresco. Je suis en charge des décisions d'ordre technique au niveau du coeur de notre framework XML, c'est-à-dire la partie R&D de Componize Software.

Parmi mes compétences annexes, on trouve aussi les questions en rapport avec l'open source.

  • Pouvez vous nous présenter Componize ? Il s'agit de la branche ECM de Tetralogyx ?
En réalité, c'est une nouvelle société, totalement indépendante, créé par l'équipe ECM de Tetralogyx. Il s'agissait de créer une entité entièrement dédiée à l'ECM, notamment pour prodiguer nos fameuses formations Alfresco, et pour assurer le développement de notre produit, Componize.

  • Quel est le parcours que vous avez emprunté pour en arriver là ? Vous avez été enseignant je crois ...
En effet, j'ai commencé ma carrière dans le monde académique, en tant qu'enseignant-chercheur à l'Ecole Supérieure d'Ingénieurs de Luminy (ESIL) à Marseille au cours de la préparation de mon doctorat en informatique. J'ai ensuite rejoint un éditeur de solutions GED en tant que responsable R&D afin de mettre en application certaines de mes recherches théoriques dans le monde industriel. Mes travaux académiques portaient alors sur la distribution massive des calculs et des données dans des environnements non-sécurisés.

Etant un développeur open-source depuis quelques années déjà ("commiter" FreeBSD depuis 2004), j'ai eu envie de me rapprocher de ce modèle au niveau professionnel. C'est pourquoi j'ai intégré l'équipe ECM de Tetralogyx. Depuis, je travaille dans un esprit plus proche de mes idéaux personnels. J'apprécie également le fait de pouvoir travailler sur des technologies de pointe, mais aussi les méthodes de travail agiles que nous avons eu l'opportunité de mettre en place.

  • Herve, vous avez donc une double casquette : formateur Alfresco, et Lead Architect Componize. N'est ce pas trop dur parfois ?
J'imagine que c'est là que je devrais évoquer des conditions de travail déplorables au cas où mes employeurs liraient cet article en vue de négocier une augmentation... Mais en réalité, l'équipe de Componize Software assure une telle logistique que je peux consacrer la plus grande partie de mon temps de travail à des tâches que j'apprécie, c'est-à-dire concevoir une architecture, développer notre logiciel et animer des formations.

J'avoue que les journées sont longues, et qu'il m'arrive de passer des week-ends entiers dans l'avion, comme c'était le cas pour la formation à Sydney. Quoi qu'il en soit, c'est toujours avec un grand enthousiasme que j'aborde ce travail. En ce qui me concerne, la seule véritable difficulté est d'arriver à synchroniser mes déplacements avec le reste de l'équipe afin d'améliorer notre efficacité collective.

  • En tant que formateur Alfresco, quels sont les avantages et les inconvénients d'être formateur ?
J'aimerais pouvoir dire que ça aide avec les filles...

En réalité, je pense qu'il est primordial, lorsque l'on pense maîtriser un concept ou une technologie, de partager cette connaissance avec d'autres personnes. Lors des formations Alfresco, chacun vient avec ses propres connaissances en la matière, sa propre définition de l'ECM, ses méthodes de travail, astuces de programmation et design patterns favoris. Par cette confrontation d'idées et d'opinions, j'ai eu l'impression d'améliorer ma compréhension du sujet à chaque formation que j'ai animée jusqu'ici.

Et même si c'est un pur pêché de vanité, il a un côté gratifiant de savoir que l'on contribue à la réussite des projets d'autrui.

En revanche, être formateur implique de toujours se tenir au courant des dernières évolution du domaine, de se mettre à la page de manière régulière. Cela peut probablement être perçu comme un inconvénient lorsque cela doit être un effort conscient. Ce n'est pas le cas chez Componize Software, car les formateurs passent une grande partie de leur temps à développer une solution logicielle intégrée avec Alfresco et ainsi notre "remise à niveau" se fait sur le tas. Et cela nous permet de baser notre discours sur une expérience conrète plutôt qu'un hypothétique "manuel du formateur".

  • Comment s'est passée votre première rencontre avec Alfresco ?
J'avais déjà eu l'occasion de lire des documents ou des articles concernant Alfresco avant de rejoindre Tetralogyx. Mais sans pouvoir rentrer dans les détails, je ne comprenais pas vraiment certains choix techniques. Cependant, depuis que je travaille sur cette plate-forme et que j'en sais plus sur ses rouages internes, j'ai pu constater une certaine élégance dans les solutions techniques mises en oeuvres, notamment due à leur simplicité.

Dans le même ordre d'idée, on peut passer son temps à se dire "ok, ils n'ont rien inventé, c'est juste Spring, ou hibernate, ou la technique du copy-on-write...". Mais on se rend vite compte que c'est justement une des forces d'Alfresco, de ne pas réinventer la roue et de capitaliser sur les acquis du monde open-source.

Bien sûr, on trouve toujours des points perfectibles à force de côtoyer les mêmes APIs jour après jour. Par exemple, il me semble que certaines signatures de méthodes dans les foundation services auraient gagnées à être un peu plus souples au niveau des types générique (e.g. au lieu de pour les propriétés). Mais dans l'ensemble, c'est une plate-forme de développement que j'apprécie.

  • Quelles sont les prochaines sessions de formations que vous animerez ?
J'inaugurais la semaine dernière notre nouveau centre de formation à Marseille en animant la formation "Alfresco intensive developer training" et j'ai un programme assez chargé au niveau formations en Europe pour les mois à venir, en commençant par le Luxembourg la semaine prochaine. C'est aussi le cas de Frank Shipley, notre autre formateur.

La liste exacte des formations publiques se trouve sur notre site web: http://www.componize.com/services/alfresco-training.php

  • Maintenant en tant qu'architecte Componize, pouvez vous nous présenter le produit sur lequel vous travaillez ?
Nous sommes persuadés que la Gestion de Contenu par Composant (Component Content Management, CCM) constitue la prochaine grande révolution du secteur de l'ECM. Pour schématiser, cette discipline est similaire à l'ECM mais concerne les documents composites, c'est-à-dire un contexte dans lequel l'information est stockée et manipulée sous forme de fragments de documents. Ce nouveau paradigme apporte bon nombre d'avantages et facilite notamment la ré-utilisation du contenu dans une entreprise. Par exemple, il est très courant que le manuel d'utilisation d'un produit contienne des informations issues du cahier des charges de ce même produit. Ou encore des informations légales identiques à celles des manuels des autres produits de la même marque. La rédaction de documents par composition permet de ne pas avoir à dupliquer ces information d'un document à l'autre.

Malheureusement, le CCM apporte son lot d'inconvénients, notamment en ce qui concerne le choix de la granularité ou encore la gestion des liens entre les fragments. Componize offre des fonctionnalités qui permettent de passer outre ces problèmes et d'obtenir ainsi le meilleur des deux mondes.

Nous travaillons pas mal dans le secteur de la documentation technique, mais nous avons également des demandes qui concernent d'autres types de problématiques : maintenance/publication de documents juridiques, production de documents en masse, etc. Preuve que la gestion de contenu par composants se diffuse dans tous les secteurs, et pour adresser différentes problématiques documentaires.

  • Quelles sont les fonctionnalités de cette version de Componize ? Quelles problèmatiques adresse ce produit ? D'ailleurs s'agit il d'un produit, d'un framework..?
Componize est avant tout un framework. Cependant nous développons des déclinaisons sous forme de solutions intégrées, comme "Componize for Alfresco". Le coeur du produit offre des fonctionnalités pour gérer les documents composites, les liens entre les fichiers, la synchronisation des meta-données avec l'outil d'indexation mais aussi la publication des documents vers des formats standards tels que HTML, PDF, Eclipse Help.

Par exemple, dans notre domaine d'application, les méta-données sont stockées dans le contenu, contrairement à l'ECM plus "classique" où ces informations ne sont généralement extraites d'un document qu'une seule fois lors de son ajout au dépôt. Ainsi, avec Componize, les méta-données sont synchronisées en permanence entre l'outil d'ECM et le contenu, à la volée, potentiellement à chaque lecture ou écriture du contenu. Dans certains contextes, par exemple lorsque le contenu est stocké dans une base de données XML native, Componize peut de passer totalement d'un mécanisme d'indexation externe.

Un problème récurrent dans le domaine du CCM est le fait de bien choisir sa façon d'organiser ses fichiers. En effet, les références entre les fichiers s'effectuent au moyen de chemins relatifs et il devient vite difficile de déplacer un fichier car cela nécessite là ré-écriture de tous les autres fichiers y faisant référence. Nous avons décidé de gérer ces liens entre les documents comme le reste des méta-données. Componize peut ainsi ré-écrire des liens à la volée. Le déplacement d'un fichier n'a donc aucun impact sur le travail des rédacteurs. Par la même occasion, Componize fournit des outils pour une gestion plus fine des liens, par exemple pour retrouver facilement tous les fichiers qui font référence à une image en particulier, ou encore la liste des documents qui ont des liens "cassés" qu'il faut réparer avant de pouvoir publier.

  • Sur quels composants se repose Componize ? Les technologies employées sont elles standardisées ?
Un des avantages de notre framework est le fait qu'il repose sur des spécifications, outils et standards établis. Cela facilite d'autant plus son intégration dans d'autres applications plus orientées métier.
Par exemple nous avons développé un module VFS (Virtual File System) qui permet l'accès à une multitude d'espaces de stockage tels qu'un dépôt Alfresco ou une base de données XML. Plutôt que d'inventer encore une nouvelle interface de programmation pour y accéder, nous l'avons rendu compatible avec la majorité des APIs existants pour le traitement XML en Java tels que SAX, DOM, TrAX, et même StAX. Ainsi, toute application XML standard programmée en Java peut potentiellement bénéficier des avantages du framework Componize à moindre frais.

Nous avons également mis au point un module pour la transformation de documents XML au moyen de scénarios plus ou moins complexes. Là encore, plutôt que d'inventer notre propre langage, nous avons décidé de développer une implémentation de la spécification XProc (XML pipeline processing) de W3C.

Ainsi, toute personne possédant des compétences en programmation Java et XML peut rapidement développer une application pour publier des documents en utilisant Componize.

  • Quel est l'intérêt de se reposer sur une solution comme Alfresco pour construire une nouvelle solution plus spécifique ?
Comme je l'ai dit un peu plus haut, une des forces d'Alfresco est de ne pas réinventer la roue lorsque des solutions efficaces existent déjà. Notre métier est avant tout la manipulation des données XML. Il ne s'agit pas vraiment de les stocker ni d'organiser le travail des utilisateurs au moyen d'un outil de workflow. Ce sont des choses qu'Alfresco sait bien faire et nous pouvons donc nous concentrer sur notre problématique.

Par contre, il est tout à fait possible d'utiliser Componize sans Alfresco dans certains contextes où les fonctionnalités ECM ne sont pas nécessaires. C'est le cas de notre site Web qui est entièrement géré et publié via Componize. Nous utilisons un dépôt Subversion pour le stockage des documents et Maven pour l'intégration (Componize est disponible sous forme de plug-in Maven).

  • Pour mener à bien cette intégration, pouvez vous nous parler des pratiques que vous avez mises en place en terme de développement agile ?
Je suis assez maniaque en ce qui concerne la qualité du code et les tests unitaires. J'avoue aussi que je n'apprécie pas vraiment les tests fonctionnels qui impliquent de cliquer et de naviguer parmi des dizaines de pages Web afin de valider un composant bas niveau. C'est pourquoi nous avons rapidement décidé d'appliquer une politique systématique au niveau des tests unitaires et de mettre en place un serveur d'intégration continue en utilisant Hudson.

Pour l'intégration, nous utilisons Apache Maven, avec un plugin développé en interne pour fabriquer le fichier AMP du module Componize et ensuite l'injecter dans un fichier WAR. Maven offre également la possibilité d'obtenir une multitude de rapports utiles sur le code source, parmi lesquels FindBugs et PMD pour détecter les mauvaises pratiques ou encore CPD pour les
sections de code source redondantes. Tout cela nous permet de garder un oeil constant sur la "bonne santé" de notre code source. Ainsi, nous n'avons pas peur du refactor!

De plus, le développement d'extensions pour Alfresco implique des tests sur une instance qu'il faut sans cesse redémarrer. Comme vous le savez, ce démarrage peut prendre entre 30 secondes et quelques minutes selon la puissance de la machine. Sur l'ordinateur portable d'un développeur, cela se situe généralement au dessus de la minute. C'est pourquoi nous avons mis en place des instances de test (que nous appelons des "sandboxes") sur un serveur distant plus puissant.

Après chaque changement du code source, l'application est entièrement recompilée, packagée puis redéployée dans un serveur d'application. Cela permet à n'importe qui de tester à tout moment la dernière version du produit, sans effort supplémentaire de la part des développeurs. Cette pratique a été particulièrement efficace au cours de la réalisation de projets pilotes en collaboration avec des personnes qui n'étaient pas elles-mêmes des développeurs.

  • Pour finir sur une note annexe, quels sont vos blogs et liens préférés sur l'informatique en général ?
Je suis abonné aux flux RSS de IBM DeveloperWorks (Java et XML) et j'y trouve assez régulièrement des articles et tutoriaux intéressants. J'essaye également de suivre les actualités sur TheServerSide.com. On y trouve parfois des idées de framework à découvrir ou bien des discussions assez technique sur certaines technologies (par exemple les APIs de logging).

Très récemment, j'ai fait la découverte de ohloh, qui est un site de social networking pour développeurs et utilisateurs de logiciels open-source. Il y a un petit côté "people-isation" en ce qui concerne les développeurs open-source, mais aussi et surtout une indexation des informations concernant les projets de toutes les forges majeures (SourceForge, Google Code), ce qui permet de retrouver facilement un projet ou une personne. Pour chaque projet, le site analyse jusqu'au code source lui-même (par exemple le nombre de commits ou de lignes de code par développeur). J'imagine que cela pourrait même devenir un outil intéressant pour les recruteurs.

  • Un dernier mot avant de se quitter ?
Merci de m'avoir donnée l'occasion de présenter le CCM et Componize. Cet exercice m'a fourni la motivation nécessaire à la rédaction de mon propre blog. Il ne me reste plus qu'à trouver le temps de rédiger quelque chose d'intéressant...

Merci encore pour cette interview et bonne continuation sur la route d'un monde ECM Open Source ! Vous pouvez retrouver toutes les informations sur l'offre Componize à l'adresse suivante : http://www.componize.com

Digg Google Bookmarks reddit Mixx StumbleUpon Technorati Yahoo! Buzz DesignFloat Delicious BlinkList Furl

1 commentaires: on "Herve Quiroz, Lead Architect Componize"

Maxime DELRIEU a dit…

Monsieur Quiroz dans l'ECM le monde est petit ^^

Enregistrer un commentaire