Tak mi to tak připadá, že si autor nechal problém "vysvětlit" některým z rádoby programátorů, kteří se takto vymlouvají a pak nám to zde prezentuje jako obecnou pravdu.
Když bych se pokusil o shrnutí příčin chyb SW:
- chyby v počátku návrhu, kdy se opomene zahrnout určitá podmínka
- následné přidání nového kusu kódu s nedůsledným zkontrolováním
- špatné kódování jako takové (sem potom patří výmluvy neschopného programátora an složitost rozhraní)
- a samozřejmě libovolné kombinace
Samozřejmě je ale chudák programátor, který používá knihovny libovolného systému. Tyto knihovny jsou totiž blackbox (i když je k nim zdroják, tak je nebude do mrtě studovat - na to není čas) a zde se opravdu může přihodit souhra náhod. Nejhorší je to samozřejmě při multivláknovém programování, kdy spousta kódu běží najednou, k tomu si vlastní vlákna vytvářejí i knihovny...