Refactoriser une application complexe

Publié le 15 septembre 2020

Aujourd’hui, je viens d’avoir une réunion avec mon client.
Il a changé d’avis.

Ceci dit, c'est le cas d'une grosse majorité des projets informatiques.

Une bonne partie du code que j’ai créé doit être refaite sans compter les nouvelles fonctions que je dois ajouter.
Ce n’est généralement pas ce qu’on aime bien entendre, cependant, quand les changements vont dans le sens du projet, ce n’est pas un problème, juste un contre temps.
Malgré tout le codebase est déjà relativement complexe, et je sais d’ores et déjà que les nouveautés ne vont pas améliorer la situation.

De par mon expérience, je pense qu’il faut re-factoriser le code pour utiliser une architecture plus générique qui permettra de réorganiser tout le code (ancien et nouveau).
Cette situation est connue de tous les développeurs, elle est commune.
Dans ces moments-là, au sein d’une équipe, on discute entre nous du problème et on trouve une solution ensemble avec les connaissances dont nous disposons.
Si un collègue a déjà été confronté à ce problème particulier, c’est super, il pourra nous guider !
Dans le cas contraire, on suppose, on hésite, on sait qu’il va falloir expérimenter mais on n’est pas sûr de la solution à mettre en place.
En tant que freelance, je discute de ces problématiques avec mon propre réseau, notamment au sein de Code2be, l’asso des développeurs de Vendée.

C’est ainsi que j’ai eu la chance de pouvoir en discuter avec Sébastien François.
La particularité de Sébastien est qu’il adore résoudre ce genre de problème.
Il a une expérience accrue des Design Patterns, du DDD et de l’architecture logicielle.

Avec l’expérience, en tant que développeur sénior, on sait pertinemment qu’il est important de prendre du recul pour réfléchir à son problème, on peut même utiliser des techniques comme la théorie du Canard.
Parfois, il nous faut simplement de l’aide pour repenser avec un regard neuf.
J’ai donc réservé un créneau avec Sébastien pour lui exposer mon problème, il a su rapidement assimiler l’état de mon application pour me conseiller une architecture optimisée qui répond parfaitement à mes besoins, dans mon cas, le pattern Strategy.

Plusieurs avantages à solliciter un consultant expérimenté comme Sébastien:

  • régler le problème, c’est finalement le plus important à court terme
  • maintenir une bonne qualité logicielle, très important à moyen et long terme
  • retour sur investissement, le coût d’une prestation sous forme de consulting ponctuel étant inférieur au coût du temps passé sans cette intervention

Le procédé est super intéressant, rapide et très efficace, je ne peux que vous recommander d’utiliser les services d’un consultant tel que Sébastien qui saura aborder votre problématique avec une perspective différente.

Crédits:
Photo by joseph-gruenthal on Unsplash

Vous avez des remarques, une réponse à apporter ou vous souhaitez simplement prolonger la discussion ?