Face aux défis de la vélocité des décisions dans les grands projets logiciels, le modèle mental des "portes à sens unique" (one-way doors) contre les "portes à double sens" (two-way doors) permet d'éviter l'accumulation de dette technique. Une décision est une porte à sens unique si elle est rare, conséquente et difficile à inverser, comme le choix d'une base de données. Inversement, une porte à double sens concerne des décisions à faible risque et facilement réversibles, tel qu'un nom de variable locale.
Pour maintenir une haute vélocité décisionnelle en toute sécurité, il est crucial d'intégrer la réversibilité dans le code grâce à des patterns architecturaux spécifiques. L'objectif est de concevoir des "trappes de sortie" intégrées plutôt que de se retrouver enfermé dans un coin du code. Cette approche délibérée permet d'éviter la paralysie d'analyse et de garantir que l'équipe puisse progresser rapidement et de manière fiable.
Parmi les patterns favorisant les portes à double sens, on trouve les feature flags pour découpler le déploiement de la mise en production, la limitation de l'exposition des API pour permettre des itérations sur les interfaces sans impacter les clients en aval, le découplage des formats de données pour isoler les modifications des structures de stockage permanentes, et les dark launches pour valider de nouvelles logiques en parallèle avec un impact nul sur les utilisateurs.