Conception réfléchie
AUDIENCE
Programmeurs
Chaque jour, notre code est meilleur que la veille.
Les approches traditionnelles de la conception supposent que le code ne doit pas changer. Au lieu de cela, les nouvelles fonctionnalités et capacités sont prises en charge par l'ajout d'un nouveau code. Une conception traditionnelle soutient cela en anticipant ce qui pourrait être nécessaire et en construisant des "crochets" d'extensibilité, sous la forme d'héritage, d'injection de dépendances, etc. Le principe d'ouverture et de fermeture, une ligne directrice classique en matière de conception, illustre cet état d'esprit : "Les entités logicielles (classes, modules, fonctions, etc.) doivent être ouvertes à l'extension, mais fermées à la modification."
Mais les équipes Agile créent des conceptions simples qui n'anticipent pas l'avenir. Leurs conceptions n'ont pas de crochets. Au lieu de cela, les équipes Agile ont la possibilité de remanier leur code et de modifier sa conception. Cela crée l'opportunité d'une approche entièrement différente de la conception : une approche dans laquelle les entités ne sont pas conçues pour être étendues, mais plutôt pour être modifiées.
J'appelle cette approche la conception réfléchie.
Comment fonctionne la conception réfléchie
La conception réfléchie s'oppose à la conception traditionnelle, que j'appelle conception prédictive. Dans la conception prédictive, tu prédis ce que ton logiciel devra faire, en te basant sur tes besoins actuels et sur ta meilleure ...