... soweit kenne ich mich aus, daß ich weiß, daß es solche Programmierer bei hinreichend komplexer Software nicht gibt.
Hallo zabki,
sehr gut. Es war übrigens einmal der interne Werbe-Slogan eines meiner früheren Arbeitgebers, allerdings ist es dann den IT-Leuten offenbar doch gelungen, das Management dahingehend zu überzeugen, dass der Slogan von einem Tag auf den anderen verschwand.
Ich persönliche habe nichts dagegen, wenn das Management mal einen Sachverhalt zu optimistisch beurteilt, solange sie dann aber offen sind, den Input ihrer Fachleute zu übernehmen - für mich ist das ein Zeichen von Professionalität und auch von Vertrauen.
Ok, also fehlerfreie Software gibt es nicht. Es gibt zwar Methodiken, schon frühzeitig Fehler zu vermeiden, und es gibt auch sehr wirkungsvoll Methodiken wie Code-Reviews oder statische Analysen, um Fehler schon vor dem ersten Programmablauf zu erkennen - und wenn man diese Code-Reviews sehr seriös und auf verschiedene Weisen durchführt und kombiniert, so gelingt es tatsächlich, schon frühzeitig über 95% aller Fehler zu erkennen, aber eben - es verbleiben Fehler.
Und auch mit sehr sorgfältigen dynamischen Tests, mit systematischen Testverfahren und explorativen Testverfahren auf Unittest-Stufe, auf Integrationstest-Stufe und auf Systemtest-Stufe wird man zwar zahlreiche weitere Fehler eliminieren können, aber eben doch nicht alle. Und realistischerweise werden welche verbleiben, weil einfach niemand an manche absurd anmutende Praxis-Situation gedacht hat, allein schon deswegen, weil er soviel Know-How hat, dass er gar nicht mehr auf die Idee kommt, ein Anwender könnte sowas falsch machen.
Vielleicht hat man bei Tesla alle Testautos, die bei den Kreuzungen im Testgelände mit verschiedenen Geschwindigkeiten die Spur kreuzen, dunkel lackiert oder zu Uhrzeiten durchgeführt, an denen die Sonne nicht so am Himmel stand, dass der Sensor eine weisse Seite nicht erkennen konnte.
Es braucht also Praxis-Tests. Im Übrigen ist es ein Irrglaube, eine Beta-Version sei eine "unreife" Version - das sind bereits
ausgezeichnet getestete Versionen !
Wie auch immer: man ist sich bei Beta-Tests der Risiken bewusst und dann muss man eben "redundant" arbeiten, damit noch nicht korrekte Verhaltenweisen des Systems alternativ bearbeitet werden können. Ein unabhängig programmierter zweiter Autopilot könnte zwar einen bedeutenden Beitrag zur Quaitätssicherung leisten und wird auch bei AKW oder Flugzeugen eingesetzt, ist aber sehr teuer. Aber der Mensch, der des Autofahrens mächtig ist, ist ebenfalls ein sehr gutes alternatives System, vermutlich dem unabhängig entwickelte Autopiloten sogar weit überlegen. Aber natürlich nur, wenn er die Sicherheitsvorkehrungen einhält.
Im Übrigen wäre der Beizug eines zweiten Menschen, der auf so einer Testfahrt ebenfalls aufpasst, ebenfalls eine hochwertige qualitätssichernde Massnahme.
Bei Flugzeugen hat man übrigens beides - unabhängige Systeme und unabhängige Menschen.
Freundliche Grüsse, Ralf