Mein Produkt hat folgende Struktur: Website, iOS, mobile Android-Apps, Backend.
Es gibt einen gemeinsamen Code, der von allen oben genannten Komponenten verwendet wird. Angenommen, Sie müssen ein Stück Code darin ändern (nur einmal an einer Stelle), damit Änderungen in allen Komponenten erscheinen.
Wenn es beispielsweise einen Fehler auf der Website gibt, der eine Änderung dieses gemeinsamen Codes erfordert, müssen wir gleichzeitig auch mobile Apps testen, um sicherzustellen, dass dort nichts kaputt geht.
Jetzt machen wir Releases nicht zu oft und wir haben alle Komponenten auf einmal veröffentlicht. Dies sieht nach einer ineffektiven Methode aus, Releases durchzuführen. Ich möchte jedes Produkt separat in seinem eigenen Tempo veröffentlichen, ohne die Qualität zu beeinträchtigen.
Irgendwelche Ideen, wie dies geschehen kann?
Als Entscheidung dieses Problems können die folgenden Schritte dienen:
Daher können Sie diese Methode nur zur Verbesserung eines Projekts verwenden, ohne Angst zu haben, Ihre anderen Projekte zu beschädigen.
Eine der goldenen Regeln der Continuous Delivery lautet:
Wenn etwas schwierig ist, tun Sie es häufig
Im Moment befürchten Sie, dass die Veröffentlichung auf den verschiedenen Plattformen die Qualität beeinträchtigen wird. Wenn Sie diese Angst lindern können, verschwindet das Problem.
Ich würde suchen:
Dieser Ansatz erfordert einen erheblichen Zeit- und Ressourcenaufwand, der Vorteil ist jedoch eine viel größere Flexibilität bei der Freigabe und die Fähigkeit, sich schnell an Änderungen anzupassen.
Das klingt nach einem primär codeorientierten Problem. Sie möchten, dass Komponenten Ihrer Anwendung lose gekoppelt oder vollständig entkoppelt werden. Unter Verwendung guter Programmierprinzipien wie Einzelverantwortung und Abhängigkeitsinversion wirkt sich das Ändern von etwas in einem System nicht unbedingt sofort auf alles andere aus. Unabhängig davon, ob es sich bei Ihrem gemeinsamen Code um eine Bibliothek oder eine Art Dienst handelt, können Sie von hier aus ein Versionierungsschema verwenden, um Aktualisierungen zuzulassen, die sich auf eine Plattform auswirken, aber nicht auf eine andere.