I want to know about best practices for release management of a product-technical team with about 7 cross-functional teams included. We changed our team structure to something like Spotify Squads Framework with some changes because of our team culture and size. now we have 7 cross-functional teams that have all the necessary people (developer, designer, PM, QA) for product development. It has its own agile sessions and delivers the features.
Everything is fine except the release process, we are in microservice architecture and we have many source codes that many of which are shared between two or more teams. each team needs a stage for showing its deliverable features to its product manager and testing process with QA before the production release, but we have only three stages (dev, stage, production) bases on Git Feature Branching Flow.
The questions are:
- Which team's Pull Request must be merged first in the same situation between two teams?
- If a PR merged and in the testing process we found problems, what can we do? for this problem we are not able to merge two features at the same time.
- Most of the time, the development of the backend of a feature is one sprint earlier and clients like to connect to a live stage to test their APIs so we need to merge this feature's backend into develop branch and release the backend on developing environment for using clients. If backend changes have affected other clients, we must wait till this features client development finished and release them at the same time that takes a lot of time. the other teams will be stopped for one team and pull requests stuck in a queue.