« DetteTechnique » : différence entre les versions

De Wiki Agile
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 20 : Ligne 20 :
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.<br/>
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.<br/>
<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é (en)], 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/>
<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/>
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/>
Ligne 28 : Ligne 28 :
La métaphore de la dette est parfois utilisée pour justifier le fait de ne pas tenir compte de la qualité interne. L'argument est qu'il faut du temps et des efforts pour empêcher l'accumulation de la dette. Si de nouvelles fonctionnalités sont nécessaires de toute urgence, il est peut-être préférable d'assumer la dette, en acceptant que cette dette doive être gérée ultérieurement.<br/>
La métaphore de la dette est parfois utilisée pour justifier le fait de ne pas tenir compte de la qualité interne. L'argument est qu'il faut du temps et des efforts pour empêcher l'accumulation de la dette. Si de nouvelles fonctionnalités sont nécessaires de toute urgence, il est peut-être préférable d'assumer la dette, en acceptant que cette dette doive être gérée ultérieurement.<br/>
<br/>
<br/>
Le danger ici est que la plupart du temps, cette analyse n'est pas bien faite. Le code mal conçu a un impact rapide, ralentissant le développement des nouvelles fonctionnalités qui sont demandées rapidement. Les équipes qui font cela finissent par dépasser la limite de leurs cartes de crédit, mais livrent toujours plus tard qu'elles ne l'auraient fait si elles avaient fait l'effort d'améliorer la qualité interne. Ici, la métaphore conduit souvent les gens à s'égarer, car la dynamique ne correspond pas vraiment à celle des prêts financiers. S'endetter pour accélérer la livraison ne fonctionne que si l'on reste en dessous de la limite de rentabilité de [https://martinfowler.com/bliki/DesignStaminaHypothesis.html l'hypothèse de robustesse de la conception], et les équipes atteignent cette limite en quelques semaines plutôt qu'en quelques mois.<br/>
Le danger ici est que la plupart du temps, cette analyse n'est pas bien faite. Le code mal conçu a un impact rapide, ralentissant le développement des nouvelles fonctionnalités qui sont demandées rapidement. Les équipes qui font cela finissent par dépasser la limite de leurs cartes de crédit, mais livrent toujours plus tard qu'elles ne l'auraient fait si elles avaient fait l'effort d'améliorer la qualité interne. Ici, la métaphore conduit souvent les gens à s'égarer, car la dynamique ne correspond pas vraiment à celle des prêts financiers. S'endetter pour accélérer la livraison ne fonctionne que si l'on reste en dessous de la limite de rentabilité de [https://martinfowler.com/bliki/DesignStaminaHypothesis.html l'hypothèse de robustesse de la conception (en)], et les équipes atteignent cette limite en quelques semaines plutôt qu'en quelques mois.<br/>
<br/>
<br/>
Il y a régulièrement des débats pour savoir si les différents types de code mal conçu doivent être considérés comme de la dette ou non. J'ai trouvé utile de réfléchir à la question de savoir si la dette est acquise délibérément et si elle est prudente ou imprudente - ce qui m'a conduit au [[Quadrant de la Dette Technique]].<br/>
Il y a régulièrement des débats pour savoir si les différents types de code mal conçu doivent être considérés comme de la dette ou non. J'ai trouvé utile de réfléchir à la question de savoir si la dette est acquise délibérément et si elle est prudente ou imprudente - ce qui m'a conduit au [[Quadrant de la Dette Technique (fr)]].<br/>
<br/>
<br/>
==Notes==
==Notes==
<references />
<references />