Warum geht Software immer kaputt?

Peter Hogenkamp Peter Hogenkamp on 8. Juli 2019 08:40:36 MESZ

Otto's wollte zu seinem Jubiläum ein Auto verlosen, aber versehentlich wurden 770 vermeintliche Gewinnerinnen und Gewinner benachrichtigt.

programming-1857236_1280Finde den Fehler! (Bild: Lorenzo Cafaro auf Pixabay )
 
Anfang dieser Woche erreichte uns eine neue lustige Meldung aus der machmal recht kleinen Welt des Internets: Der Schweizer Discounter Otto's wollte zu seinem 40-jährigen Jubiläum in einem Online-Bingo-Gewinnspiel als Hauptgewinn ein Auto verlosen, aber versehentlich wurden 770 vermeintliche Gewinnerinnen und Gewinner benachrichtigt. Die Bingo-Software hatte alle Personen, die sich am frühen Sonntag, dem letzten Tag des Gewinnspiels, zwischen Mitternacht und 1.30 Uhr – vermutlich wurde um diese Zeit der Entwickler aus dem Bett geholt und hat den Stecker gezogen – auf der Aktionswebsite ottos40.ch eingeloggt hatten, fälschlich über den Gewinn benachrichtigt. Und auch wenn jede schnell hätte merken können, dass auf dem eigenen Bingo-Schein noch Treffer fehlen, waren natürlich einige erst sehr erfreut und dann entsprechend sauer.
 
Ottos-Online-Bingo_GIF_anim_kurz_ezgif

Man hat das Gefühl, in letzter Zeit häufen sich die Aussetzer. Überall liest und hört man von kaputter Software, wobei es sehr unterschiedliche Arten mit dramatisch unterschiedlicher Reichweite und Ernsthaftigkeit gibt: von Menschen, die die Rechnung ihrer Nachbarn erhalten, über Lime-eScooter, bei denen in voller Fahrt die Bremse blockiert, bis zu nagelneuen Flugzeugen, die abstürzen, weil Boeing Schwächen der Hardware mit Software kompensieren wollte, wobei womöglich hinzukam, dass die Software billig in Indien programmiert wurde. Und dann stiegen diese Woche auch noch die Bilder im Facebook-Universum inkl. WhatsApp und Instagram aus.

Ich habe mit einer Expertin (Kathrin Passig, Autorin und nebenbei Entwicklerin, Autorin des Buchs «Weniger schlecht programmieren») und einem Experten (Reto Kleeb, Scope-CTO) zum Thema gesprochen bzw. geschrieben und beide gefragt: Wieso geht Software eigentlich immer kaputt? Mein Gespräch mit Reto haben wir spasseshalber aufgezeichnet und es als unseren ersten Quasi-Podcast (17:03 min., Hochdeutsch/Zürichdeutsch, siehe weiter unten) hochgeladen.

Natürlich können wir diese Fragestellung unmöglich in einem kurzen Newsletter abhandeln. Aber am dankbar simplen Otto-Beispiel können wir einige Punkte nachvollziehen:

  • Reto weist als erstes darauf hin, dass es ohnehin keine fehlerfreie Software gäbe – die Frage sei nur, als wie schlimm wir die Fehler wahrnehmen. Auch beim Otto-Bingo hat ja vermutlich das Ausfüllen des Bingo-Scheins korrekt funktioniert. In die Zeitungen hat man es dann mit einem kleinen, aber weitreichenden Bug geschafft.

  • Fast schon eine Binsenweisheit, die wir aus allen Projekten kennen, aber doch immer wieder relevant ist das magische Dreieck: «Zeit, Kosten und Qualität stehen in Konkurrenz zueinander.» Ohne jemanden pauschal verdächtigen zu wollen, können wir uns vorstellen, dass der preisbewusste Discounter dem oder den Entwicklern ein knappes Budget – finanziell und/oder zeitlich – für das Jubi-Bingo vorgegeben hatte, und in diesem Rahmen bewegte sich dann das Ergebnis.

  • Beide weisen darauf hin, dass Software in einem komplexen Umfeld lebt, das sich immer wieder ändern kann: Der Hoster ändert die Serverkonfiguration oder spielt ein  Betriebssystem-Update auf, ein Partner verändert eine Schnittstelle. Oder Kathrins Software geht kaputt, «weil ich aus Faulheit irgendwelche Dateipfade oder dergleichen an dreissig verschiedenen Stellen direkt in den Code geschrieben habe».

  • Insofern kann es zwar theoretisch Beispiele für den Spruch «Never change a running system» (Reto vermutet, ein Strassenverkehrsamt in Nebraska läuft noch auf einem Commodore 64) geben, aber Kathrin ist überzeugt, dass es genau umgekehrt sei: «Wenn man Software ein paar Jahre nicht benutzt, ist sie beleidigt und hört schon allein deshalb auf zu funktionieren. Oder weniger abergläubisch ausgedrückt: Während der Nichtbenutzung vergisst man die vielen Rahmenbedingungen, auf die diese Software zu ihrem Funktionieren angewiesen war. Sofern man die überhaupt jemals kannte.»

  • Bei Otto's kam wie gesagt hinzu, dass das fehlerhafte Verhalten erst am letzten Tag des Wettbewerbs auftrat, an dem der Entwickler automatisch den Gewinner benachrichtigen wollte, womöglich damit er nicht um Mitternacht selbst den Knopf drücken musste. Es ist auch für uns Laien plausibel, wie man den Zieleinlauf weniger gut testet als den Regelbetrieb Schein ausfüllen.

