It’s important not to get too hung up on labels or classifications. At the end of the day, my objective is to get developers working and testing in an environment that is as close to production as possible, as painlessly as possible. The closer to production they get, the more reliable their software will be. The more painless it is for them, the more happy and productive they will be. Productive developers creating reliable software are more likely to generate profit.
“You build it you run it” is fine, provided “run it” isn’t so difficult that it erodes dev productivity because they’re spending more time “running” and less time “building”. “Platform engineering” is fine, so long as it doesn’t abstract devs so far away from production that they end up developing for the abstraction and not the “real world” — that’s just another variant of “works on my machine”. Also, one must keep forefront the idea that the platform serves the product and isn’t the product itself. If your dev team is having to adapt itself to the platform (seen it happen!), then you’re sacrificing productivity. SRE is a critical function, but if SREs take production in a direction that becomes increasingly difficult to approximate in development, you will again end up with variants of “works on my machine” problems.
These hazards become increasingly difficult to avoid as the organization scales upwards and engineers have to become more and more specialized. That’s why I get more satisfaction out of working with smaller orgs… ;-)