We in the midst of a conversion to Agile/Scrum, using Agile Software Requirements as a general manual.
We've traditionally broken our teams up into component teams. One team does API/Service work while another does UI implementation. Mix in a team of testers and after quite a few years of this, a bit of a rift has grown between the teams.
We've organized into back office and front office teams. One team being in charge of building from top to bottom the customer facing part, while the other handles the back office billing/sales systems.
The problem is twofold. We have certain services that are consumed by both of the teams. So, we also formed a component group that's in charge of maintaining these global services. This creates inter-team dependencies, kind of contrary to the concept of a feature team.
The other problem is that the front office applications have to call into the back office applications to see if a customer has purchased a subscription to Product X. Again, another cross team dependency. It's impossible for us to bring Product Y to market without backoffice billing support and the management of the product in our customer facing portal.
To solve the dilemma, we changed who the component group considers as a customer. Instead of a fully end user testable feature with a UI, the APIs themselves have to be approved of by the teams that consume them. Thus, kind of making them a feature team as well, just without a UI. The back/front office teams become the customer/stakeholders.
Is this logic sound? Can I get a sanity check on this?