La plateforme de VTC Uber publie assez régulièrement des outils IT élaborés par ses développeurs. Dernier en date, Piranha est une solution qui supprime automatiquement le code inutilisé et ancien dans les applications. En la mettant en open source sur GitHub, Uber veut aider les développeurs à automatiser cette tâche de suppression de code, qui est chronophage et s’effectue manuellement.
Dans un blog, il détaille un peu plus la mécanique de Piranha. L’entreprise se sert d'indicateurs de fonctionnalités (feature flags) pour le développement des apps mobiles Android et iOS. Ces feature flags sont utilisés pour personnaliser l’exécution des applications mobiles, c’est-à-dire proposer diverses fonctionnalités à différents groupes d’utilisateurs.
Un éradicateur de dette technique
En utilisant des indicateurs de fonctionnalités, des entreprises comme Uber sont capables de localiser l’expérience de l’utilisateur dans les différentes régions où elles opèrent. Elles peuvent ainsi déployer progressivement des fonctionnalités auprès des utilisateurs et tester différentes variantes de la même fonctionnalité. Or ces feature flags se transforment en fonctionnalités opérationnelles et deviennent périmés.
Piranha intervient à ce moment-là pour supprimer automatiquement ces composantes obsolètes, ainsi que leur code. Ce dernier encombre la base de code et peut interférer avec d’autres « flags » ou générer des bugs. Le gestionnaire de flags scanne régulièrement les indicateurs et dresse une liste de ceux qui sont périmés. Une alerte est envoyée à leur auteur pour vérifier que le feature flag est dépassé. Puis Piranha les supprime.
Piranha fonctionne actuellement avec du code écrit en Objective-C, Swift et Java. En passant en open source, la communauté pourra adapter l’outil à d’autres langage. En tout cas, le retour chez Uber est parlant avec la suppression de 2000 feature flags et du code associé. La firme préconise d’utiliser Piranha dans les apps qui se servent intensivement des feature flags et des API pour contrôler leur comportement. In fine, Uber a réussi à éliminer une partie de la dette technique inhérente au développement.