FFT – Comment faciliter la vie des joueurs de tennis

FFT – Comment faciliter la vie des joueurs de tennis

Par Alba Venzal,

Relecture par Victor Khuoy.

Contexte

La Fédération Française de Tennis permet aux joueurs participant à des Internationaux de France et à leur agent de gérer toutes les informations liées à leur tournoi via un site web. Afin de pouvoir les accompagner dans leur situation de mobilité tout au long de l’année et particulièrement pendant la tenue du tournoi, cette fédération a fait appel à AppStud pour leur fournir une solution mobile.

 

Objectif de notre client

L’objectif de la Fédération était de proposer une qualité de service équivalente à celle du service web existant au sein de l’application, ainsi que d’y ajouter des capacités exclusivement mobiles telles que l’envoi de notifications personnalisées.

L’application devait permettre aux joueurs d’accéder à l’ensemble de leurs services de façon modulable, afin de permettre d’ouvrir et de fermer certains services à une date donnée ainsi que de pouvoir ajouter des services au fur et à mesure, sans modification de l’application en profondeur.

 

L’approche AppStud et la solution livrée

L’application destinée aux joueurs devant regrouper un ensemble de services de façon modulaire, elle se prêtait tout particulièrement à la méthode agile utilisée par Appstud. Nous avons ainsi proposé à notre client de faire des sprints de deux semaines permettant de livrer entre une et trois fonctionnalités selon leur complexité. La version de l’application livrée à chaque fin de sprint permettait alors au client de tester les nouveaux services.

Les informations et services présentés dans l’application venaient de plusieurs prestataires externes, nous avons donc créé notre propre application backend centralisant ces informations pour communiquer avec les applications mobiles et mis en œuvre notre approche favorite: un environnement client-serveur dont l’intelligence est portée exclusivement par le serveur.

Cette approche garantit une uniformité entre les applications Android et iOS et de la même manière, de meilleures performances pour tous les appareils, notamment les moins puissants, ainsi qu’une meilleure sécurisation des données grâce à l’authentification par token JWT auprès du backend. 

Ayant fait le choix de la transparence la plus totale vis à vis de notre client, Appstud intègre au sein de son équipe agile un product owner issu de l’équipe client. Ce représentant du produit était impliqué dans les réunions quotidiennes de l’équipe afin de suivre l’avancement du développement mais également de pouvoir re-prioriser les tâches au fur et à mesure, éclaircir les spécifications et les questions métier, dans l’optique de rester au plus près du besoin métier.

L’équipe dédiée était à plein temps sur le projet, ce qui lui permettait d’être très réactive à toutes les demandes et d’être bien informée de l’état courant du projet.

La philosophie d’Appstud est de garder l’expérience utilisateur au centre de nos développements et de livrer en priorité les fonctionnalités à plus forte valeur ajoutée, c’est pourquoi l’équipe s’est sentie responsabilisée et a amené une très forte pro-activité, quitte à parfois remettre en question les choix d’UI/UX pour proposer des éléments natifs correspondant aux habitudes des utilisateurs.

Notre client a tout particulièrement apprécié les livrables réguliers: un à chaque fin de sprint avec de nouvelles fonctionnalités à tester avant de mettre en production, et un en milieu de sprint apportant les corrections aux éventuels problèmes remontés suite à la livraison du sprint précédent.

Ainsi, tous les cas d’utilisation ont bien été testés et les problèmes rapidement résolus, ce qui a permis une livraison des application sans problème majeur.

 

Profil de l’équipe

L’équipe était constituée d’un scrum master, d’un product owner issu de l’équipe client et de 6 développeurs.

Le scrum master est le garant de la mise en place et de l’application de la méthodologie Scrum au sein de l’équipe projet. Le product owner, quant à lui, est le garant des intérêts du client: il est là pour s’assurer que la réalisation technique ne s’éloigne pas du besoin et pour répondre aux questions métier de l’équipe technique.

Cette dernière était composée de deux développeurs back-end, deux développeurs iOS et deux développeurs Android dédiés tout au long du projet. Nous avons également intégré un développeur iOS et un développeur Android ponctuellement pour une durée de 2 sprints afin d’accélérer la vélocité, à la demande de notre client client.

 

Choix des technologies utilisées

Pour le backend, nous avons fait le choix de nous baser sur des technologies robustes et éprouvées, Kotlin et spring boot, dans lesquelles notre équipe a une expertise forte.

La volonté de notre client était d’utiliser les technologies mobiles natives afin de garantir les meilleures performances des applications et la meilleure expérience utilisateur. Nous avons donc développé l’application Android sous Kotlin en visant les versions d’Android à partir de 5.0, ce qui couvre 85% des appareils. Pour l’application iOS, elle a été développée en Swift 4.2 et est compatible pour tous les appareils à partir de iOS 10, soit 97% des appareils actuels.

 

Principales problématiques

L’application permet de gérer notamment les demandes d’accréditations, l’hébergement et la navette pour amener le joueur à son hôtel, il fallait donc que ces fonctionnalités soient disponibles pour les utilisateurs à la date d’ouverture de ces services, un mois avant le tournoi.

D’autres fonctionnalités, disponibles uniquement pendant le tournoi telles que la programmation du jour, devaient être livrées en suivant. Il a donc fallu, afin de répondre à ces enjeux, définir une architecture modulaire et évolutive. Celle-ci permettait de rajouter ainsi que de cacher ou montrer des services sans perturber le fonctionnement de l’application pour les joueurs qui auraient commencé à l’utiliser.

Un des challenges à gérer était la rétrocompatibilité; afin de garantir que tous les services fonctionnent sur les anciennes versions de l’application – même après les mises à jour de ces services.

Une autre problématique majeure était la connexion aux différents prestataires gérant les données des joueurs. Des services différents géraient les données personnelles des joueurs, les vidéos des matchs passés, les statistiques des matchs et l’hébergement. Les différents identifiants nécessaires ont donc été intégrés et stockés pour repérer le joueur connecté auprès de chacun des intermédiaires et pouvoir rassembler les informations à présenter dans l’application.

 

Le résultat… et la suite

Une première version fonctionnelle de l’application a été livrée sur les stores début avril, au bout de trois mois de développement. Une nouvelle version incluant des fonctionnalités supplémentaires a été livrée à la fin de chacun des deux sprints suivants. L’application disponible sur les stores au début du mois de mai comprenait toutes les fonctionnalités principales.

Six semaines après le lancement, l’application compte 70% d’utilisateurs sur iOS et 30% sur Android, et aucun problème majeur n’a été détecté avant ni pendant le tournoi.

Appstud a fourni un backend, un back-office et deux applications mobiles natives, avec un code de qualité couvert à plus de 90% par des tests.

La méthodologie agile utilisée par Appstud a particulièrement convenu au client, qui a apprécié le respect du périmètre et du planning, ainsi que la livraison des deux applications Android et iOS simultanément malgré les spécificités de chaque plateforme.

 

La principale leçon de ce projet?

Le projet semblait de prime abord complexe. D’une part le nombre de services externes auxquels se connecter et aussi de par le planning restreint. Nous avons pu confirmer lors de ce projet qu’il n’y a pas de complexité si nous arrivons à simplifier et à réduire les éléments fonctionnels tout en les phasant dans le temps. Un élément clé de la réussite de ce projet réside aussi (et surtout) dans l’implication et la compétence du product owner.

Adrien Bernier a guidé nos équipes et a été présent à chaque instant. Il a permis de fluidifier les échanges entre les différents intervenants, prioriser les tâches à réaliser, valider les différents livrables et surtout guider toute l’équipe vers la réussite de ce projet ambitieux.