...for things that align with that silo structure. If you try to build new things that necessitate conceptual integrity across org boundaries, then teams that think this way will first debate ownership and responsibility breakdown before it's even clear how the thing should work at a high level. I've seen too many examples of horrible engineering done by silo'ed teams, where they build down blind alleys that turn out to be unmaintainable and net-negative producing over time because they approached it based on what services they could touch rather than what made sense from an overall system and UX perspective.
Obviously "breaking down silos" involves greater coordination and communication overhead, and thus is harder to pull of successfully, so it's a tradeoff that should be weighed carefully in the context of business needs.
Most of the most successful projects and incredible feats of engineering happen by tiny teams full of very talented people NOT a 4-layer management pyramid of people who are here for a nice stable 9-5. Not to say you can’t be successful with WLB but you need a certain fire in your gut and a hunger to execute as a small and efficient team.
Too often do people just throw more time and/or bodies at a problem to make it go away.
At the same time, seems possibly easy to game? If two friends make unnecessary suggestions, and stop each other's suggestions.
If it becomes well known that this question is being asked?
Not much work required to pretend one stopped sth from getting built
Google in the mid aughts still had tightly aligned teams with clear priorities. But they were also transparent in what they were doing, and open to collaboration where it made sense. Teams felt empowered to reject requests that would trip them up, but also empowered to do small things to help another team (and got rewarded for doing so).
The reality at a large org is you’re going to have dependencies. In my experience, highly-siloed orgs have tremendous coordination barriers to even the smallest request across teams. Your one-line API change didn’t make it onto your dependency’s roadmap this quarter? Too bad, try again in three months.
And I’m not sure we have the same understanding of “fiefdom.” I’m talking about the pattern where middle managers try to grow their headcount as large as possible without a clear purpose other than building status within the org. This often manifests as disparate and disjoint teams aggregated under a leader who has little understanding or care as to what exactly it is they’re doing. It is hard to find value in this arrangement.
Isn’t this solved by having cross-team project managers who can perform this coordination?
I certainly agree that the failure case you describe is possible, but it’s also solvable (in my experience).
This is one of the key problems of working across teams, and its impact is amplified by a culture that says you should turn everything into a cross-team project that you possibly can. The whole company grinds to a near halt on these sorts of blockages.
They can famously work, e.g. Skunkworks. But they also decay into fiefdoms.
It seems like you're talking about team nimbleness and cohesiveness, which I want to say is orthogonal.
It’s hard to believe you could have a nimble and cohesive team at the scale of a large corporation, because the number of communication edges gets silly. Dunbar’s number and all that. You can have team nimble and cohesive teams within large corporations. But having several distinct networks is otherwise known as being siloed.
Step one: build Aa and Bb with the A and a people together, and the B and b people together.
Step two: realize you need AB and ab.
Step three: keep the same organizational structure, and try to get the A team to work with the B team ten managers and five hundred miles away.
But they can also describe skunkworks/internal startup/etc. teams doing their own thing without a lot of interference or having to constantly coordinate with every other organization in the company.
It can go both ways.
But even without that in mind, breaking silos can also put the right people in the loop - for every successful silo you mentioned, I bet there is a successful company which was able to have a good mix of people from different teams.
For me it always boils down to: what does the company want? Who they want to be in the next 3-5-10 years? Based on this you need to have proper management training. Without that, they simply throw engineers at the problem, which as you mentioned, can backfire. If you as an organization are able to scale well (even with some small and monitored silos) I don't see why it should be a problem.
Reality is: companies want to be able to scale like Google for their pet projects, fire fast upon need, have a lot of teams all with the performance of 10x engineers, etc etc. That's the BS they write on their about page.
Do they have agile coaches? Do they have people that help them organize work? Skilled people, not random guy that developed software all his life and now he/she wants to try something new, and he/she read a book over the weekend or listened to some podcasts..
People have high expectations by paying little. It takes effort to do things right. That's in my opinion the truth.