> Both!

Strange,

>Nuclear submarines are tiny because aircraft carriers are large. And this means submarines are a good investment.

Not sure what this has to do with Scrum or the low complexity of Scrum, which fully can be explained in a small book or a week of training.

> This is ignoring reality in many cases. A team might develop something domain-specific, like a natural language processing algorithm, but then later the product requires a web service and a front-end. As a result, management requires specialist machine learning researchers to spend their time writing front-end widgets, because "Scrum says to be cross-functional"

Management actually meant: we don't want to spend more money. They fooled you.

Basic knowledge: a NLP developer is not a front end developer. Yes, you can add and remove people from teams during the runtime of a project.

If your management is too dumb or you are too easily fooled by management, don't blame Scrum.

> In many cases, the different functionalities for a single product should absolutely not be embedded in the same team.

True. But that has nothing to do with Scrum.

> Rather, much like in software design, it's important to separate concerns, and have teams with modular and clearly defined boundaries between their different and complementary skills. Then for a single product, parts of it will be worked on by different teams that each have specialized skill in one area, and can operate independently

Sure, this is how silos in big companies try to work. For small teams this is overkill.

> of each other because it's not muddied by an artificial requirement for "cross-functional" skills.

This is not an artificial requirement. Small teams with cross-functional skills make communication more effective. If you have large problems, then you need to scale that. But that is all basic knowledge.

> Some other times, Scrum-like cross-functionality is good. That's why Scrum is wrong to unilaterally prescribe it for every product and every situation.

Again, basic knowledge.

> Sometimes it's good, sometimes it's bad, and teams need to be empowered to customize according to whatever the case at hand needs, not the unilateral model that Scrum tries to impose.

Scrum does not impose an unilateral model for all projects. You can develop in all kinds of ways and Scrum might not be applicable to your domain/setup. You can even take elements of Scrum - just don't call it Scrum - a daily standup meeting can be useful in many projects.

> But then what do you say to people who have identified successful practices over decades that conflict with Scrum and are mutually exclusive with Scrum's approach. Scrum worked for you. Great. It didn't work for me.

Then don't use it. Simple as that.

> Can you at least admit that some people have earnestly tried Scrum in a situation when Scrum is advertised to work, like iterative software development, and they did not "do it wrong" yet still found that it didn't work for their team?

I already said that you can do perfect Scrum and still fail. You can also succeed without Scrum. It's just more likely to succeed with Scrum in situations like small team (10 people), product development, changing requirements, responsive customer, etc. etc.

Also if your team does not like banana, don't feed them banana.