Ma plus grosse erreur sur les trois derniers mois a été certainement d’abandonner un développement sans mettre au propre le dépôt de code correspondant.

Requis de manière impérative pour faire le pompier sur un projet sensible, j’ai en effet été obligé d’abandonner abruptement ce que j’étais en train de concevoir.

Je n’ai donc pas pris le temps d’ajouter à mon dépôt de code les dernières modifications que je venais d’effectuer.

Or, je n’ai pu reprendre mon développement que presque deux mois plus tard, et à ce moment, je n’avais donc plus la moindre idée de ce qu’il me restait à faire pour le finaliser.

Et comme je n’avais pas mis mon dépôt de code au propre, ce dernier ne contenait aucune information me permettant de savoir ou je m’étais arrêté exactement.

Pire, j’avais des fichiers modifiés par rapport aux versions stockées dans mon dépôt de code, mais je ne savais plus du tout si les modifications en question étaient importantes ou non.

Car après analyse, ces modifications étaient aussi bien des instructions de débogage que des évolutions fonctionnelles.

J’ai donc perdu du temps à retrouver le fil de mon développement et j’ai de plus été obligé de demander de l’aide au collègue avec lequel je travaillais en binôme à l’époque pour y parvenir.

J’ai donc non seulement perdu du temps, mais j’en ai en plus fait perdre à mon collègue alors qu’il avait déjà d’autres problèmes à gérer.

J’ajoute qu’en plus de ne pas avoir stocké l’ensemble de dernières modifications dans mon dépôt, je n’avais pas non plus envoyé plusieurs modifications antérieures vers notre serveur de gestion de version.

Mon code n’a donc pas été sauvegardé pendant presque deux mois.

Si j’avais rencontré un problème matériel sur mon poste, j’aurais donc perdu encore plus de temps, car j’aurais été obligé de réécrire une partie de mon code.

Dans ce cas précis, j’ai cependant eu un peu de chance dans mon malheur.

En effet, mon développement contenait un nombre conséquent de tests unitaires et j’ai donc pu m’y reporter pour à la fois me remettre dans le bain fonctionnellement parlant et définir si je devais ou non conserver le code que je n’avais pas stocké dans mon logiciel de gestion de version.

Écrire des tests, ce n’est pas seulement produire du code de meilleure qualité, c’est également le documenter.

À l’avenir, indépendamment de l’urgence de la situation me forçant à abandonner un développement en cours, je prendrais donc le temps de mettre mon code au propre en mettant à jour aussi bien mon dépôt de code local que le dépôt de code distant.

Et je prendrais de plus le temps de rédiger un fichier intitulé « TODO » suffisamment détaillé pour que tout le monde puisse comprendre où je me suis arrêté.

Et évidemment, je prendrais également le temps de stocker ce fichier dans mon dépôt de code.

La personne qui reprendra le développement une heure, un jour, un mois, un an ou un siècle plus tard aura alors suffisamment d’informations à sa disposition pour le faire dans de bonnes conditions, que ce soit moi ou un autre.