Les Patterns des Grands du Web - la bêta perpétuelle

le 16/04/2012 par Guillaume Plouin
Tags: Product & Design

Description du pattern

Avant d’introduire la bêta perpétuelle, il est nécessaire de revenir sur un pattern classique du monde Open Source : “Release early, release often”. Le principe de ce pattern consiste à mettre régulièrement le code à la disposition de la communauté afin de permettre aux développeurs, testeurs, utilisateurs de donner un feedback en continu sur le produit. Cette pratique a été décrite dans “La cathédrale et le bazar” d’Eric Steven Raymond. Elle rejoint le principe d’itération courte des méthodes agiles.

Le principe de la “bêta perpétuelle” a été introduit dans le manifeste du Web 2.0, écrit par Tim O’Reilly, et où il nous dit la chose suivante :

“ Les utilisateurs doivent être considérés comme des co-développeurs, en suivant les principes Open Source (...). Avec le Web 2.0, ce principe évolue vers une position plus radicale, la bêta perpétuelle, dans laquelle le produit est développé de manière ouverte, avec de nouvelles fonctionnalités offertes sur une base mensuelle, hebdomadaire, ou même quotidienne. ”

Le terme « bêta perpétuelle » désigne le fait que l’application n’est jamais finalisée, mais toujours en évolution : il n’y a pas de livraison de nouvelle version à proprement parler. L’enjeu de ce mode de fonctionnement est de réussir à mettre en place le « Continuous Delivery ».

Cette évolution continue est possible car on parle de services en ligne et non de logiciels :

  • Dans le cadre de logiciels, la gestion de versions suit généralement une roadmap avec des jalons de publication : des « releases ». Ces releases sont espacées dans le temps pour 2 raisons : la nécessité de déployer les versions chez les utilisateurs, et le besoin s’assurer la maintenance et le support des différentes versions déployées chez les utilisateurs. Assurer le support, les mises à jour de sécurité et la maintenance évolutive sur plusieurs versions d’un même logiciel est un terrible casse-tête, et un casse-tête coûteux. Prenons l’exemple de Microsoft : l’éditeur de Redmond a du, à un moment donné, gérer les évolutions de Windows XP, Vista et Seven. On imagine les 3 équipes de développeurs mobilisées pour un seul et même logiciel : une terrible dispersion d‘énergie et un cauchemar pour un éditeur moins fortuné que Microsoft. Ce syndrome est appelé “perversion des versions”.
  • Dans le cadre des services en ligne, il est possible de ne gérer qu’une seule version de l’application. Et comme les grands du Web se chargent de mettre en ligne et d'héberger leurs applications, les utilisateurs peuvent bénéficier des nouveautés sans avoir à gérer de déploiement logiciel.

Les services en ligne sont donc mis à jour en continu par leurs opérateurs sans que les utilisateurs soient informés de l’existence d’une nouvelle version. Les nouvelles fonctionnalités apparaissent au fil de l’eau et elles sont découvertes par hasard par les usagers. Ce mode de fonctionnement permet un apprentissage progressif des nouveautés applicatives. En règle générale, les problématiques de compatibilité ascendante sont bien gérées (il existe quelques exceptions, comme le support du mode déconnecté dans Gmail suite à l’abandon de Google Gears). Ce modèle est largement utilisé par les acteurs du Cloud Computing.

La « Customer driven roadmap » est un élément complémentaire et vertueux de la «bêta perpétuelle». Comme les grands du Web maîtrisent la plateforme de production, ils peuvent faire des statistiques sur l’usage de leur logiciel. Cela leur permet de mesurer l’accueil qui est fait aux nouvelles fonctionnalités offertes. A ce titre, les grands du Web suivent énormément de métriques : on dit d’ailleurs qu’ils ont le « culte de la mesure ».

De manière plus classique, le fait de maîtriser la plateforme de production permet de lancer des sondages auprès de certains segments de population afin d’obtenir un feedback utilisateurs.

Pour utiliser le pattern bêta perpétuelle, il est indispensable d’avoir les moyens de faire des déploiement réguliers. Les pré-requis sont donc :

  • la mise en oeuvre d’une usine logicielle avec build automatisé
  • des pratiques de “continuous delivery
  • la capacité à faire un rollback rapide en cas de problème...

Il existe une polémique sur la bêta perpétuelle : certains utilisateurs considèrent que bêta est synonyme de produit non fini, et que les services qui suivent ce pattern ne sont pas assez fiables pour être utilisés. Cette polémique a poussé certains opérateurs de services a supprimer la mention “bêta” de leur site, sans pour autant changer leurs pratiques.

Chez qui ça fonctionne ?

La référence était Gmail dont le logo intégrait la mention bêta jusqu'en 2009 (une fonction "back to Beta" a depuis été ajoutée).

La pratique existe chez de nombreux grands du Web : Facebook, Amazon, Twitter, Flickr, Delicious.com, etc.

Une bonne illustration de la « bêta perpétuelle » est fournie par les Labs de Gmail : ce sont de petites fonctionnalités unitaires que les utilisateurs peuvent décider d’activer ou non. En fonction de leur adoption, Google décide ou non de les intégrer à la version standard de son service.

En France, des services en ligne affichent ou ont affiché le bêta sur leur page d’accueil :

  • urbandive.com : service de navigation en vue piétonne du groupe Pages Jaunes
  • sen.se : service de stockage et d’analyse de données personnelles
  • etc.

Et chez moi ?

Nous vous engageons à tester ce pattern, en déployant les : continous delivery, A/B testing, développement agile.

Dépendances à d'autres patterns

Pattern “continous delivery

Pattern “A/B testing” & « culte de la mesure »

Pattern “développement agile”

Exceptions!

Certains grands du Web choisissent de continuer à utiliser le principe de coexistence des versions. Il est en particulier utile de maintenir plusieurs versions d’une API afin d’éviter de forcer les développeurs à mettre à jour leur code immédiatement à la sortie d’une nouvelle version de l’API.

Voir en particulier l’API Amazon Web Services

Retrouver toutes les pratiques des Géants du Web sur le site dédié (www.geantsduweb.com) : pdf de l'ouvrage à télécharger, vidéo et compte-rendu de la présentation "Décrypter les secrets des Géants du Web"

Sources

The Perpetual Beta, manifeste du Web2.0, Tim Oreilly

La bêta perpétuelle sur Wikipedia

“La cathédrale et le bazar”, Eric Steven Raymond