FLASH INFORMATIQUE FI



Le fabuleux destin de Plone




Olivier DECKMYN

Kamon AYEVA


Plone est le système de gestion de contenu le plus populaire du moment, spécialement pour les projets d’intranets ou de portails d’entreprise. Il a aussi deux autres particularités : il est Open Source et il est basé sur Zope, le fameux serveur d’applications écrit en Python. Zope est écrit et maintenu à la fois par la société américaine Zope Corporation et par la communauté qui s’est construite autour de cette technologie.

Introduction

Derrière Plone, il y a une armée d’utilisateurs (plus de 8500 à l’hiver 2004-2005), de développeurs et de consultants, parmi lesquels des sociétés majeures de l’industrie telles que Computer Associates, qui partagent les mêmes exigences de qualité technique de l’architecture et d’ergonomie élaborée de l’interface utilisateur. Le secret de Plone, c’est bien la puissance d’un outil simple à utiliser.br> Comme les leaders d’autres projets à succès tels que Linux (Debian, Ubuntu), ou Mozilla, Alexander Limi et Alan Runyan, co-fondateurs de Plone sont animés par la vision d’un système stable, simple à utiliser, et conforme aux standards (du Web en l’occurrence).
Une ambition résumée par la fameuse expression : It just works ®.

JPEG - 4.4 ko
fig.1
homepage de Plone : plone.org

Historique

L’histoire de Plone est très intéressante et probablement emblématique d’une belle success-story du monde Open Source.

1998 Zope est un produit commercial de Digital Creations, qui lutte contre les mammouths du marché : Vignette, BroadVision, Documentum, InterWoven, etc.
1999 Zope devient Open Source.
2000 Sortie du framework CMF (Content Management Framework) de Zope.
Fin 2001 Frustration d’une partie de la communauté à la recherche d’un produit vitrine, facile à utiliser et à étendre ; d’où la naissance du projet Plone basé sur le CMF.
2003 Sortie de Plone 1, à Paris sur le stand d’Ingeniweb à Solutions Linux 2003.
2004 Sortie de Plone 2.0 au COMDEX de Las Vegas. Également, première conférence Plone aux USA.
2004 Création de Plone Foundation ; cette fondation, dont sont membres tous les développeurs et les parties intéressées à Plone, travaille à promouvoir l’utilisation et le développement de Plone.
Août 2005 Sortie de Plone 2.1 lors de l’OSCON à Portland.

Organisation du développement

Chaque version majeure de Plone est issue du travail acharné de la communauté de développeurs sous la coordination d’un Release Manager officiellement désigné par la Plone Foundation. C’est la personne responsable de la sortie des nouvelles versions. Stephan Holek (Autrichien) assume ce poste pour l’année 2005.
Les outils de travail de la communauté sont divers :

  • Les listes de discussions : la liste plone-developers est dédiée au développement de Plone, et la liste plone-users permet de discuter des questions relatives à l’utilisation de Plone.
  • Le canal IRC : il offre un complément aux listes de discussions pour apporter des réponses instantanées aux questions des uns et des autres. Tout développeur même débutant y trouve de l’aide en temps réel et à toute heure de la journée. Cependant, les débutants sont encouragés à s’informer et s’autoformer à partir de la documentation disponible sur plone.org. avant de venir inonder le canal IRC de questions.
  • Le référentiel de code source : le nouveau serveur Subversion svn.plone.org utilise le protocole SVN, le successeur de CVS, permettant de gérer de manière collaborative le code de Plone et des différents composants et logiciels affiliés. C’est grâce à ce fabuleux outil que l’ensemble des codeurs peut se partager le travail sur le code source de Plone.
  • Le site officiel sert les objectifs classiques d’espace d’information et de communication, mais fournit également les sections essentielles au support du développement de Plone et de ses modules d’extension ; on y retrouve le collecteur de bugs, et le Plone Software Center, qui recense les extensions à Plone. C’est un véritable outil de travail collaboratif.
  • Les sprints : un des principaux outils de la méthodologie eXtreme Programming, ces sessions de quelques jours dans un endroit isolé regroupant un nombre raisonnable de développeurs permettent de faire avancer des parties importantes du code de Plone ; exemples : le fameux Snow sprint annuel qui a déjà connu deux éditions à succès, et l’Amsterdam UI sprint d’avril 2005 qui a apporté l’essentiel des améliorations de l’interface pour la version 2.1.
  • Le processus de gestion de la feuille de route (roadmap) de Plone : celle-ci est constituée d’une succession de PLIPs ou Plone Improvement Proposals. En effet, le cœur du processus de développement est le PLIP, un document publié au sein de plone.org, formalisant la description d’un changement ou d’une amélioration dans le code de Plone, les motivations derrière la proposition, et l’implémentation choisie par le développeur, avec pour objectif d’en débattre, de documenter les changements et d’assurer le bon déroulement du développement requis.
