My experience, so my actual coaching praxis and that what I implement myself and with the help of my coaching teams is exactly a matrix organization, as Jürgen Apello showed.
We change the Teamleads to Domainleads
Why? Because we want to get rid of the notion that the Teamlead leads a team.
The ScrumMaster “leads” the team.
The Domainlead is responsible for his people in different teams.
He cares about their career and he makes sure that the company goals gets communicated to all the people in his “domain.”
He leads more by using education and training, by building guidelines and by coaching people in the domains but by imposing rules to the people.
The second very importend aspect is steering of the company: the strategic functionality of managment.
They have together, as a team, the responsibility to build the direction, the vision and everything else that is necessary to align the team members to the overall company or organizational goal.