Das ist eine sehr schwierige Frage, die sicher von Ihrem Unternehmen abhängt. Zunächst muss ich fragen, warum Sie 3 Umgebungen und kontinuierliche Integration verwenden (der Grund ist wichtig)? Führen Sie überhaupt automatisierte Tests durch? Wie sind Ihre Codeverzweigungen aufgebaut? Geben Sie eine bestimmte Funktionalität frei oder nehmen Sie nur routinemäßige Wartungsarbeiten vor?
Die Beantwortung dieser Fragen wird Ihnen Aufschluss darüber geben, warum Sie eine Freigabe benötigen und wie Sie dabei vorgehen sollten.
Wenn Sie zum Beispiel nur eine Staging-Umgebung für die Integration haben und automatisierte Tests durchführen, kann es dann nicht ausreichen, einen separaten Code-Zweig zu haben, in dem kontinuierliche Integrationstests laufen?
Wenn das Staging dazu dient, eine Art von Benutzerakzeptanz durchzuführen, verfügt Ihr Unternehmen dann über ein spezielles Testteam oder sind sie Mitglieder der agilen Teams?
Wie Sie richtig sagten, wenn der Code immer integriert und getestet wird, warum bräuchten Sie dann einen Zeitplan und den Wechsel von einer Umgebung zur nächsten, wenn Sie sich nicht sicher sind, ob die Funktionen tatsächlich "fertig" sind? Damit meine ich nicht, dass Sie unsicher sind, ob die Funktion korrekt kodiert wurde, sondern dass Sie befürchten, dass sie andere Fehler einführt? Wird sie sich gut in den bereits in Produktion befindlichen Code integrieren lassen? Gehen Sie die Bedenken an der Wurzel des Problems an. Tun Sie es nicht nur, weil Sie denken, dass Sie X Umgebungen haben sollten oder dass die Tests in einer anderen Gruppe stattfinden sollten. Vielleicht besteht die Lösung für diese Probleme darin, die Definition von "fertig" entsprechend anzupassen.
Wie Sie sehen können, gibt es viele, viele Faktoren, die Ihre Organisation einzigartig machen werden. Es gibt nicht den einen richtigen Weg, sondern nur Kompromisse, die Sie bereit sind zu akzeptieren.
Ich finde, dass mehrere Umgebungen mit Teams von Mitarbeitern, die auf den verschiedenen Ebenen arbeiten, eher kontraproduktiv sind und der Agilität entgegenwirken. Am besten analysieren Sie Ihre Bedenken und versuchen, Wege zu finden, sie zu lösen (z. B. die Definition von "erledigt" zu erweitern oder die verschiedenen Organisationen aufzulösen und sie den Teams zuzuordnen, so viele Umgebungen wie möglich zu eliminieren und den Prozess zu vereinfachen usw.). Möglicherweise ist dies in Ihrer Organisation nicht möglich, so dass Sie mit Kompromissen leben müssen.