JPEG - 6.2 ko
fig. 2
Plone est au centre du travail collaboratif

Diviser pour mieux régner !

Pour faciliter la coordination des tâches, les contributeurs sont organisés en plusieurs grandes équipes dédiées avec chacun un ou plusieurs leaders :

  • L’équipe de l’architecture : elle a la responsabilité des composants et frameworks du cœur de Plone. Parmi ses principaux acteurs, on retrouve Alan Runyan (co-fondateur initial, très attentif au devenir de son bébé), Benjamin Saller, le créateur et architecte d’Archetypes, la technologie sous-jacente qui fournit les composants moteurs de Plone, et Christian Heimes le développeur responsable du module ATContentTypes.
  • L’équipe de l’interface utilisateur : avec Alexander Limi à sa tête, elle est en charge de tous les aspects de l’interface utilisateur, y compris l’intégration du nouvel éditeur visuel de Plone, issu du projet tierce partie Kupu.
  • L’équipe des aspects collaboratifs : il s’agit d’un groupe travaillant en parallèle sur les extensions permettant d’ajouter des fonctionnalités collaboratives à Plone. Parmi les composants déjà utilisés en production que nous leur devons, il y a l’incontournable GroupUserFolder et son extension GrufSpaces, et le duo CMFMember / TeamSpace.
  • L’équipe I18N : C’est cette équipe qui synchronise et fédère tous les volontaires qui traduisent Plone en ... 32 langues ( !). Elle s’appuie sur des développeurs très actifs, responsables de la livraison des outils qui forment le trio de la gestion efficace de l’internationalisation de Plone : PlacelessTranslationService, PloneTranslations, et PloneLanguageTool.
  • L’équipe des installeurs : avec des développeurs volontaires tels que Andy Mckay, elle travaille sur une base de package d’installation multi-plateforme sur laquelle chaque installeur particulier ajoute ses spécificités. Un installeur pour chaque plate-forme majeure est livré pour chaque version de Plone, y compris Windows et Mac OS X.
  • L’équipe qui maintient le site plone.org et son contenu. La mise en place par cette équipe des sections PloneHelpCenter et PloneSoftwareCenter a apporté une avancée importante pour Plone en termes d’image et de facilité d’accès à l’information pour les développeurs.
    Chaque groupe travaille sur ses livrables et prépare les composants et éléments à intégrer dans Plone.
JPEG - 5.8 ko
fig. 3
une architecture de mise en production pour un site à forte charge

Le PLIP, pierre angulaire du développement

