I Just read Timothy Fitz’s post on Continuous Deployment:
“This is a software release process implementation of the classic Fail Fast pattern. The closer a failure is to the point where it was introduced, the more data you have to correct for that failure. In code Fail Fast means raising an exception on invalid input, instead of waiting for it to break somewhere later. In a software release process Fail Fast means releasing undeployed code as fast as possible, instead of waiting for a weekly release to break.”
Though you’d definitely need additional infrastructure to handle the consequences of failures (i.e., ways to undo side effects), this more or less makes sense to me.