So, here's my contrarian take on Why Trunk-Based Development Is Great But Probably Won't Work For You. Buckle up, it's a long one.
From time to time I talk about, or boost someone else's discussion of, "classical" continuous integration/trunk-based development/push-to-master/whatever. I do this because I've personally worked like this and I genuinely think it's a marvelous way to write software.
I've also, at this point in my career, failed—a bunch of times!—to bring this technique into practical use on the teams and organizations I've worked with. As a result, while I still do it myself, I don't focus as much on encouraging it in others.
The technoculture that's presently in vogue is what I think of as async/individual—optimize for the individual, performance-manage the individual, decouple the individual from others so they can be their best, most productive, most heroic selves.
This is in contrast to what I think of as sync/team—a culture that leans into interdependence and collaboration. If you've never worked on a team that collaborates very closely every day for months or years on end (and likes it) you've likely not experienced a team like this.