①仕様詰めの甘さ
②開発中の仕様変更
③テストの煩わしさ
④デグレード(修正したプログラムにたいして、修正が原因による別の問題が発生すること)
⑤開発者のスキル

バグ(Bug)の語源:Cobolの設計者であるGrace Hopper氏が作った言葉です。
1945年に発生した、ハーバード大学のリレー式コンピュータ「MarkI」故障原因が、回路に混んだ虫だったことから・・・・・・