Trzeba sobie uświadomić, że błędy w aplikacjach są — niczym śnieg na biegunie — elementem nieodłącznym. Wielu programistów często z pośpiechu, lecz także z braku wystarczających umiejętności, marginalizuje problem błędów w aplikacjach. Wiele firm, mimo ogromnego zaangażowania setek programistów oraz dużych nakładów finansowych, wciąż nie jest w stanie pozbyć się wszystkich błędów (np. Microsoft), bez przerwy publikując nowe poprawki do swoich produktów. Tylko program zawierający trzy linie kodu źródłowego może być pozbawiony jakichkolwiek błędów, lecz w przypadku skomplikowanych, rozbudowanych aplikacji uniknięcie niedoskonałości nie jest możliwe. Dzieje się tak dlatego, że człowiek jest tylko człowiekiem i po prostu się myli. Pozornie aplikacja może zachowywać się normalnie, a błąd może tkwić gdzieś indziej. Nie mówię tutaj bowiem o błędach wykrywanych w czasie kompilacji, które są najłatwiejsze do usunięcia, a sprowadza się to najczęściej do drobnych poprawek, często bardzo śmiesznych — typu dopisanie średnika na końcu wyrażenia. Najtrudniejsze do wykrycia są błędy zagnieżdżone w kodzie, kiedy program pozornie działa prawidłowo, lecz nie do końca wykonuje operacje zamierzone przez użytkownika. Warto, aby Czytelnik w tym momencie dobrze zapamiętał stwierdzenie, iż program zawsze działa prawidłowo, a gdy nie działa zgodnie z naszymi oczekiwaniami — jest to zwyczajnie wina projektanta.