En novembre dernier, dans le cadre du «Paris Open Source Summit», nos développeurs de Ring ont rencontré l’équipe d’Enalean, qui développe l’outil open source Tuleap, utilisé pour le développement de Ring. Voici en quelques paragraphes notre discussion à bâtons rompus avec Manon Midy, membre de l’équipe Tuleap.
Je m’appelle Guillaume Roguez, directeur technique du projet Ring, au siège montréalais de Savoir-faire Linux, une entreprise fournissant des solutions en systèmes d’informations, spécialisée dans le déploiement, la personnalisation, l’intégration et l’élaboration de stratégies pour l’implantation des meilleurs outils et projets en logiciels libres et open source, afin de répondre aux besoins de nos clients. Notre objectif est d’être le premier acteur des technologies développées, étendues, supportées ou connectées par les logiciels libres et open source. Pour y parvenir, nous nous devons d’être sans cesse créatifs, innovateurs et garder notre acuité en matière de Recherche et Développement. Ring est l’un de nos projets maison en R&D.
Rapidement, Ring est un logiciel de communication libre, distribué et universel, disponible sous la licence GNU GPL v3. Les utilisateurs de Ring peuvent communiquer de différentes façons, en l’utilisant comme un téléphone (VoIP), un outil de partage de médias (audio et vidéo), une messagerie, ou encore comme un socle de communication pour les objets connectés. Ring peut être alors vu comme une alternative libre et open source à Skype.
En tant que responsable du développement, je gère tous les aspects du projet Ring et je coordonne les tâches imparties à chaque membre de l’équipe. Par ailleurs, je vais à la rencontre des contributeurs en faisant des présentations publiques dans les universités de Montréal (Polytechnique, Université du Québec à Montréal, McGill University, École de Technologie Supérieure etc.). Ring est aussi un objet de recherche, un laboratoire permanent pour les étudiants de maîtrise à Montréal. Ils ont eu la possibilité de parfaire leurs habilités en programmation tout en contribuant au développement de Ring (le programme Google Summer of Code en est un exemple probant). En fait, aux yeux de Savoir-faire Linux, il est important de travailler avec des enseignants-chercheurs et leurs étudiants pour étendre la communauté autour du projet.
Pour continuer, je voudrais profiter de cet article pour parler brièvement de l’environnement technique – Tuleap- sur lequel nous avons choisi de nous reposer. Tout simplement, Tuleap est la plateforme de développement de projet logiciel que je recommande. Il facilite notre travail collaboratif, il nous fait gagner énormément de temps et il nous aide dans la gestion de nos activités quotidiennes.
De Redmine à Tuleap, défis et d’opportunités
Au début du projet Ring, nous utilisions la plateforme Redmine, commune à tous les projets chez Savoir-faire Linux. Toutefois, au fur et à mesure de son utilisation, nous nous sommes rendus compte que nous faisions fausse route. Redmine a une conception assez rigide, qui ne peut permettre aux utilisateurs d’adapter facilement les champs de suivi pour des usages spécifiques. D’une manière générale, Redmine est assez limité et restrictif. Par exemple, faire des modifications dans le système de suivi requiert plusieurs manipulations. Une fois terminées, on ne peut pas facilement revenir en arrière. Or, j’ai toujours voulu quelque chose de plus souple pour mon équipe.
À mes yeux, GitHub est trop simplifié, et plusieurs fonctionnalités manquent à l’appel. Cet outil, est, encore une fois, trop rigide. Cependant, du point de vue du design, c’est alléchant, mais c’est trop cher pour des projets à long terme. C’est peut-être le bon outil pour des projets de petite et moyenne taille. Néanmoins le design restrictif de GitHub limite la marge de manœuvre d’une équipe travaillant sous un mode Agile. Si on doit adapter notre manière de travailler à l’outil, ce n’est pas la bonne option pour nous.
Avec Tuleap c’est différent. L’outil est bien plus souple tout en permettant de guider les utilisateurs avec un flux de travail défini. Par exemple, si on utilise Git dans Tuleap, il y a la possibilité d’imposer une procédure de développement de façon à ce que les développeurs respectent des étapes importantes et apprennent les bonnes pratiques. Par exemple, nous pouvons imposer aux messages de transaction (Commit messages) de contenir une référence aux incidents soumis dans Tuleap. Ainsi, on peut avoir une vue d’ensemble du cycle de vie du développement et suivre précisément les anomalies. Certains peuvent y voir une limitation, mais en réalité, cette possibilité permet aux membres de l’équipe d’ajuster leurs efforts dans la bonne direction et respecter l’esprit du projet. Tuleap n’est pas un outil fermé sur lui-même. Bien au contraire, grâce au design qui le sous-tend – acceptant beaucoup de greffons – cet outil donne à l’équipe de développement la possibilité d’interagir avec d’autres logiciels bien connus comme Jenkins et Gerrit.
Les avantages étaient clairs dès le départ pour Jérôme Ouffela, notre directeur technique. Il a proposé l’adoption de Tuleap, après avoir exposé ses raisons. Honnêtement, quand on cherche à changer fondamentalement les méthodes de travail d’une équipe, il faut s’attendre à quelques frictions. Mais, au regard de nos expériences passées, le niveau de flexibilité des collaborateurs augmente lentement mais sûrement, en suivant la courbe d’apprentissage. Il y a toujours un prix à payer pour un quelconque changement.
Parmi les autres défis auxquels nous avons du faire face, il y a eu la question d’une documentation manquante. Cet accroc a laissé quelques traces, comme la difficulté de mettre en place des procédures de suivis et la lenteur des réparations de bogues subséquente. Fort heureusement, l’équipe de développement de Tuleap a vite répondu à nos difficultés. Ils nous ont aidés à configurer un outil sur mesure et ainsi bénéficier d’une flexibilité nous permettant d’ajouter et/ou changer nos mesures de suivi. Tuleap a cette particularité : évoluer de manière qualitative avec le projet de l’utilisateur. Plus nous utilisions sa flexibilité et sa capacité d’évoluer, plus cela nous a conforté dans notre choix à l ‘égard de Tuleap.
Enfin, le dernier élément décisif et non des moindres, Tuleap est un outil open source porté par une communauté de développeurs très dynamique et riche. Par exemple, Tuleap a sorti au début du mois de janvier une nouvelle version 9.3, jetant les premières bases du nouveau langage de requêtes du système de suivi. Les développeurs pourront ainsi faire des recherches avancées dans les procédures de suivi de Tuleap, intégrant les caractères « AND », « OR » and « () ». Nous pourrons être en mesure d’obtenir tous les tickets correspondant à des requêtes complexes du type (summary = “tracker” OR summary = “query”) AND submission = “language”.
A mon avis, une visite sur le site de Tuleap vaut le détour :
a) pour ses tutoriels faciles à comprendre , qu’ils sont en vidéo ou en texte tout simplement,
b) pour l’accès à une somme importante d’informations sur les nouvelles fonctionnalités et les bogues réparés et clairement identifiables et
c) pour discuter avec la communauté Tuleap, et ainsi entamer une conversation très technique.
Tuleap, une utilisation Agile
Pour développer le logiciel Ring, nous suivons la méthodologie Agile. En utilisant l’environnement de planification Scrum de Tuleap, nous pouvons ainsi suivre nos versions actuelles et à venir et avoir un œil sur les bogues, les améliorations, le wiki et les forums de manière efficace. Et nous l’avons associé au système de revue de codes pour gérer les correctifs.
Au jour le jour, il y a une dizaine de développeurs de Savoir-faire Linux qui utilisent Tuleap pour développer Ring. J’en fais partie, avec plusieurs chapeaux, directeur technique du projet, développeur, Scrum master. À cette équipe s’ajoutent des développeurs motivés, d’autres membres de la communauté comme ceux maintenant la plateforme, les utilisateurs, les abonnés etc. Tout ce beau monde réparti sur la planète s’aide pour contribuer à ce projet innovant communautaire qu’est Ring.
Des nouveautés prometteuses
Si nous pouvions changer quelque chose sur Tuleap, il s’agirait peut-être de l’interface utilisateur (UI). Actuellement, pour réaliser ce qui est programmé, il y a beaucoup trop de clics à faire. De plus, cette interface (UI) est assez complexe. Aux dires de Manon, l’équipe réfléchit déjà à une refonte complète. Ce qui est une bonne nouvelle pour nous. Si l’on se fie aux dernières versions et les mises-à-jour (9.2 et 9.3 ) cela semble être le cas. Nous croyons que Tuleap est un projet très prometteur pour des générations de développeurs à venir.