« DetteTechnique » : différence entre les versions

De Wiki Agile
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 21 : Ligne 21 :
<br/>
<br/>
En d'autres termes, il s'agit simplement d'utiliser des chiffres et tout responsable disposant d'un tableur devrait faire des choix. Malheureusement, comme nous ne pouvons pas [https://martinfowler.com/bliki/CannotMeasureProductivity.html mesurer la productivité], aucun de ces coûts n'est objectivement mesurable. Nous pouvons estimer le temps nécessaire pour réaliser une fonctionnalité, estimer ce à quoi elle pourrait ressembler si le code mal conçu était supprimé, et estimer le coût de la suppression du code mal conçu. Mais la précision de ces estimations est assez faible.<br/>
En d'autres termes, il s'agit simplement d'utiliser des chiffres et tout responsable disposant d'un tableur devrait faire des choix. Malheureusement, comme nous ne pouvons pas [https://martinfowler.com/bliki/CannotMeasureProductivity.html mesurer la productivité], aucun de ces coûts n'est objectivement mesurable. Nous pouvons estimer le temps nécessaire pour réaliser une fonctionnalité, estimer ce à quoi elle pourrait ressembler si le code mal conçu était supprimé, et estimer le coût de la suppression du code mal conçu. Mais la précision de ces estimations est assez faible.<br/>
<br/>
Dans ces conditions, la meilleure solution est généralement de faire ce que nous faisons habituellement avec les dettes financières, à savoir rembourser le principal progressivement. Pour la première fonctionnalité, je vais passer quelques jours de plus pour enlever une partie du code mal conçu. Cela peut être suffisant pour réduire le taux d'intérêt sur les futures améliorations à un seul jour. Cela prendra encore plus de temps, mais en supprimant le code mal conçu, je réduis le coût des futures modifications de ce code. Le plus gros avantage d'une amélioration progressive comme celle-ci est que cela signifie naturellement que nous passons plus de temps à retirer le code mal conçu dans les parties que nous modifions fréquemment, qui sont exactement les parties du code base où nous avons le plus besoin que le code mal conçu soit supprimé.<br/>
<br/>
<br/>
==Notes==
==Notes==
<references />
<references />

Version du 16 mai 2020 à 09:44

TRADUCTION EN COURS
Auteur : Martin Fowler (@martinfowler)
Source : TechnicalDebt
Date : 21/05/2019


Traducteur : Fabrice Aimetti
Date : 16/05/2020


Traduction :

Les systèmes logiciels sont sujets à l'accumulation de code mal conçu[1], des faiblesses dans la qualité interne qui rendent plus difficile qu'il ne le serait théoriquement de modifier et d'étendre le système. La dette technique est une métaphore, inventée par Ward Cunningham, qui explique comment gérer ce code mal conçu, en le considérant comme une dette financière. L'effort supplémentaire qu'il faut fournir pour ajouter de nouvelles fonctionnalités est l'intérêt payé sur la dette.



Imaginez que j'ai une structure de code compliquée dans mon code base. Je dois ajouter une nouvelle fonctionnalité. Si la structure du code était claire, il me faudrait quatre jours pour ajouter la fonctionnalité, mais avec ce code mal conçu, il me faut six jours. La différence de deux jours est l'intérêt sur la dette.

Ce qui m'attire le plus dans la métaphore de la dette, c'est la façon dont elle oriente ma réflexion sur la manière de gérer ce code mal conçu. Je pourrais prendre cinq jours pour nettoyer la structure du code, supprimer ce code mal conçu, en remboursant métaphoriquement le principal. Si je ne le fais que pour cette seule fonctionnalité, ce n'est pas un gain, car je prendrais neuf jours au lieu de six. Mais si j'ai deux autres fonctionnalités similaires à venir, alors je finirai plus rapidement en supprimant d'abord le code mal conçu.

En d'autres termes, il s'agit simplement d'utiliser des chiffres et tout responsable disposant d'un tableur devrait faire des choix. Malheureusement, comme nous ne pouvons pas mesurer la productivité, aucun de ces coûts n'est objectivement mesurable. Nous pouvons estimer le temps nécessaire pour réaliser une fonctionnalité, estimer ce à quoi elle pourrait ressembler si le code mal conçu était supprimé, et estimer le coût de la suppression du code mal conçu. Mais la précision de ces estimations est assez faible.

Dans ces conditions, la meilleure solution est généralement de faire ce que nous faisons habituellement avec les dettes financières, à savoir rembourser le principal progressivement. Pour la première fonctionnalité, je vais passer quelques jours de plus pour enlever une partie du code mal conçu. Cela peut être suffisant pour réduire le taux d'intérêt sur les futures améliorations à un seul jour. Cela prendra encore plus de temps, mais en supprimant le code mal conçu, je réduis le coût des futures modifications de ce code. Le plus gros avantage d'une amélioration progressive comme celle-ci est que cela signifie naturellement que nous passons plus de temps à retirer le code mal conçu dans les parties que nous modifions fréquemment, qui sont exactement les parties du code base où nous avons le plus besoin que le code mal conçu soit supprimé.

Notes

  1. Cruft