I'm a developer, so I understand (a bit) how computers work, and how softwares work and fail.
In all softwares I've dealt with (as a developer or as a user), I've always seen small or huge bugs:
- Even in systems well designed/implemented you encounter design/implementation bugs.
- Even sites/softwares exceptionally well developed (high-skilled engineers and/or high-budget projects) are subject to problems (StackOverflow is down from time to time, a big Web company database may fail with a few seconds/minutes data loss despite a good mirroring technology, a virus may corrupt files at an e-commerce or social site, etc.).
- Even in the medical industry, we see from time to time bugs or other important problems leading to a serious outage.
- Even embedded systems in space rockets may have bugs leading to the destruction of the rocket.
However, with banking systems, this seems to never occur:
- I've never heard about data loss with credit card transactions.
- I've never heard about an ATM failing to provide a customer with cash because the back-end is down (the ATM may be broken, but it's always because of a fault on the ATM side).
- I've never heard about an online bank account failing to report the exact list of operations (the Web site may be down, but the data is always accurate at the end).
- I've never heard about a virus corrupting banking information resulting in an actual data loss.
- And even when I think about the old days, when my parents used to receive paper versions of their bank reports, in the 80s (and I assume the same was true in the 70s), there was no error at all.
How could the banking system be the only one perfectly error-proof, since the early ages of computer science, while all other systems fail from time to time?
This is even more surprising when you consider the amount of interoperability you need accros all banks and countries! And this works fine since 10s years.