Plus j’avance et moins je crois aux branches et aux livraisons unitaires. Pour plein de raisons, quitte à sacrifier un peu de performance, je conseille la livraison en production de tout le code, même s’il n’est pas fini.
L’important c’est l’interrupteur, la possibilité d’activer ou désactiver un comportement.
Feature toggles are a powerful technique, allowing teams to modify system behavior without changing code. They fall into various usage categories, and it’s important to take that categorization into account when implementing and managing toggles. Toggles introduce complexity. We can keep that complexity in check by using smart toggle implementation practices and appropriate tools to manage our toggle configuration, but we should also aim to constrain the number of toggles in our system.
L’article est long, il n’aborde pas vraiment le comment, mais résume beaucoup de choses sur l’approche et le quoi.
4 réponses à “Feature Toggles”
S’il est une chose que j’apprécie beaucoup c’est bien cela.
Récemment j’ai eu à faire des refactoring conséquents (et critique, genre système de sécurité de vol) dans une application. Plutôt que de faire une nouvelle branche qui aurait duré plusieurs semaines (avec tout ce que ça comporte comme problème de rebase, synchro, etc) on l’a développé directement dans la branche principale. La nouvelle architecture a été introduite en complément de l’ancienne. Au début non active.
Petit à petit les sous-systèmes ont migré, un à un, de l’ancienne architecture vers la nouvelle, tout en douceur.
Une fois tout migré, l’ancienne architecture a été supprimée.
C’est un confort très appréciable, et cela supprime d’office toute crainte au moment où on ferait une bascule d’un système vers l’autre puisque tout est compilé/testé en même temps depuis le début et que le passage de l’un à l’autre est très progressif.
Sur le sujet il y a aussi les (nombreux) écrits de Paul Hammant, particulièrement :
– Branch by Abstraction : http://paulhammant.com/categories.html#branch_by_abstraction,_etc
– Trunk Based Development : http://paulhammant.com/categories.html#trunk_based_development
L’article n’est pas entièrement publié. N’oubliez pas de souscrire aux mises à jour.
Le Feature Toggles c’est ce que fait? (faisait) Flickr avec son code. Voir http://code.flickr.net/2009/12/02/flipping-out/
Vi, et à Etsy aussi vu qu’une partie de l’équipe venait de Flickr.