Naja, so einfach ist das mit der Programmierung nicht. Erstens ist es dem Programmierer nicht möglich alle Konstellationen von eingaben und Daten nachzustellen die einem User so einfallen können und zum zweitens ist es einem Programmierer nicht möglich alle verschiedenen Systemkonstellationen in Hard- und Sofware herszustellen und zu haben. Einige Fehler treten vielleicht auch erst nach längerer Laufzeit auf. Ebend drum macht man z.B. Betatests. Hier stelle viele User Ihre Systeme und sich selbst zur ferfügung um abertausende an zusammensetzungen auszutesten. Und wie man sieht werden immer Fehler gefunden auch wenn die Software die "Hallen" des Programmierers lauffertig verlassen hat. Halt auf seinem System mit dem von ihm angedachten Eingaben und Abläufen. Dies hat also nichts mit dem können des Programmierers zu tun. In vielen Fällen steckt sicherlich auch Ehrgeitz dahinter, aber gerade wenn man die Software Professionell vertreiben will ist es wichtig, das die Software auch möglichst stabiel läuft, sonst würde sich der Markt sehr schnell im nichts auflösen. Weil wer möchte schon eine Software die ständig abstürzt oder gar das ganze System stört?