Vous êtes sur la page 1sur 7

Interview : 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
cœur 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.

http://www.opensourceecm.fr
http://www.open-source-ecm.com
Interview : Herve Quiroz, Lead Architect
Componize
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


évolutions 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".

http://www.opensourceecm.fr
http://www.open-source-ecm.com
Interview : Herve Quiroz, Lead Architect
Componize
• Comment s'est passé 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 oeuvre, 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.

• Quels 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.

http://www.opensourceecm.fr
http://www.open-source-ecm.com
Interview : Herve Quiroz, Lead Architect
Componize
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.

http://www.opensourceecm.fr
http://www.open-source-ecm.com
Interview : Herve Quiroz, Lead Architect
Componize
• Sur quels composants se repose Componize ? Les technologies employées sont
elles standardisés ?

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).

http://www.opensourceecm.fr
http://www.open-source-ecm.com
Interview : Herve Quiroz, Lead Architect
Componize

• Pour mener à bien cette intégration, pouvez vous nous parler des pratiques que
vous avez mis 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).

http://www.opensourceecm.fr
http://www.open-source-ecm.com
Interview : Herve Quiroz, Lead Architect
Componize

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

http://www.opensourceecm.fr
http://www.open-source-ecm.com