Chaque fonctionnalité ou amélioration à apporter doit faire l’objet d’une nouvelle PLIP. Les développeurs à l’initiative de la proposition la défendent lors des discussions sur les différents forums et listes de diffusion, ce qui permet d’améliorer la proposition. A l’issue de la discussion, le changement proposé est rejeté, accepté pour la prochaine version, ou pour la version suivante du logiciel.
Après acceptation du PLIP et dès que le développeur responsable du changement est prêt à fournir son implémentation, il crée une branche de Plone 2.1 dans le référentiel svn.plone.org. Une branche est une nouvelle version du logiciel, qui va vivre en parallèle de la version officielle (dite trunk) et qui apporte la nouvelle fonctionnalité. La branche devra contenir toutes les modifications ainsi que les tests unitaires (et fonctionnels) et les scripts de migration requis par ces changements. Cette branche sera testée par plusieurs des développeurs leaders, et notamment le Release Manager. Une fois jugée satisfaisante, elle sera fusionnée dans la branche principale de Plone trunk.
Ce processus interviendra plusieurs fois jusqu’à ce qu’on arrive à une branche intégrant toutes les améliorations promises pour la version en préparation, stable, et tant que l’on est dans la phase alpha de la livraison, car aucune nouvelle fonctionnalité ne peut être ajoutée après la livraison de la première version bêta.

Appel aux contributeurs et aux testeurs

Le contributeur est généralement un développeur expérimenté, mais pas uniquement ; les leaders mettent en place des procédures permettant à tout contributeur même débutant de pouvoir aider. C’est le cas des tâches annexes telles que la fourniture des fichiers de traduction de l’interface utilisateur pour les 32 langues de Plone !
De plus, tous les contributeurs sont encouragés à participer aux fameux bugs days pour aider à tester les bugs corrigés au fur et à mesure, et à mettre à jour le collecteur des bugs de Plone : ces sessions de 24h où se relaient les programmeurs Plone de la terre entière sont des moments-clés dans le processus qualité : le soleil ne se couche pas sur le bug collector ces jours-là !

Finalisation et release

L’équipe de livraison fournit plusieurs versions alpha, plusieurs versions bêta, et une ou plusieurs Release Canditates. Généralement, dès la sortie de la version bêta, le site plone.org est mis à jour avec le code de Plone, ce qui fournit un site volumineux et critique comme plate-forme de test aux développeurs afin de valider le résultat et éventuellement trouver de nouveaux bugs, notamment en ce qui concerne les migrations de contenu.

Promotion et support

Livres et presse

Des livres écrits par les principaux experts de la technologie permettent de promouvoir et vulgariser l’utilisation de Plone. De plus, et c’est aussi important, des articles ainsi que des communiqués de presse, sont régulièrement publiés sur les principaux sites spécialisés et dans la presse en général : O’reilly network, eWeek.com, Slashdot,...

Conférences

Une conférence mondiale dédiée à Plone est organisée chaque année. La prochaine édition aura lieu en septembre 2005 à Vienne, en Autriche. Il existe également des initiatives régionales appelées les Plone Symposiums.
Outre ces conférences spécialisées sur Plone, les acteurs de la communauté participent à diverses conférences afin de présenter Plone et également de se rencontrer pour des sessions de sprint : EuroPython aux Pays-Bas, OSCON aux USA, LinuxTag en Allemagne, Solutions Linux à Paris...

Conclusion

La communauté Plone a une organisation à la hauteur des exigences du produit et des attentes de ses utilisateurs.
La complexité des problèmes que cherchent à résoudre les technologies incluses dans le système de gestion de contenu appelle à un équilibre intelligent entre des développeurs très impliqués et créatifs et des responsables de l’organisation du développement vigilants et polyvalents (ayant des qualités d’architectes, de communicants, ...). Le succès sans conteste de Plone est en partie dû à cet équilibre délicat que la communauté a su trouver.

À propos des auteurs

Kamon Ayeva et Olivier Deckmyn sont des membres actifs et reconnus de la communauté Plone. Ils sont des membres historiques des communautés Zope et Python, auxquelles ils participent depuis 1998. Co-auteurs de 4 ouvrages de référence sur le sujet publiés aux éditions Eyrolles, ils occupent aujourd’hui des postes-clés chez le leader européen de Zope/Plone : INGENIWEB.

Pour en savoir plus



Cherchez ...

- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé

Avertissement

Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.

Responsabilité

Les articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.


Archives sur clé USB

Le Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.

Taguage des articles

Depuis 2010, pour aider le lecteur, les articles sont taggués:
  •   tout public
    que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
  •   public averti
    l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
  •   expert
    le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.