Mesmo com todo o avanço no estudo da engenharia de software, ainda é comum nos depararmos com erros na implementação de sistemas. Muitos pesquisadores acreditam que o uso de práticas e métodos largamente estabelecidos e testados realmente ajudaram na redução da ocorrência de “bugs” nos programas, entretanto, defendem que acabar por completo com os erros de desenvolvimento é uma tarefa impossível, e que o sistema só se torna realmente estável com o seu uso constante e correção frequente dos erros.
Este, inclusive, é um dos principais motivos pelos quais o setor bancário ainda mantém em funcionamento seus sistemas que foram desenvolvidos a várias décadas. Apesar de algumas vezes ainda utilizarem metodologias e técnicas consideradas hoje como arcaicas, os anos de utilização destes sistemas os fizeram extremamente seguros e confiáveis. A mesma lógica é encontrada nos softwares embarcados em aviões, que, após passar por anos de utilização, chegou a um estágio de estabilidade e confiabilidade, o que faz as empresas não quererem assumir o risco de introduzir novos componentes de software.
Esta preocupação com a ocorrência de erros é extremamente justificada. Imagine, por exemplo, o que poderia representar um erro no sistema bancário ou no software de controle de aviões. Os prejuízos financeiros poderiam ser incalculáveis, além de que milhares de vidas poderiam ser perdidas.
Para exemplificar o impacto que pode advir de um problema de software, listamos abaixo alguns dos mais conhecidos bugs da história.