Von mir erstmal ein Lob für die Ehrlichkeit und Offenheit.
Aber ein dicker Negativpunkt für die Fehlerart. Eine Software, welche abk**kt, nur weil es einen Timeout gibt, das ist wirklich peinlich. Auch wenn es sehr schwer zu simulieren ist.
Wenn ich Programmiere, dann darf ich nicht vom Idealfall ausgehen. Natürlich ist das schön einfach, ich kenne das aus eigener Erfahrung. Aber ich MUSS alle Arten von Fehlern abfangen. Timeouts und Datenmüll sind das schlimmste. Macht mal RS232 und die Quarze passen nicht ganz zueinander. Was dann passiert ist das schlimmste was man abfangen kann.
Aber genau das muss man testen UND im Quelltext checken. Gerade Schnittstellen können immer alles möglich an Unsinn machen. Dafür ist natürlich auch wichtig, daß die die Landesoftware möglich klein halte. Fotokomprimierung für hübsche Bilder hat da z.B. nichts drin zu suchen, das muss auf einer anderen Hardware laufen. Die Nasa hat das bei Curiositiy ja auch so gemacht. Der Hauptrechner macht alles, aber er darf abschmieren. Und wenn er das macht, übernimmt ein "Nebenrechner", welcher nur noch Funken kann, Dateien vom Hauptrechner ändern kann (Updates) und mehr nicht. Dieser Nebenrechner muss natürlich 100 mal gecheckt werden, der darf niemals ausfallen.
Mein schlimmster Fehler den ich hatte, passt thematisch genau dazu. Ich habe eine fertige Software verwendet. Die nehmen viele, da kann es wenig Fehler geben. Dachte ich. Sie ging bei mir bisher immer sofort. Jetzt hatte ich aber einen schlechten Quarz erwischt, die Minute hatte mit dem Quarz nur noch 59 Sekunden. Eigentlich egal, dann läuft ja alles ein wenig Langsamer. Aber nicht, wenn man das Funksignal DCF77 aus Frankfurt empfangen möchte. Wenn die Minute nur 59 Sekunden hat, ist das Signal immer und immer wieder ungültig. Hier kommen dann in der Minute für meine Software 61 Signale an. Obwohl es ja nur 60 sein dürfen. Ein Schnittstellenfehler, welcher nicht korrekt abgefangen wurde. Es zwar kein Crash produziert, aber auch kein Fehler gemeldet. Es wurde einfach nochmal probiert. Immer und immer wieder.
Solche Schnittstellenfehler sind schwer, gerade weil das Timing ja zu 95% stimmte und die Daten immer gut aussahen. Nur kamen halt zu viele Daten. Das hätte die Software eigentlich nach 5 bis 10 Sekunden Checken können ne Errormessage auswerfen können.
Edit: Nachtrag: @Terminus: Genau das darf niemals passieren. Softwareupdates MÜSSEN Separat vom Hauptcomputer laufen. Es muss hierfür einen Nebencomputer geben, welcher Dateien vom Hauptcomputer tauschen darf, aber seine eigenen nicht. Der Nebencomputer muss Funken können und tauscht nur die Daten vom Hauptcomputer aus, und Rebootet ihn. Jetzt kann kein Softwareupdate mehr Fehler machen. Wenn man davon zwei Stück hat, die sich gegenseitig Updaten könnten, dann kann ich die Nebencomputer auch Updaten, aber wenn ein Update schief läuft, kann ich es wiederholen so oft wie ich möchte.