Les Patterns des Grands du Web - Contribution au Logiciel Libre
Mais pourquoi Facebook, Google et autre Twitter contribuent-ils autant à l'open source ?
L’avance technologique est un atout important dans la conquête du Web. Que ce soit pour se démarquer de la concurrence en lançant de nouveaux services (pensez à la sortie de Gmail et de son large stockage à l’époque de l’hégémonie Hotmail), ou plus pragmatiquement pour faire face aux contraintes qui leur sont propres comme le défit de croissance lié à leurs bases utilisateurs, nous allons voir que les Géants du Web ont su à plusieurs reprises inventer de nouvelles technologies.
Alors que l’on pourrait penser que cette maitrise technologique, cet actif que représente le code, devraient tout deux être secrètement conservés, voilà qu’un pattern largement répandu nous interpelle : les Géants du Web ne sont pas seulement de grands consommateurs de technologies open-source, ils en sont aussi les principaux contributeurs.
Le pattern « contribution au logiciel libre» consiste à rendre public un outil logiciel (librairie, framework, …) construit et utilisé en interne. Le code est mis à disposition sur un serveur public, comme GitHub, et une licence libre de type Apache autorise son utilisation et son adaptation par d’autres sociétés. Ce code devient par la même occasion potentiellement ouvert aux contributions des développeurs du monde entier. Notons que ce passage à l’open-source s’accompagne traditionnellement d’une large communication en ligne et lors de conférences dédiées aux développeurs.
Chez qui ça fonctionne ?
Les exemples sont nombreux. Parmi les plus représentatifs, on pense à Facebook et à sa base de donnée Cassandra, construite pour gérer des quantités massives de données réparties sur plusieurs serveurs. Il est intéressant de noter que dans les utilisateurs actuels de Cassandra on peut compter d’autres Géant du Web comme Twitter ou Digg. Alors que dans le même temps Facebook a abandonné Cassandra au profit d’une autre solution de stockage également open-source – HBase – initiée quant à elle par la société Powerset. A l’image de la mouvance noSQL, les nouvelles fondations du web d’aujourd’hui sont massivement issues des technologies des grands du web.
Facebook a également ouvert à la communauté plusieurs autres frameworks, comme le moteur HipHop permettant de compiler le PHP en C++, Thrift le framework de développement multi-langages, ou encore Open Compute, une initiative « d’open-hardware » visant à optimiser le fonctionnement des Data Centers. Mais Facebook ne fait pas exception.
Google a fait de même avec son framework IHM GWT utilisé notamment dans Gmail et Adword. Ou encore avec Tesseract OCR le moteur de reconnaissance de caractères initialement développé par HP, récupéré par Google et qui l’ouvrira à la communauté quelques années plus tard. Enfin, comment parler de Google sans citer évidemment Android, le système d’exploitation open-source pour mobile ou encore leurs nombreuses publications scientifiques autour du stockage et du traitement de très gros volumes de données. Faisons référence à leurs papiers autour de Big Table et Map Reduce qui ont inspirées la construction du projet Hadoop.
La liste serait encore longue, et l’on terminera en évoquant Twitter et son framework CSS et responsive design très tendance, nommé Bootstrap. Ou encore l’excellent Ruby On Rails extrait du logiciel de gestion de projet Basecamp et ouvert à la communauté par 37Signals.
Pourquoi ca fonctionne ?
En laissant de côté les considérations idéologiques, je vous propose d’explorer différents avantages que l’on pourrait attribuer à une telle démarche.
Avant d’en aborder trois d’entre eux dans le détail, il est tout d’abord intéressant de noter comment ouverture et gratuité ne s’opposent pas forcément à guerre économique et rentabilité. D’une certaine façon cette ouverture pourrait même apparaître comme un moyen d’annihiler l’émergence de la concurrence sur certains pans technologiques. Faire un don à l’open source permet de redessiner les contours d’un secteur technologique, tout en s’assurant de rester influant sur la meilleure solution disponible. A ce jour, Google est toujours le principal sponsor de la fondation Mozilla et de son projet phare Firefox, à plus de 80%... Un moyen de diversifier la concurrence face à Microsoft ? Trêve de manichéisme, revenons sur l’analyse de nos trois bénéfices.
Améliorer l’image de marque
En ouvrant à la communauté une technologie de pointe, nos modèles se forgent une image de leaders, de pionniers. Ils communiquent implicitement sur l’esprit d’innovation qui règne dans leurs murs, sur la recherche permanente. Ils font passer le message qu’ils sont en mesure de résoudre de grands problèmes ; ils sont puissants technologiquement. Livrer un framework open-source qui trouve le succès, c’est montrer que l’on a su résoudre avant tout le monde, ou mieux que les autres, un problème partagé. Et que d’une certaine façon ce problème est maintenant derrière eux. Ils l’ont mis en boite et continuent de bâtir. Ils gardent une longueur d’avance.
Ouvrir un framework à l’open-source, est en soit une action de communication forte, un renforcement de l’image de marque. Un moyen de faire passer à l’utilisateur le message implicite et primaire « Nous sommes les meilleurs, sois rassuré ».
Et puis, comme pour se prémunir d’apparaître comme le nouveau Big Brother, on ne peut s’empêcher de lire entre les lignes de cette démarche « Nous sommes ouverts - gentils - n’ai pas peur ».
Attirer – et garder – les meilleurs
Voila un aspect essentiel pouvant être induit par une démarche open-source. Car « afficher son code » c’est afficher une partie son ADN, de son mode de pensée, de sa façon de résoudre les problèmes – Montre-moi ton code, et je te dirai qui tu es. Un moyen naturel de communiquer vers l’extérieur sur ce qui se passe précisément à l’intérieur de votre entreprise : le niveau de vos développeurs, vos standards de qualité, les sujets qui préoccupent le quotidien des équipes… Un bon moyen d’attirer des développeurs « compatibles » qui se seraient intéressés par eux-mêmes à vos projets.
Grâce à ces contributions il devient alors facile de détecter les développeurs les plus impliqués, les plus compétents, les plus motivés. Et de les embaucher alors avec la garantie de leur capacité à s’intégrer dans votre écosystème. D’une certaine façon, l’open-source est un peu comme une immense période d’essai ouverte à tous.
Attirer les meilleurs geeks est une chose, les garder en est une autre. Sur ce second point, l’open-source peut s’avérer être un formidable moyen d’offrir aux meilleurs développeurs de votre société une vitrine sur le monde extérieur, une tribune.
A partir de maintenant, ils pourront briller autant à l’intérieur qu’à l’extérieur de l’entreprise. Favoriser l’open-source c’est permettre à vos développeurs de prendre soin de leur CV. C’est comprendre le besoin de Personal Branding de vos équipes, tout en les conservant au sein de l’entreprise. Tout développeur recherche un environnement qui valorise les développeurs, un environnement qui propose une carrière aux profils techniques. Parole de développeur.
Améliorer la qualité
« Penser open-source » permet déjà en soit de faire un bon en avant niveau qualité. Je m’explique. Ouvrir un morceau de code – un framework – à la communauté, nécessite tout d’abord d’en définir les contours, de le nommer, de décrire ce framework et d’en définir le but. A elle seule, cette démarche est un considérable pas en avant dans la qualité de vos logiciels. Car elle induit inévitablement la modularisation de votre code, sa structuration. Elle facilite également la réutilisation de code au sein de votre entreprise. Elle définit des responsabilités dans le code, et peut-être même au sein de vos équipes.
Inutile de préciser qu’un développeur qui sait que son code sera relu (à fortiori relu par des développeurs de la terre entière), s’y reprendra à deux fois avant de commiter cette méthode non testée, ou ce bout de code fait à la va vite. Au delà de cet effet responsabilisant, récolter du feedback de la part de développeurs externes à l’entreprise sera sûrement salvateur.
Bien utilisé, l’open-source peut être un moyen intelligent de structurer votre R&D tout en fournissant un cadre d’évaluation à vos développeurs.
Et chez moi ?
Cet article avait pour objectif d’explorer différents bénéfices offerts par l’ouverture d’une partie de votre actif technologique. Si vous n’êtes culturellement pas encore prêt à faire le grand saut, ou si votre SI ne s’y prête pas encore, il peut néanmoins être intéressant de conserver le sens d’une telle démarche au sein de premières actions faciles à mettre en œuvre.
Selon la taille de votre entreprise, le lancement de votre tout nouveau projet open source pourrait malheureusement se faire dans l’indifférence générale. Nous n’avons pas tous la puissance de communication d’un Facebook. Commencer par contribuer à des projets open source existants peut être dans un premier temps une bonne façon de tester cette culture au près de vos équipes.
A l’image de Google ou GitHub, une autre action agissant sur les trois bénéfices présentés ici pourrait-être de matérialiser et d’exposer sur le net vos guidelines de programmation. Ou encore d’inviter vos développeurs à ouvrir un blog technique sur lequel ils partageraient les problématiques clés qu’ils ont dû aborder. Le Tumblr « Instagram Engineering » animé par Instagram est une bonne source d’inspiration.
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"
Références
- http://developers.facebook.com/opensource/
- http://code.google.com/opensource/projects.html
- http://dev.twitter.com/opensource/projects
- http://instagram-engineering.tumblr.com
- http://github.com/styleguide
- http://github.com/styleguide
- http://www.quora.com/Open-Source/Why-would-a-big-company-do-open-source-projects