Soweit einige Gründe, es gäbe wohl noch zahllose weitere. Eine andere interessante Frage haben wir damit noch gar nicht angeschnitten: Wie geht man eigentlich als Anbieter damit um, wenn einem die Software aussteigt?

Auch wenn der Otto-Fail natürlich keineswegs episch war, hat man sich kommunikativ nicht gerade mit Ruhm bekleckert, indem man nur eine Medienmitteilung herausgab, die man als PDF auf die Aktionswebsite stellte und bei Facebook als Bild (!) veröffentlichte – in den Otto-Blog hat sie es aber nicht mal geschafft, dort steht oben noch der schöne Beitrag «8 Hausmittelchen, mit denen du lästige Klebereste problemlos loswirst». Ungeschickt daran ist unter anderem, dass man unweigerlich stattfindende Rückmeldungen auf externe Plattformen wie Facebook und 20 Minuten (131 Kommentare) auslagert, wo man sie nicht moderieren kann. 

 

In voller Länge: Warum geht Software immer kaputt?

 

Unsere Leseempfehlungen zum Thema:

 

Artikel bei 20 Minuten, der die Story um die Anekdote der Familie von B. F. erweitert: «Als wir nach Mitternacht die unglaubliche Botschaft erhielten, haben wir uns so über das neue Auto gefreut, dass wir am nächsten Tag Freunde und Nachbarn zu uns eingeladen haben», so der Vater. Sie hätten den ganzen Tag auf ihre Kosten gefeiert und mehrere Hundert Franken ausgegeben. «Als wir dann gegen acht Uhr abends das Mail sahen, konnten wir es nicht glauben.» Die 131 Online-Kommentare zeigen die übliche Bandbreite von «Selbst schuld» bis «Unbedingt Strafanzeige einreichen!!!».

Ein schönes Beispiel von Kathrin Passig aus der Entwickler-Community Stackoverflow. Auf meine Frage nach der Kategorisierung von kaputter Software nannte sie drei: 1. Software, die schon immer kaputt war. 2. Software, die so einigermassen funktioniert, solange nicht der Chef in einem karierten Hemd den Raum betritt (ein realer Fall aus der Praxis, siehe Link). 3. Software, die zwar lange funktioniert hat, aber sobald sie kaputtgeht, merkt man beim Debuggen, dass sie eigentlich überhaupt noch nie funktionieren konnte und es unerklärlich ist, warum sie es je getan hat.

Noch ein Input von Kathrin Passig: «Das schöne Conway’s Law besagt, dass Unternehmen immer nur Systeme – also in dem Fall Software – hervorbringen können, die die interne Unternehmensstruktur widerspiegeln. Wenn es drei zerstrittene Abteilungen gibt, wird die Software drei Teile haben, die schlecht miteinander kommunizieren.

 
 

Topics: In eigener Sache, Software, Scope-Newsletter Peter