En général, je suis d'accord avec James Anderson. D'après mon expérience, il y a cependant des aspects supplémentaires qui peuvent être pris en considération et qui peuvent pointer vers une option qui permet effectivement de faire évoluer les interfaces.
Cet exemple provient d'une des équipes avec lesquelles je travaille. Ils expédient un produit régulièrement, au moins une fois par mois, parfois même chaque semaine. Les clients sont encouragés à mettre à niveau car les nouvelles fonctionnalités et les nouvelles plates-formes ne sont prises en charge que sur les versions plus récentes. La mise à niveau est facile et les clients peuvent même ignorer les versions entre les deux. La rétrogradation n'est pas prise en charge. De plus, les versions ne sont prises en charge que pendant 3 ans. Après cela, il y a un délai de grâce d'un an lorsque les frais de maintenance doublent.
En conséquence, la grande majorité - environ 95% des clients - procède régulièrement à des mises à niveau, au moins une fois par an. Cela signifie également que vous pouvez progressivement introduire de nouvelles interfaces.
Et les anciennes interfaces? La technique utilisée par cette équipe consiste à déclarer les anciennes interfaces comme «en fin de vie». Ensuite, il y a une période de 12 mois pendant laquelle la nouvelle interface est disponible et l'ancienne interface n'a pas encore été retirée. Les nouvelles interfaces offrent de meilleures fonctionnalités que l'ancienne interface, il y a donc deux avantages: l'ancienne interface en fin de vie et la nouvelle interface étant bien meilleures.
L'ancienne interface concrète dans ce cas était une technologie spécifique à la plate-forme qui est en train d'être progressivement remplacée par une interface de service basée sur la technologie standard standard.
Bien sûr, ce changement ne se produit pas pendant la nuit et il faut de nombreuses années avant son achèvement. Mais cela a permis d'arrêter l'investissement dans l'ancienne technologie et d'investir à la place dans la nouvelle technologie. Les clients reçoivent une assistance et ont un chemin à parcourir. La plupart d'entre eux se félicitent également de l'évolution vers de nouvelles technologies.
Gardez à l'esprit, cependant, que cette approche particulière peut ne pas fonctionner dans votre scénario. Cela fonctionne certainement pour l'équipe avec laquelle je travaille.
I think there comes a point where keeping backward compatibility becomes such a big burden that useful changes to interfaces become impossible.
- Et je pense que vous avez répondu à votre propre question là-bas ...