There is the shocking news of sub-postmasters being exonerated in the UK. Over 700 of them were prosecuted in the last twenty years for fraud and embezzlement and it turned out all these were flaws in the Horizon Post Office software system. Around 70 of them have won in courts with the rest expected to follow. But, the software has cost the lives of several of them - including death, divorce, depression and pain, being shunned in the community and lost jobs with inability to acquire new ones. This has touched negatively 1,000's of people's lives and the compensation rightfully is going to run in the millions of dollars (or pounds) for each of them.
All software is flawed and buggy. There is no perfect software. The lesser the code the lesser the chance of bugs. And to have no bugs, the only option is to have no code at all. Since that is not feasible, software will have flaws. That's a given.
No amount of testing can eliminate software bugs. Because testing is based on human understanding. How much ever scenarios one could imagine, it will be still be limited by scenarios of tests that we have not imagined. And we would know them a priori.
Code in production is the ultimate test. And all production code are running huge amount of tests each day and as they fail by exercising new scenarios that we have not thought of, we get to know about them from those failures.
It is the risk of poorly written software. Recently, due to a software flaw the Hubble telescope was rebooted to use a secondary copy of the software on it to restore it back to an operational state.
The impact of software can take a company down and we have seen situations like that were private enterprise has gone bankrupt due to rouge financial transactions. At least in this case the government (or the Post Office) has taken responsibility for this failure and will work on financial compensations to the impacted. But, this is not sufficient to give back the time and the pain that these people have suffered.
In a follow up post, I shall talk about options that can reduce the probabilities of such things from happening.