Integration of Increments
When many Scrum teams are working on the same product, should all of their increments be integrated every Sprint?
Yes they should.
Let's think about, if they don't:
- The state of the product is unclear (due to not yet discovered problems that will arise during integration and complete product increment tests)
- The PO does not have a clue whether the THING he/she was presented is potential shippable
- It is not transparent to the organization what the next reasonable steps are (if there difficulties due to integration, the next steps would be rather clear, but not integrated - its only wishful thinking)
All this sad, there are some occasions where integrating each sprints is futile:
- If the sprint is abnormally terminated by the PO
- If testing gear needed to verify a potential shippable product increment is not as available as it should -> clear impediment
- Integration environment is not accessible -> clear impediment
- Integration procedure is to complicated to do every sprint -> clear impediment, and yes pain is sometimes a good teacher
- The other teams are working on different products (I stress: not components of the same product) that are highly integrated into your team's work -> a nasty impediment
Don't take "too much effort", "too much time", "too high cost" easy, see it as an impediment and a leverage to act as a Scrum Master by taking responsibility in removing these impediments.
I hope, this answers your question.
Thank you Michael. I appreciate your explanation.
Each increment released by each Scrum team at the end of a Sprint must be potentially shippable. This implies that they must not only be integrated, but also subjected to whatever system integration, UAT, or pre-release testing is needed.
That's a tall order. There is controversy at the moment about the use of enterprise release frameworks (e.g. SAFe), which dilute this standard somewhat.
I would say the integration should happen multiple times during the sprint as and when required. We have eight teams working on the same product and we have multiple integration environments. Dev Int - where the integration happens twice a day, QA Int - where the integration happens twice in a week and UAT - where integration happens every sprint.
It doesn't mean we have to release all eight team's feature every sprint, we have a mechanism which allows us to release the selected feature every sprint, if required.