Exploiter l'Open Source pour créer des produits numériques de calibre mondial

Small 294cbd96a81dc296d3fae37821a7a9ddb5d0c8f1eb22f4b2cbcc7808d82a8fe4
Par Rémi Prévost
Développeur Web

Des développeurs de partout dans le monde partagent leurs apprentissages et donnent de leur temps à des projets Open Source depuis les années 90. Ce qui était autrefois un mouvement marginal est rendu le pilier des avancés technologiques pour presque toutes les industries.

Des petites startups aux plus grands leaders de l'industrie; tous contribuent à soutenir des projets d’envergure aux sources ouvertes. Grâce à une panoplie d'outils et de plate-formes, des cerveaux s’unissent et collaborent pour repousser les limites et développer des technologies de classe mondiale qui deviennent des standards.

Sur les épaules de géants

Que ce soit pour des projets client ou des projets personnels, intégrer des morceaux de code d'autres développeurs est rendu la norme; il n'y a plus de raisons de réinventer la roue, autant philosophiques que financières.

Ces frameworks et librairies sont la preuve tangible de l’engagement et de la volonté de croissance de ces communautés qui se bâtissent les unes sur les autres pour atteindre une qualité de code inégalée.

Given enough eyeballs, all bugs are shallow.
―Linus Torvalds

Bien que les technologies Open Source offrent d'innombrables possibilités, leur utilisation n’est pas sans risque. Chaque framework vient avec une liste exhaustive d’avantages et d’inconvénients. Les pièges à éviter sont nombreux et il est important de comprendre comment faire des choix articulés pour éviter de gaspiller temps et argent.

Au fil du temps, mon équipe et moi avons acquis une expertise considérable pour les choix éclairés de technologies Open Source. Grâce aux nombreux projets que nous développons chaque année, nous avons beaucoup d'opportunités d’analyser les meilleures technologies Open Source sur le marché. Tous ces défis nous permettent aussi d'expérimenter avec de nombreux frameworks, ce qui nous a permis de mettre en place des méthodes d'évaluation pour le code externe.

Dans ce premier billet, je vous expliquerai comment évaluer et choisir la meilleure technologie Open Source pour votre projet mobile et/ou Web. Dans quelques semaines, je poursuivrai avec un deuxième billet portant sur les mythes et réalités de ces technologies et comment éviter de tomber dans certains pièges.

Première partie: Définition des critères pour évaluer et choisir une technologie Open Source

Êtes-vous à la recherche d’une technologie Open Source pour votre prochain projet? Vous vous êtes renseigné sur le sujet, mais vous n'êtes pas encore prêt à vous commettre? Ne cherchez pas plus loin : la liste de critères développée par l’équipe de Mirego vous aidera à déterminer si vous avez trouvé la bonne technologie Open Source ou si vous devriez continuer à chercher.

La maturité

Depuis combien de temps cette technologie existe-t-elle? La maturité est essentielle dans la construction d’un code solide. En gardant évolution, performance et durabilité en tête, vous voudrez valider si la technologie choisie a été utilisée assez longtemps pour que ses problèmes core soient résolus. La dernière chose dont vous avez envie est d’utiliser une technologie instable avec des mises à jour fréquentes qui nécessitent des réécritures de code complexes.

Le manpower

L’utilisation de la technologie choisie limitera-t-elle la capacité de votre équipe à croitre et à se développer à long terme? Maximisera-t-elle les compétences de votre équipe? Bien connaître les membres de votre équipe et leurs forces vous permettra de prendre des décisions stratégiques qui maximiseront le développement de talent.

La dette technique

Le choix de cette technologie affectera-t-il le développement et la durabilité de votre projet? La dette n’est jamais une bonne chose. Les décisions prises pour avancer rapidement vont ultimement impacter votre projet et la prudence est de mise surtout lorsqu’une dépendance externe est en jeu. Même s’il ne s’agit pas de code que vous avez écrit, il devient « le vôtre » à supporter et à maintenir tant et aussi longtemps que votre projet vivra.

Les spécificités

Pour qui développez-vous cette technologie? Pourriez-vous utiliser une technologie alternative plus générique pour élargir la portée de votre projet? Être conscient des spécificités de votre projet (technologie, type d’utilisateurs, contexte) vous guidera dans votre processus décisionnel. Il n’existe pas de solution parfaite et l’adaptabilité est la clé.

La complexité

Quel est le niveau de complexité de cette technologie? Le choix de cette technologie affectera-t-elle les performances de votre équipe et le développement global du projet? La complexité devrait être évaluée stratégiquement en fonction de l’évolutivité technique et en gardant à l’esprit le niveau de performance désiré. Par exemple, l’apprentissage d’un nouveau framework pourrait être avantageux pour votre équipe s’il ouvre ensuite la porte à de nouvelles opportunités. Gardez en tête que la complexité ne devrait jamais affecter la qualité et l’exécution.

La portée

Quel problème principal essayez-vous de résoudre? Trouver la réponse à cette question vous aidera à clarifier les besoins technologiques et définir les attentes pour votre projet. Maintenez le cap sur les dates de livraison prédéterminées et les fonctionnalités à développer, cela aidera votre équipe à choisir la bonne technologie.

La communauté

Les technologies Open Source s'appuient sur l’esprit collaboratif de développeurs qui enrichissent leurs bibliothèques avec des ressources qu’ils mettent ensuite à la disposition des organisations qui les adoptent. Chaque communauté développe une culture et une structure organisationnelle unique. Vous voudrez considérer les points suivants avant de faire votre choix :

La taille

Quelle est la taille de la communauté? Reflète-t-elle bien la richesse des connaissances mises à la disposition des utilisateurs? Recherchez de grandes communautés guidées par des développeurs motivés qui encouragent et favorisent la communication ouverte ainsi que la collaboration entre pairs. Il s'agit d'un excellent indicateur quant à savoir si cette communauté sera disponible et réactive si vous rencontrez des problèmes ou si vous avez besoin d’aide en cours de route.

L’activité

Dans quelle mesure la communauté est-elle active? Non seulement le taux d'activité caractérise l'engagement de la communauté, mais il éclaire aussi sur la maturité et l'élan de la technologie. Bien qu’un taux d'activité élevé indique la participation engagée de contributeurs, cela peut également suggérer qu'une technologie est toujours dans une phase itérative et précoce. En revanche, un faible taux d'activité peut être source de préoccupation s’il témoigne d’une perte d'élan qui pourrait bloquer votre développement mais il peut aussi signifier que le codebase est solide et mature.

L’approbation sociale

Qui participe au développement de cette technologie? Par exemple : l’utilisation d’une technologie par les joueurs les plus importants de l’industrie (comme Facebook par exemple) est généralement synonyme de grande taille et de grande base d’utilisateurs.

Une fois que vous aurez analysé votre projet et répondu à toutes ces questions, évaluez avec votre équipe comment la technologie Open Source choisie vous aidera à atteindre vos objectifs. Discutez-en tous ensemble, la communication ouverte est essentielle à la construction d’équipes solides qui collaborent efficacement. Chez Mirego, c’est comme ça que ça fonctionne et c’est ce qui nous permet de livrer des produits numériques de grande qualité.

N’hésitez pas à partager mon article s’il vous a été utile et restez à l’affût pour la deuxième partie de cet article où j’explorerai les préjugés vis-à-vis les technologies Open Source.