The type of development written down in the manifesto, and the type of development used by companies as Google or Facebook, is not in any way acceptable for critical systems. Or complex systems.
The worst part is when that interpretation of agile [1] is used for complex systems, like it is by Google or Facebook and similar companies.
Agile works for web services, for small apps, but that’s it.
Anything larger, or more complex, needs planning, thought, and design. And often needs refactoring.
It’s rare that you can build a system where you don’t have issues with concurrency (and need to do timing analyses) or with interactions between multiple different systems.
I’ve seen these issues even when writing tiny projects like an Android app for an IRC bouncer.
And in any serious development, where your code is going to run critical systems for decades, you can’t just work agile.
----------------
[1] "as long as it works, documentation doesn’t matter", or "always have the newest, shiniest, greatest – no matter about plan or software design" – paraphrased from http://www.agilemanifesto.org/