« Dans les épisodes précédents » : vous avez eu besoin de contracter une dette (technique), que votre banquier a acceptée. Vous avez négocié avec lui pour déterminer les modalités du contrat, et vous êtes arrivés à un accord. Reste alors une question : comment rembourser sa dette technique ?
Crédits : Christian Dubovan (Unsplash)
Bien évidemment, en pratique cela dépend des éléments à corriger. Mais il y a quelques principes et outils qui se révéleront toujours utiles pour y parvenir.
Bien souvent, la dette technique vient de blocages personnels. On a du mal à trouver le nom d’une
variable,
d’une fonction ; on tourne en rond sur la conception d’un algorithme ; on a l’impression d’avancer et de
reculer sans arrêt.
Bref, on a besoin d’un regard extérieur.
Généralement, il suffit d’aller poser une question à un collègue pour trouver la réponse. Et ça, sans
même
qu’il n’ait le temps de répondre. Parce que le plus dur, en fait, c’est de se poser les bonnes
questions.
C’est comme cela qu’on évite la dette technique au mieux.
Et pour aider à se poser les bonnes questions, rien ne vaut des échanges en équipe : brainstorming,
débats,
retours d’expérience, …
Une fois le problème correctement posé, la réponse est souvent évidente ; et correcte !
Donc travailler en équipe, c’est bien pour résoudre des problèmes complexes ponctuels. Mais parfois, on
fait
plutôt face à de nombreux petits problèmes très simples. Et si on veut tout traiter d’un coup, c’est
hyper
chronophage.
Vous savez, ce petit « static » que vous avez voulu ajouter ou enlever sur une seule petite méthode. Ça
se
propage vite, hein ?
Dans cas cas là, il n’y a qu’une seule méthode qui a fait réellement ses preuves : la règle du boy
scout.
J’en avais déjà parlé dans
mon premier article
.
Le principe est aussi simple que difficile à intégrer : il s’agit de profiter de chaque modification de
code
pour corriger un micro élément de dette technique.
Deux difficultés dans cette technique :
Ensuite, il existe aussi des outils qui peuvent aider à rembourser sa dette technique.
Crédits : Christian Dubovan (Unsplash)
En premier lieu, les tests automatisés restent l’allié numéro un contre la dette technique. Ils assurent
qu’on n’introduit pas de régression, et que les corrections seront durables. Sans ce garde-fou, comment
savoir si ce qui a été cassé une fois ne le sera pas à nouveau ?
Si une erreur s’est déjà produite, il y a de bonnes chances qu’elle se reproduise à nouveau !
Dans un second temps, il est important de maintenir des documentations sur certaines corrections effectuées.
Dans le même principe qu’avec les tests automatisés : si on a fait un mauvais choix, il y a de bonnes
chances qu’un autre (ou nous-même des années plus tard) fasse de même.
Les tests automatisés permettent d’alerter qu’un problème est survenu. Mais parfois, ils ne permettent pas
de comprendre pourquoi il y a un problème. Dans ce cas, avoir une documentation qui explique les
conséquences des différents choix face à un problème permettra au développeur de réaliser un choix
avisé.
Sans ça, il risque de créer des aberrations juste pour faire repasser le test en vert. Ce qui est encore
plus dommageable.
Enfin, bien évidemment, il est utile de s’aider des outils d’analyse de code et des fonctionnalités des
IDE.
Les IDE proposent de plus en plus d’automatiser de petites refactorisations. Si elles ont été intégrées
nativement, c’est qu’elles présentent très peu de risque. Vous pouvez donc les appliquer les yeux fermés.
Cerise sur le gâteau : c’est une action valide pour la règle du boy scout !
Des analyseurs plus poussés comme SonarQube permettent d’alerter sur des règles plus complexes. Celles-ci
sont généralement accompagnées de conseils sur les moyens de corrections à apporter. C’est moins automatisé,
mais c’est toujours utile.
Félicitations, vous avez remboursé votre dette initiale comme promis !
Vous pouvez maintenant avancer plus sereinement, rembourser d’anciennes dettes ou même… en ajouter de
nouvelles (toujours avec modération).
En effet, maintenant vous savez la gérer correctement. Ce n’est plus un ennemi, mais un nouvel outil à votre
disposition.
Pour s’améliorer davantage, il est indispensable de réaliser de la veille technique : s’informer des
nouvelles technologies ainsi que des bonnes pratiques de codage. Tout cela évolue sans cesse, et il est
difficile (impossible ?) de tout maîtriser en même temps.
Le maître mot est donc « amélioration continue ». C’est la seule réponse viable face à la dette technique.
Crédits : Jake Hills (Unsplash)
En résumé de ces trois articles, voici comment bien gérer sa dette technique :
Étiqueté dette technique