This is accurate. I have unfortunately been involved in a situation very similar to the one the article describes. Release is signed off on, we go live and millions of records are suddenly corrupted affecting thousands of people and essentially shutting down an industry for a while. Engineers are only as good as the QA department and the QA department is only as good as the time and resources they are provided. This is compounded when a company has to deliver in order to get paid so they eventually reach a point; where hamstrung by a bad original contract, they are under massive pressure to deploy and just pull the trigger.
Software is very hard, many engineers are not sufficiently experienced at what they are doing and its hard even for those that are. Further complicating this is a cost issue, quite often large scale applications utilize resources that cost a lot of money on the production side and so to save money, utilize a considerably smaller data and infrastructure set and on the testing and development side. Queries are optimized against this smaller data set. The application goes live and suddenly an application tested against a cherry picked data set of x records is trying to handle 10,000 times the data. Then bad things happen.
Software is very hard, many engineers are not sufficiently experienced at what they are doing and its hard even for those that are. Further complicating this is a cost issue, quite often large scale applications utilize resources that cost a lot of money on the production side and so to save money, utilize a considerably smaller data and infrastructure set and on the testing and development side. Queries are optimized against this smaller data set. The application goes live and suddenly an application tested against a cherry picked data set of x records is trying to handle 10,000 times the data. Then bad things happen.