La culture de l'open source chez Wanadev

Chez Wanadev, l'utilisation et la contribution à l'écosystème open source est aujourd'hui une évidence, et ce n'est pas prêt de changer : c'est inscrit dans notre ADN. Dans cet article, et dans quelques autres qui vont suivre, je vais vous expliquer pourquoi et comment l'équipe contribue à l'open source, et quelle est notre culture d'entreprise à ce sujet.

On a peut-être tendance à l'oublier aujourd'hui étant donné que l'on a diversifié nos activités (on fait notamment de la 3D, de la VR, de l'embarqué et on n'hésite pas à élargir nos domaines de compétences pour répondre aux besoins de nos clients), mais à l'origine, Wanadev est une agence Web : on développait donc des sites internet (et on en développe toujours !).

L'open source : une évidence, vraiment ?

Le Web est essentiellement composé de technologies ouvertes et de logiciels libres ou open source. La culture Web est par nature assez ouverte et tournée vers le partage. L'équipe Wanadev a donc toujours nagé dans cet écosystème favorisant l'ouverture et les échanges.

Au début toutefois, nous étions essentiellement des « consommateurs » : nous utilisions des logiciels écrits par d'autres sans y contribuer directement. Mais même si nous ne contribuions pas activement aux projets, l'envie de partager était déjà bien présente et nous partagions alors nos connaissances et nos découvertes, notamment via le blog sur lequel vous vous trouvez actuellement.

Puis, sans vraiment que l'on y prête attention, nous avons commencé à contribuer. D'abord en rapportant timidement les bugs que nous rencontrions, puis en contribuant directement un correctif lorsque cela nous était possible.

Des contributions toujours plus nombreuses et importantes

Avec le temps nous avons gagné en assurance, et nous n'hésitons plus à contribuer activement dans les projets que nous utilisons.

L'un des plus notables est peut être Babylon.js (un moteur 3D JavaScript/WebGL), dont Benjamin est devenu l'un des maintainers à force de contributions (il en reparlera probablement dans un futur article 😉️).

Logo de Babylon.js

Un autre projet où nous avons fait des contributions notables est assimp. Il s'agit d'une bibliothèque permettant de manipuler de nombreux formats de modèles 3D, dans laquelle Alexis a implémenté le support du format glb2, parmi quelques autres contributions.

On peut également citer les projets PM2 (un gestionnaire d'applications Nodejs), ou sphinx-js (un outil développé par Mozilla pour documenter du code JavaScript) auxquels j'ai moi-même contribué. Plus récemment, on peut aussi parler de Pontoon, une application Web de traduction également développée par Mozilla, à laquelle Thibaut et moi-même avons commencé à contribuer.

Logo de Pontoon

Parfois, il peut arriver que nous n'ayons pas le temps ou les compétences pour contribuer nous-mêmes au développement des fonctionnalités dont nous aurions besoin. On n'hésite pas dans ce cas à financer le développement de la fonctionnalité par un développeur tiers.

Ça nous est par exemple arrivé sur le projet Gitea (un gestionnaire de dépôt Git), où il ne manquait pas grand-chose pour que le support de Git LFS soit fonctionnel. Mais comme nous n'avions pas encore de compétences suffisantes en Go à cette époque-là, nous avons ouvert un bounty sur BountySource pour supporter le développement de la fonctionnalité.

Développement de nos propres outils et bibliothèques

Malgré la richesse de l'écosystème open source, il arrive un moment où aucune solution existante ne réponde à nos besoins (ou alors d'une manière qui ne nous convient pas). On n'a pas d'autre choix dans ces cas-là que de développer nous-mêmes la bibliothèque ou l'outil dont nous avons besoin. Et bien sûr on publie ça sous une licence open source à chaque fois que c'est possible.

Si vous visitez notre page Github, vous y trouverez pas mal de choses. Ça va de la petite bibliothèque très spécifique, comme cursorlib, une bibliothèque JavaScript qui permet de générer des curseurs au format utilisé par Windows, à des projets plus ambitieux.

On peut citer par exemple Holes In, une bibliothèque JavaScript développée par l'équipe Kazaplan, qui permet d'extruder des maillages 3D depuis des chemins 2D, ou encore YOGA, un outil permettant de convertir et d'optimiser des textures et des modèles 3D.

Logo de Holes-In

Je ne vais pas vous lister ici tous les projets open source que nous avons développés, mais nous reviendrons sur certains d'entre eux dans de futurs articles. 🙂️

L'avenir de l'open source à Wanadev

Comme je l'ai dit dans l'introduction, l'open source et le partage sont des valeurs ancrées dans notre ADN, et il n'y a pas de raison que ça change.

En revanche, notre manière d'aborder l'open source va évoluer. On va davantage s'organiser en interne afin de mieux mutualiser nos forces sur le développement de nos différents logiciels open source.

On va également essayer de se montrer plus ouverts et plus réactifs aux contributions extérieures (nous n'étions bien sûr pas fermés aux contributions auparavant, mais nous n'étions peut-être pas assez bien organisés pour y répondre correctement).

Enfin, nous allons faire des efforts sur la communication autour de nos projets et contributions open source ; et ça a déjà commencé puisque vous êtes en train de lire cet article ! 😊️

NOTE : Pour ceux qui, en regardant la photo d'illustration de cet article, se demanderaient « pourquoi sont-ils allés coller des logo de bibliothèques sur des cartouches GameBoy ?! » Eh bien c'est simple, c'est parce qu'on a pas mal de fans de rétrogaming dans l'équipe, et qu'on aime bien présenter certaines créations (internes ou projets en presta) sur des supports retrogaming (histoire de faire un peu de déco). Les cartouches GameBoy sont dédiées aux projets open source, et d'autres supports sont réservés à d'autres types de projets. 😁️

Tags de
l'article

open source

Catégories de l'article

Recherche et développement

Commentaires

Il n'y a actuellement aucun commentaire. Soyez le premier !

Articles liés