• simon.crick (9/25/2013)

    However, I still believe that any system, no matter how large or complex, can always be broken down into simple components that can easily be coded correctly.

    Then your point of failure becomes the communication between all these simple little components. It only takes a mistake in documentation for one part of your program to call another with incorrect parameters, and suddenly the whole thing comes crashing down in your lap. In addition, it's always possible for code to produce unexpected results even when it's entirely syntactically correct--compilers and interpreters are written by programmers who make mistakes, just like your own code is!