Courses partenaires
Un module greffé sur une plateforme de VTC déjà en production, sans rien casser
Le contexte
Une société de VTC voulait pouvoir passer ses courses à des sociétés partenaires quand ses propres chauffeurs sont pris, et recevoir les leurs en retour, avec une commission à chaque passage. Sa plateforme existait déjà : quatre dépôts, des applications installées sur les téléphones de chauffeurs qui travaillent tous les jours. Ajouter une fonctionnalité dans ces conditions n'est pas la même chose que de partir d'une page blanche.
Mon approche
J'ai monté un environnement complet en parallèle de la production, avec ses fonctions serveur, ses règles et ses données de test, et j'ai développé le module là. Le passage d'une course d'une société à une autre, le cercle de chauffeurs sollicité, le calcul de la commission, le suivi côté tableau de bord. Puis j'ai produit une version de recette de l'application chauffeur, signée et installable à côté de l'application de production, pour que le client puisse essayer sur le terrain sans perdre son outil de travail.
Ce que j'en retire
Le module a été livré avec son tableau de bord en ligne et son application de recette, couvert par 222 vérifications automatiques. Ce projet m'a appris ce que veut dire intervenir sur un système en production : le risque n'est pas d'écrire du mauvais code, il est de casser quelque chose qui marchait pour quelqu'un qui travaille avec.
Sous le capot
Comment c'est construit
Ne jamais travailler sur la production
La plateforme tourne, avec de vrais chauffeurs et de vraies courses. Tout le développement s'est fait sur un environnement séparé, avec ses propres fonctions, ses propres règles et ses propres données. La règle la plus importante du projet n'était pas technique : ne pas écrire une ligne dans la base du client.
Une application de recette qui cohabite
Le chauffeur qui teste a déjà l'application de production sur son téléphone. La version de recette porte donc un identifiant distinct, pour s'installer à côté au lieu de la remplacer. Sans ça, il faut désinstaller l'app avec laquelle il travaille, et personne n'accepte.
Le partage de commission côté serveur
Qui touche quoi sur une course passée d'une société à une autre se calcule sur le serveur, jamais dans l'application. C'est la seule façon d'avoir un chiffre que personne ne peut modifier depuis un téléphone.
Couvert par des tests, parce qu'on greffe
222 vérifications automatiques. Sur un module ajouté à un système existant, les tests ne servent pas à prouver que le nouveau code marche : ils servent à prouver que l'ancien marche encore.
Applications
Back-end
Qualité