Have been thinking about this a lot lately. Not just decision making, but how to actually function in a healthy way in the day-to-day, in a flat org.
The place I work recently restructured from a more traditional hierarchical structure to SAFe - so the business has a well defined hierarchy, while engineering teams are completely flat. Almost 4 PI's on (~9 months) the promise of "self organizing teams" has not been realized.
We have a lot of communication problems, especially technical cross team communication. The development process wants to move much faster than the information actually flows, and if the information does actually flow what is communicated is wrong/incomplete. So what ends up happening often is that teams choose to operate in their own bubble.
Another issue is having common direction across all teams, while also allowing teams to operate autonomously. That common direction is missing so you end up with work from one team being very different from work by another team, and in a system that integrates a lot of different components it is awkward to navigate and work in.
The above, among other things, brings out "2nd order effects", like strained inter-team relations, to put it lightly (so there is an additional policing aspect to contend with there as well).
We have a System Architecture group (as defined by SAFe) but their time seems to be consumed by meetings and managing information flow and coordination across teams. There is also a "shadow hierarchy" (as others have mentioned thus far on this thread) that has emerged, and that helps a little, but it's really a poor solution.
Curious on anyone else's thoughts/experience here.
The place I work recently restructured from a more traditional hierarchical structure to SAFe - so the business has a well defined hierarchy, while engineering teams are completely flat. Almost 4 PI's on (~9 months) the promise of "self organizing teams" has not been realized.
We have a lot of communication problems, especially technical cross team communication. The development process wants to move much faster than the information actually flows, and if the information does actually flow what is communicated is wrong/incomplete. So what ends up happening often is that teams choose to operate in their own bubble.
Another issue is having common direction across all teams, while also allowing teams to operate autonomously. That common direction is missing so you end up with work from one team being very different from work by another team, and in a system that integrates a lot of different components it is awkward to navigate and work in.
The above, among other things, brings out "2nd order effects", like strained inter-team relations, to put it lightly (so there is an additional policing aspect to contend with there as well).
We have a System Architecture group (as defined by SAFe) but their time seems to be consumed by meetings and managing information flow and coordination across teams. There is also a "shadow hierarchy" (as others have mentioned thus far on this thread) that has emerged, and that helps a little, but it's really a poor solution.
Curious on anyone else's thoughts/experience here.