Vous avez décidé de lancer la refonte de votre application mobile Android (sûrement pour une de ces raisons) et vous êtes en train de lancer le projet. Nous vous avons listé dans cet article les 3 erreurs à éviter ?.
La tentation est grande quand on se décide à faire une refonte de repartir à zéro et de redévelopper toute l'application. L'occasion de reposer des bases saines, d'intégrer les dernières technos à la mode et d'occuper les développeurs pour de nombreux mois ! Cependant, cette solution séduisante au premier abord ne va pas sans son lot d'inconvénients :
Dans la plupart des cas, il vaut mieux repartir du code existant. Voir aussi cet excellent article pour plus de détails.
Comme on l'a vu dans l'article précédent, plusieurs raisons peuvent avoir déclenché cette refonte. Il y a donc des éléments de l'application ou du code que l'on souhaite améliorer.
Il faut également avoir en tête que la refonte peut s'étaler sur un temps long, probablement plusieurs mois. Il est donc intéressant de mettre en place des indicateurs pour suivre l'avancement de la refonte.
On pense par exemple :
Cela peut aussi être des indicateurs d'avancement de la refonte comme :
Il est surtout intéressant de vérifier que la refonte a bien généré les effets escomptés.
Si on cherche à améliorer le temps de build incrémental, pourquoi ne pas mettre en place un protocole de test pour vérifier que les performances évoluent dans le bon sens ? Bonne nouvelle, c'est prévu par le framework ! De même dans le cas d'une refonte UI, on suivra de près la note du store et le NPS.
Avant de s'engager dans la refonte de la totalité de l'application, il semble nécessaire d'avoir une idée de l'architecture cible. L'idée est également de lister les points douloureux liés à la base de code existante.
Idéalement, on peut prototyper la nouvelle architecture sur une nouvelle feature relativement indépendante de l'existant. On peut alors valider une architecture cible sur du code directement utile au produit, et donc en perdant le minimum de ressources.
S'il n'y a pas de telles features dans le backlog, on peut valider l'architecture sur une feature existante en la transformant vers l'architecture cible.
Enfin dans certains cas où l'architecture cible est très éloignée de la base de code actuelle, on peut réaliser un POC, c'est-à-dire une application aussi vide que possible mais où tous les éléments sont là (écrans, module de données, module domaine...). Cela permet de créer la discussion au sein de l'équipe (chacun peut proposer des patches, le but étant d'aligner l'équipe sur une série de standard de qualité) et de s'affranchir complètement des compromis de l'architecture existante.