'In a letter to IEEE Computer, Steven Rakitin expressed cynicism about agile software development, calling it "yet another attempt to undermine the discipline of software engineering" and translating "Working software over comprehensive documentation" as "We want to spend all our time coding. Remember, real programmers don't write documentation."'
what is even more important is that your infrastructure should be consistent and self documenting (thanks to Configuration Management this is really easy).
Having a solid infrastructure with failure mode and behaviour that is expected saves a ton of hassle and makes ops "easier".
most of the time, having everything redundant to the level that stuff doesn't break is simpely not possible, so its better to make it break reliably. (a good example of this is hard crashing applications on errors which could manipulate data, instead of trying to continue. This makes your failure behaviour consistent across the enviroment).