Yesterday, Twitter was hit with a "Cascading Bug" as described in this blog post:
A “cascading bug” is a bug with an effect that isn’t confined to a particular software element, but rather its effect “cascades” into other elements as well.
I've seen this kind of bug, on a smaller scale of course, on some projects I've worked on. They can be difficult to identify in dev/test environments, even within a test driven development environment.
My questions are...
What are some strategies you use, beyond the basic TDD and standard regression testing, to identify and prevent the potential trouble points that might only occur in the production environment?
Does the presence of such problems indicate a breakdown in the software development process or simply a by-product of complex software systems?