Wenn Software-Updates mehr kaputt machen als sie reparieren: Ein persönlicher Erfahrungsbericht mit GIMP 3.0.4

Mit GIMP 3.0.4 wurde aus einem stabilen Werkzeug ein Bug-Monster: blockierte Shortcuts, verwaiste Dialoge, kaputte Export- und Font-Funktionen. Der Release wirkt wie KI-generierter Code ohne echte Tests – ein Beispiel dafür, dass KI, CI/CD und Automatisierung keine menschliche Qualitätskontrolle ersetzen können.

Vor wenigen Minuten habe ich über 1 Stunde 30 Minuten damit verloren, der GIMP-Community auf GitLab mehrere Bugs zu melden. Normalerweise mache ich das gerne, wenn ich auf Fehler stoße – schließlich lebt Open-Source-Software davon, dass Nutzer:innen Rückmeldung geben. Aber diesmal war es anders: Die Anzahl, Art und Systematik der Bugs in GIMP 3.0.4 geben mir ein sehr ungutes Gefühl.

Vor dem Update lief alles perfekt

Mit der Version vor 3.0.4 war ich rundum zufrieden. Alles funktionierte reibungslos, die Bedienung war konsistent, und es gab keine Stolperfallen im Workflow. Eigentlich hätte es kein Update gebraucht. Doch aufgrund des Splashscreens mit der neuen Versionsbenachrichtigung habe ich das Update trotzdem eingespielt – und plötzlich ging nichts mehr wie zuvor.

Ein Update voller Stolperfallen

Die Liste der Fehler ist lang, hier nur ein Auszug:

  • GIMP hat plötzlich einen globalen Keyboard Hook, der selbst außerhalb von GIMP alle Shortcuts wie Ctrl+C, Ctrl+V oder Ctrl+S blockiert (VS Code, VS 2022, Android Studio, Linqpad, Notepad++ usw.)
  • Mehrere Dialogfenster verlieren ihren Kontext und werden zu „verwaisten“ Fenstern, die sich unkontrolliert vervielfachen.
  • Im Export-Dialog wächst Text nicht nach rechts, sondern nach links aus dem Fenster hinaus – und die restliche UI reagiert nicht mehr.
  • Die Font-Auswahl und Größenänderung verhält sich grotesk: Statt den Wert im Feld zu ändern, landet meine Eingabe im eigentlichen Bildtext. (Mein Verdacht: die Beschreibung für Code-generierender KI war nicht eindeutig und missverständlich und dadurch hat der KI die Textfelder von Font-Eigenschaften mit dem Text im Bild (Layer) verwechselt. Das passiert oft und ist typisch für Coder mit sehr wenig Erfahrung in Coding und Software-Engineering)
  • Nach dem Rotieren oder Einfärben von Ebenen entstehen nach dem Zuschneiden plötzlich verschobene Layer-Kopien.

Das sind keine Kleinigkeiten, sondern fundamentale Fehler, die das Arbeiten massiv behindern.

Mein Verdacht: KI-Code ohne echte Tests

Die Häufung und Art dieser Bugs weckt bei mir einen starken Verdacht:

  • Es wirkt, als wären viele Code-Änderungen automatisiert entstanden, möglicherweise mit Hilfe von KI-generiertem Code. Z.B. durch unzureichende, nicht-eindeutige und missverständliche Beschreibung für KI, wurde ein Code generiert der zwar mit kein(e) einzige(r) Compiler-Fehler/Warnung übersetzt werden (und laufen) kann, aber sich bei der Nutzung völlig falsch verhält.
  • Darauf aufbauend hat man sich blind auf CI/CD-Pipelines verlassen, ohne dass echte Menschen die Software in Alltagsszenarien getestet haben.
  • Das Ergebnis: ein Release, das wie ein Krebs-Geschwür über die Community ausgerollt wurde.

Natürlich ist das nur mein Eindruck als Nutzer (mit 17+ Jahren Erfahrung in Software-Engineering und Entwicklung). Aber die Systematik der Fehler lässt kaum an Einzelfälle glauben.

KI ersetzt weder Menschen noch Tests durch Menschen

Ich möchte hier einen Punkt betonen: KI kann helfen, Code schneller zu schreiben oder Vorschläge zu liefern. Aber ohne menschliche Qualitätskontrolle, manuelles Testen und kritisches Hinterfragen wird jede Software zur Zumutung. Continuous Delivery (CD) und Continuous Integration (CI) sind mächtige Werkzeuge – aber sie ersetzen nicht das Verständnis für Usability und händisches Durchklicken, das echte Fehler sichtbar macht.

Fazit

Software-Updates sollten Verbesserungen bringen, nicht Regressionen. Im Fall von GIMP 3.0.4 war das Gegenteil der Fall. Ich musste auf die vorherige Version zurückrollen, weil grundlegende Dinge nicht mehr funktionierten.

Mein Appell an alle Entwickler:innen (egal ob Open Source oder kommerziell):

  • Nutzt KI, aber lasst sie nicht allein entscheiden.
  • Vertraut auf CI/CD, aber ergänzt sie mit echten Tests durch Menschen.
  • Denkt an eure Nutzer:innen – sie verlieren sonst Stunden ihrer Lebenszeit für Dinge, die gar nicht hätten passieren dürfen.

Ubuntu kopiert Mircosaft

Vor etwa einem Monat berichtete ein Freund und ehemaliger Studienkollege in einem Jitsi-Online-Meeting enttäuscht von der „do-release-upgrade„-Funktion unter Ubuntu Linux. Er klagte über ein kläglich gescheitertes Release-Upgrade, das aufgrund zahlreicher Fehler abbrach, die vorgenommenen Änderungen teilweise rückgängig machte, jedoch ein beschädigtes und nicht mehr funktionstüchtiges System hinterließ.

Ein anderer Freund und Admin wollte daraufhin meine Meinung als langjähriger „Linux-Experte“ hören. Ich sehe mich zwar nicht als den Linux-Experten, aber ich sammle seit 1998 (begonnen mit Corel Linux) Erfahrungen im Umgang mit Linux-Systemen. Seit meiner ersten Begegnung mit Ubuntu Linux 4.10 LTS (etwa 2004 oder 2005) war ich begeistert. Im Vergleich zu anderen Distributionen wie SuSE (6.3), Mandrake, Red Hat oder Debian erkannte Ubuntu die Hürden, mit denen selbst IT-Fachleute und Informatikstudierende zu kämpfen hatten: aufwändige Installationen, komplexe Konfigurationen, zeitraubende Problemlösungen.

Ubuntu stellte nicht nur ISO-Images kostenlos online zur Verfügung, sondern versendete auch gratis CDs in 10er-Packs – nicht nur für Studierende. Die Installation war intuitiv, verständlich und angenehm vertraut – ähnlich wie Windoof von Mircosaft. Bereits während der Installation wurden angeschlossene Peripheriegeräte meist automatisch erkannt, die passenden Kernel-Module installiert, und das System war nach der Installation einsatzbereit: mit OpenOffice (dem Vorgänger von LibreOffice), Firefox und weiteren Anwendungen für Büro- und Multimedia-Zwecke.

Aktuelle System- und Softwareupdates konnten optional schon während der Installation mitinstalliert werden, sodass man sofort ein vollständig aktualisiertes System nutzen konnte. Auch spätere Updates ließen sich unkompliziert finden und installieren – sofern man keine exotische oder besonders individuelle Hardware benutzte.

Kurz gesagt: Man installierte Ubuntu und konnte anschließend direkt produktiv arbeiten – ganz im Gegensatz zu vielen anderen Linux-Distributionen, die ihre Nutzer regelmäßig zur manuellen Nacharbeit zwangen.

Randnotiz: Meine frühere Lieblingsdistribution war Mandrake Linux (heute Mandriva), die mit KDE als grafischer Oberfläche geliefert wurde und die meisten Peripheriegeräte sowie Anwendungen direkt einsatzfähig mitbrachte. Zuvor hatte ich SuSE Linux (ab Version 6.3) verwendet, mich jedoch aus Frust mit Version 8.x oder 9.x davon verabschiedet. Einziger Vorteil damals: gute deutsche Dokumentation und umfangreiche Hardwareunterstützung, etwa für Wacom-Tablets, HP-Drucker und Scanner.

Gestern wagte ich auf einem wichtigen Ubuntu-Server den Befehl „do-release-upgrade“ – und wurde enttäuscht. Der Upgrade-Prozess erkannte zahlreiche Probleme und versuchte, das System in den Ursprungszustand zurückzusetzen. Trotzdem zeigte das System nach Abschluss an, dass es auf die neueste Version aktualisiert sei. Wie kann das sein? Nur der Kernel, einige Dienste und wenige Anwendungen wurden aktualisiert – eine vollständige Rücksetzung fand offenbar nicht statt.

Ich war gezwungen, das gesamte System manuell zu prüfen: Funktionieren alle Dienste? Wurden durch Up-/Downgrades Sicherheitslücken erzeugt? Das kostete mich mehrere Stunden.

Offenbar folgt auch Ubuntu inzwischen dem Prinzip „Tippen first, Bedenken second!“ – ganz wie die Kollegen bei Mircosaft in Redmond, wo Copy-and-Paste-Entwicklung per Google oder ChatGPT zur Praxis geworden zu sein scheint.

Als ehemaliger Verantwortlicher für die Update-Entwicklung von über 16.000 einarmigen Banditen (Spielautomaten) und 4.500 Point-of-Sale-Systemen weiß ich, wie herausfordernd robuste Update-Routinen sind – insbesondere bei heterogener Hardware und Software für verschiedene Kunden. Zum Glück war unsere Umgebung überschaubar: vier Betriebssysteme (Windows NT 4, 2000, XP und DOS 7.x), bekannte Hardwarekonstellationen.

Ein Ausfall konnte teure Folgen haben: Im September 2007 hatten zwei Geräte in einem Londoner Shop innerhalb einer Woche rund eine Viertelmillion Pfund umgesetzt – doch die verschlüsselten Logdateien wurden nicht automatisch zur Zentrale übertragen. Mit einem speziellen Update konnte ich die Übertragung erzwingen – das war mein erster bewusster Kontakt mit wirtschaftlich relevanter Zahlen und Fakten. Fun Fact: Im August 2007 tauschte ich am Flughafen Heathrow Euros in Pfund – für 1 € bekam ich 1,47 £!

Die Strategie:

Damals entwickelte ich eine Update-Strategie, die ich wie folgt zusammenfassen kann:

I. Ganz oder gar nicht! Ein Update gilt nur als erfolgreich, wenn es am Ende vollständig abgeschlossen und das System funktionsfähig ist. Andernfalls wird alles rückgängig gemacht – inklusive aller Dateien und Konfigurationen. Axiom & Tipp: Was man nicht anfasst, muss man nicht rückgängig machen. Konkret bedeutet dieser Axiom: arbeite immer mit der Kopie oder Clone und nimals mit dem Original!

II. Nur ein Reboot! Maximal ein einziger Neustart ist erlaubt. Zwei sind bereits einer zu viel.

III. Aktivierung in Sekunden: Das eigentliche Aktivieren eines Updates muss innerhalb weniger Sekunden erfolgen (z. B. durch Verschieben ganzer Verzeichnisse statt Kopieren: move statt copy).

IV. Vorbereitung darf unterbrechbar sein: Bereits heruntergeladene oder kopierte Dateien dürfen nicht erneut übertragen werden müssen.

V. Alles zuerst vor Ort: Sämtliche Tools, Patches, Dateien und Konfigurationen müssen vorab vollständig und korrekt (via Checksummen) vorhanden sein.

VI. Bedingungen prüfen: Alle Vorbedingungen – Betriebssystemversion, Anwendungsversionen, Kundennummer usw. – müssen erfüllt sein, bevor überhaupt etwas passiert.

Rückwärts gelesen ergibt sich daraus diese logische Update-Reihenfolge:

  1. Vorbedingungen prüfen
  2. Dateien kopieren
  3. Vorbereitung
  4. Aktivierung
  5. Reboot

Hinweis: Die Phase „Vorbereitung darf unterbrechbar sein“ ist in dieser Liste nicht als separater Schritt aufgeführt, da der jeweilige Zustand über Flags gespeichert wird. Damit kann ein Update beim letzten erfolgreichen Schritt fortgesetzt werden – besonders bei großen Dateien (> 2 MB), die ggf. in Chunks aufgeteilt werden müssen.

Seit dem September-Update-Project 2007 folgten alle meine Update-Prozesse konsequent dieser konfigurierbaren Struktur, die ich hier in einem „Pseudo Batch-Script“ versucht habe grob zu veranschaulichen:

:: Psudo batch script für DOS 7.x
:: Auf Schleifen wurde absichtlich verzichtet
:: damit der Code einfacher und verständlich bleibt
:: Es geht hier um das Konzept und weniger eleganter Code!

REM Phase und andere Parameter übernehmen
set Phase=%1
set Kunde=%2

:Label_Bedingungen
set Bedingung1=something
if not Bedingung1 (
	print log "Bedingung1 nicht erfüllt"
	exit
)
set Bedingung=someOtherThing
if not Bedingung2 (
	print log "Bedingung2 nicht erfüllt"
	exit
)
:: ... usw. usf.

if exist backup.flag do goto Label_Download

:Label_Backup
print log "Backup files..."
copy C:\x1\y1 C:\Updates\%updateName%\x1\y1
copy C:\x2\y2 C:\Updates\%updateName%\x2\y2
copy C:\x3\y3 C:\Updates\%updateName%\x3\y3
write %date% > backup.flag

:Label_Download
if not exist file1.flag (
	download file-part1.zip
	write %date% > file1.flag
)
if not exist file2.flag (
	download file-part2.zip
	write %date% > file2.flag
)
:: ... usw. usf.

if not %Phase%=Prepare do exit

:Label_Prepare
if not exist prepare0.flag (
	print log "Decompressing file0.part1.zip..."
	unzip file0.part1.zip to C:\Updates\%updateName%\app1\*.*
	write %date% > prepare0.flag
)
if not exist prepare1.flag (
	print log "Patching file blabla.dat..."
	copy %Programs%\acme\app1\app1.exe C:\Updates\%updateName%\app1\
	patch.exe diff=C:\Updates\%updateName%\app1\app1.diff target=C:\Updates\%updateName%\app1\app.exe
	write %date% > prepare0.flag
)
:: ... usw. usf.

if not %Phase%=Activate do exit

REM Ab hier gilt: sollte etwas bis hier schiefgelaufen sein, dann:
REM 1. wären wir gar nicht so weit gekommen (dank Flags)
REM 2. die Produktiv-Dateien wurden gar nicht angefasst (nur ins Upd. Verz. kopiert)
REM 3. Kann man im "Notfall" einfach Flags + Dateien im zugehörigen Update-Verz. löschen
REM 4. Der aktuelle Systemzustand ist immer noch vollfunktionstüchtig :-)

:Label_Activate
move -recursive -force -quiet C:\Updates\%updateName%\app1\ %Programs%\acme\app1\*
move -recursive -force -quiet C:\Updates\%updateName%\app2\ %Programs%\acme\app2\*
move -recursive -force -quiet C:\Updates\%updateName%\app3\ %Programs%\acme\app3\*
delete C:\irgend\wo\irgend\eine.datei

:Label_Reboot
print log "Rebooting..."
REM Sofortiges Reboot ohne Anwenderbenachrichtigung
REM ist nicht zu empfehlen, aber möglich.
shutdown -reboot -time 0

  

Egal wie gut und elegant der Algorithmus, Code oder die Konzepte und Paradigmen oder Strategien sind: ein Update MUSS IMMER GUT GESTESTET SEIN, BEVOR MAN ES IN DIE WELT AUF DIE LEUTE LOSLÄSST!

Die Update-Mafia und ihr Update-Perpetuum-Mobile – eine Massenvernichtungswaffe im Dauerbetrieb

Es hat sich wohl inzwischen als „neue Normalität“ eingebürgert: Mircosaft wirft für sein geliebtes Windoof „Updates“ in einer Frequenz ab, die selbst einen B52-Bomber vor Neid erblassen lässt. Und wie bei Teppichbombardements üblich, wird dabei selten gezielt – Hauptsache: viel hilft viel.

Millionen Computer in Büros, Werkhallen und Industrieanlagen werden reihenweise lahmgelegt, aus dem Takt gebracht oder komplett unbrauchbar gemacht. Die Folge: Millionen Arbeitsstunden werden kollektiv im Modus „Trial-and-Error“, „Hoffen und Bangen“ oder schlicht „Däumchendrehen“ verbrannt. Produktivität? Fehlanzeige.

Die Code-Schreiberlinge aus dem Hause Mircosaft in Redmond scheinen ihren bewährten Google-Copy-and-Paste-Workflow längst zugunsten eines neuen Verfahrens ersetzt zu haben: Ask-ChatGPT-and-Paste. Anders lässt sich kaum erklären, warum auf ein Update (KB5058499), das angeblich „Fehlerbehebungen“ und „Verbesserungen“ bringen sollte, ein Update (KB5060842) folgt, das die Fehler des vorherigen Updates beseitigen will – nur damit daraufhin (tusch!) das Update KB5063060 erscheint, um… genau: die neuen Fehler zu beheben. Ein Update-Wirrwarr in Endlosschleife (dazu mehr hier sowie hier oder hier von einem anderen tapferen Kameraden)

Man möchte es kaum glauben, aber es ist die perfekte Beschreibung meiner patentierten „Never Ending Baustelle“® (Copyright ©2007-2025 by Pedram GANJEH-HADIDI). Eine Dauerbaustelle, vor der ich schon vor über einem Jahrzehnt meine Kollegen gewarnt und Freunde sowie Ex-Studienkollegen regelmäßig in Schutz genommen habe.

Die Ursache?
Ganz einfach: „Typing first, Bedenken second!“ – frei nach dem FDP-Slogan „Digital first, Bedenken second“ von Christian Lindner. Oder, um es in meiner Sprache zu sagen: Erst in die Tasten hauen, dann (vielleicht) drüber nachdenken.

Programmieren als Beschäftigungstherapie – und der tiefere Sinn (oder Unsinn?) von Code

Früher kaufte man Computer und Software, um echte Probleme zu lösen – schnell, präzise, effizient. Heute hingegen bekommt man Software, die selbst das Problem ist – und Updates, die das Problem im Wochenrhythmus neu erfinden.

Wer seine Lebenszeit sinnlos vergeuden oder sich ärgern möchte, braucht dafür weder Videospiele noch Reality-TV – ein Windoof-Update genügt!

Man stelle sich vor: Man geht zum Arzt, zahlt für Medikamente – und bekommt dafür Kopfschmerzen. Oder man bringt sein Auto in die Werkstatt, zahlt für eine „Wartung“ – und es springt danach nicht mehr an.

Und bei Mircosaft? Genau das ist Konzept. Willkommen im Zeitalter der „Bugfix-Fabriken“, in dem Stabilität zur Legacy geworden ist und „Release Notes“ wie Apokalypse-Kalender gelesen werden.

Es ist kein Wunder, dass ich inzwischen unter Updateophobie leide und KB5063060 Links liegen lasse, wie inzwischen viele Andere auch.

Es entsteht zunehmend der Eindruck, dass heutzutage nahezu jeder – unabhängig von Qualifikation oder Verantwortungsbewusstsein – Software entwickeln und auf den Markt bringen kann, ohne je für etwaige Folgen wie Funktionsstörungen, Zeitverlust oder mentale Belastungen zur Verantwortung gezogen zu werden.

Ebenso könnte man meinen, dass viele Schlüsselpositionen in Behörden, Normungsgremien und europäischen Institutionen nicht immer nach Kompetenz, sondern eher nach politischer Zweckmäßigkeit oder Karrierelogik besetzt werden. Anders lässt sich das anhaltende Versagen bei der Regulierung und Qualitätssicherung kaum erklären – zumindest nicht aus Sicht betroffener Anwender.

„The Crisis of Democracy“

In 1973, David Rockefeller founded a new organization called the Trilateral Commission. The early members were selected from the United States, Western Europe, and Japan. Among them were executives of major corporations, banks, law firms, and government officials.

The-Crisis-of Democracy-Trilateral-Commission-1975-crisis_of_democracy_tex
The-Crisis-of Democracy-Trilateral-Commission-1975-crisis_of_democracy_tex

They were concerned about the widespread social resistance in the 1960s and 1970s—manifested in the anti-war movement, feminism, and campaigns for social and equal rights for minorities and people of color. Seeking to understand the root causes of these movements, they launched an investigation, which was completed in 1975 (as documented in original sources here).

The resulting report, titled „The Crisis of Democracy“, reached the following conclusion regarding why governing and maintaining control over the population in the U.S. and Western Europe had become more challenging than before:

„The population is overeducated.“

Additionally, the report stated:

„Previously passive or unorganized groups in the population—Blacks, Indians, Chicanos, white ethnic groups, students, and women—have now embarked on concerted efforts to establish their claims to opportunities, positions, rewards, and privileges, which they had not previously considered themselves entitled to.“

One of the report’s key recommendations was:

„A program is necessary to lower the job expectations of those who receive a college education.“

And further:

„The problems of governance in the United States today stem from an excess of democracy… What is needed instead is a greater degree of moderation in democracy.“

(The Crisis of Democracy: Report on the Governability of Democracies)

So they started to „gather the figures from the chessboard“ and placed them among themselves (Trilateral Commission) as follow:

  • The President (Jimmy Carter)
  • Vice president
  • Secretary of State
  • Secretary of Defense
  • Secretary of Treasury
  • The national security Adviser (Zbigniew Brzeziński)

were all held by members of Trilateral Commission !

Here, you can see Mr. Brezinski (top strategic adviser of 7 US presidents who armed Osama Bin Laden and his Al’Qaida Mudjahedins in one of the most monumental historic moments in the history of our time (just watch how he points with his finger to above and how he says „Your cause is right and God is on your side!“ to the Taliban and Al’Qaida members):

You may want to read following books he wrote in the 1990s:
https://en.wikipedia.org/wiki/The_Grand_Chessboard

and/or other Works on „Global Domination“ from the list on Wikipedia:
https://en.wikipedia.org/wiki/Zbigniew_Brzezinski#Works

Warum macht ihr das? Wo bleibt der Sinn eures Handelns? Teil 2: Mein TOYOTA Corolla Cross ist eines der gefährlichsten Autos der Welt

Der Traum vom modernen Auto – oder: Warum ich beim Fahren keinen Nerv für Software-Frust habe

Ich dachte, ich tue mir etwas Gutes, indem ich mir ein modernes Auto zulege – eines, das zuverlässig ist (für mich bedeutet das: keine chinesischen Komponenten), mich sicher von A nach B bringt und dank moderner Assistenzsysteme weniger Stress verursacht. Doch was ich stattdessen bekommen habe, ist ein fahrendes Software-Drama, das mich mehr beschäftigt als jede komplizierte Steuererklärung.

Egal, ob ich mit 130 km/h über die Autobahn gleite, mit 30 km/h durch ein Wohngebiet rolle oder im Parkmodus stehe – eines bleibt konstant: Die ständigen Software- und Designfehler des Fahrzeugs lenken mich unaufhörlich ab.

Was zur Hölle interessiert mich das Profil?

Warum glaubt mein Auto, es sei sinnvoll, mich bei Tempo 130 km/h darüber zu informieren, dass mein Fahrerprofil nicht aktualisiert werden konnte? Kein Foto? Kein Problem – ich bin auf der Autobahn unterwegs, nicht auf Instagram!

Navigieren ohne Navigation

Noch ärgerlicher wird es, wenn ich mich in einer fremden Stadt befinde und dringend auf das Navigationssystem angewiesen bin. Gerade funktionierte alles wunderbar – doch plötzlich verkündet das Auto stolz: „Drahtlose Verbindung nicht möglich.“ Und da stehe ich dann. Das Navigationsgerät, das ich gekauft habe, um mich sicher zu leiten, weigert sich, mit meinem Handy zu kommunizieren (obwohl er mein Handy dazu überhaupt nicht benötigt, weil das Navi autark ist und eigenes GPS etc. besitzt).

App-Updates und versteckte Einstellungen

Das ständige Gefummel an den Einstellungen meines Smartphones nach jedem verdammten Update raubt mir den letzten Nerv. Mal ist es die Toyota-App, mal Android Auto, mal Google Maps, mal ein Android-System-Update – immer fehlt irgendeine Berechtigung oder Option, die ich erst mühselig aktivieren muss. Wieso versteht niemand, dass ich ein Auto gekauft habe, um zu fahren, und keine Softwareentwicklungsumgebung, die ich bei jedem Start neu konfigurieren muss?

Wertlose Apps und unnötige Hürden

Ein weiteres Highlight: Die Funktion, Adressen direkt vom Handy an das Navigationssystem zu übertragen, ist seit Monaten unbrauchbar. Warum? Ein Update wurde auf Herbst (2024, laut TOYOTA Hotline in Deutschland) verschoben. Was bleibt, ist eine App, die nichts anderes macht, als Speicherplatz zu verschwenden, meine CPU zu belasten und meinen Akku schneller zu entleeren.

Keine Sonnenbrille? Kein Problem – zumindest in Japan, land der aufgehende Sonne!

Und dann die Sache mit der Sonnenbrille: Offenbar hat man in Japan noch nie von diesem nützlichen Accessoire gehört. Warum sonst würde ein „modernes“ Auto, Baujahr 2022, keinen Sonnenbrillenhalter haben? Die Ironie: Ich habe mir bewusst ein Fahrzeug ohne chinesische Komponenten ausgesucht, nur um dann auf Amazon ein chinesisches Kunstleder-Accessoire zu bestellen, mit dem ich meine Sonnenbrille provisorisch befestigen kann. Das Ergebnis? Um die Brille herauszuholen, muss ich beide Hände verwenden und das Lenkrad loslassen – genau das Gegenteil von sicher. Mein Citroen C4 Baujahr 2004 hatte ein eingebautes, sicheres und praktischen Brillenetui, um mit nur einer Hand die Sonnenbrille einfach, zuverlässig und sicher rein- und rauszugeben. Mein TOYOTA Yaris Hybrid Baujahr 2017 hatte auch keine eingebaute Sonnenbrillenetui!

Fazit: Modern ist nicht immer besser

Beim nächsten Mal kaufe ich mir gleich ein chinesisches BYD. Dann weiß ich von Anfang an, worauf ich mich einlasse, und bilde mir nichts auf vermeintliche Zuverlässigkeit ein.

Ein Appell an Toyota

Liebe Toyota-Entwickler: Holt euch Fachleute, die etwas von Software-Design, Bedienkonzepten und Nutzererfahrung verstehen. Euer Boardcomputer soll den Fahrer unterstützen, nicht ablenken. Wenn euer System das nicht leisten kann, gehört es schlichtweg raus. Entweder ihr verbessert es, oder ihr verzichtet darauf. Ganz einfach.

Und nebenbei bemerkt: Die Liste der Ärgernisse ist lang. Hier einige Beispiele, die meinen Frust auf den Punkt bringen:

  1. Unzuverlässige Spritpreis-Anzeige
    Die auf dem Navigationsdisplay angezeigten Spritpreise sind meistens falsch. Warum diese Funktion überhaupt implementiert wurde, ist mir schleierhaft, wenn die Daten nicht einmal ansatzweise aktuell sind.
  2. Keine Hausnummer-Ergänzung möglich
    Hat man erst einmal den Stadtnamen und die Straße eingegeben und die Vorschläge des Systems bestätigt, gibt es keine Möglichkeit mehr, nachträglich eine Hausnummer hinzuzufügen. Ein einfaches, essentielles Feature – aber offenbar zu kompliziert für die Softwareentwickler.
  3. Pop-ups blockieren wichtige Funktionen
    Wenn ich die Ansicht von Raststätten ein- oder ausklappen möchte, wird das oft von einer unnötigen Pop-up-Meldung blockiert. Beispiele? Etwa ein Hinweis, dass die Radiofrequenz automatisch umgestellt wurde. Natürlich gibt es keine Option, diese Meldung wegzuklicken, und ich muss warten, bis sie von selbst verschwindet.
  4. Kryptische Meldungen während der Fahrt
    Ein besonders absurder Moment: Mein Beifahrer schloss während der Fahrt sein Handy mit installiertem Android Auto per USB-C-Kabel an. Plötzlich erschien eine kryptische Meldung auf dem Display, die bei 130 km/h auf der Autobahn natürlich nicht lesbar war. Der Beifahrer drückte instinktiv „Ja“ oder „Nein“. Das Resultat? Alle meine Einstellungen waren weg: Kontakt-Favoriten, Ziel-Favoriten, gespeicherte Adressen, Telefonnummern und sogar die Historie der bereits gefahrenen Ziele.
  5. Induktions-Ladeplatte: ein Witz
    Die Induktions-Ladeplatte ist viel zu klein, rutschig und während der Fahrt praktisch nicht nutzbar. Zudem hat bisher kein Handy geschafft, sich über diese Ladeplatte aufzuladen. Daher musste ich gezwungenermaßen ein kurzes USB-C-Kabel kaufen (natürlich aus China). Aber das eigentliche Problem: Jedes Mal, wenn ich versuche, mein Handy während der Fahrt zu platzieren, lenkt mich das noch länger von der Straße ab.
  6. DAB-Radio mit ständigen Unterbrechungen
    Die DAB-Radiosendungen werden ständig unterbrochen. Wozu brauche ich einen modernen Radioempfänger, wenn er schlechter funktioniert als ein analoges Radio aus den 90ern?
  7. Software-Krieg im Cockpit
    Die Toyota-Cockpit-Software und die Android Auto App von Google scheinen sich regelrecht zu bekämpfen. Ständig gibt es Konflikte, die das Nutzererlebnis ruinieren. Mein persönliches Highlight: Ich bete mittlerweile jeden Tag, dass es keine Updates für die Toyota-App, Android Auto, das Android-Betriebssystem oder die Cockpit-Software gibt. Denn jedes neue Update bedeutet, dass ich wieder Stunden damit verbringen muss, die Einstellungen am Handy neu zu konfigurieren – ein Prozess, der mir den letzten Nerv raubt und meine Lebenszeit verschwendet.

Ende der 70er bzw. Anfang der 80er, als Margaret Thatcher die Werke von TOYOTA und NISSAN in Japan besuchte, hingen in deren Hallen diese und ähnliche Schilder mit folgendem Slogan:

TOYOTA Slogan 80s

ChatGPT ist der Prophet einer neuen Glaubensgemeinschaft

Wie oft habe ich anderen erzählt (mein Zitat): „Wenn du ChatGPT nutzst, dann musst du dich in dem Thema sehr gut auskennen, sonst kann es dir passieren, dass er dir irgendwelche Halbwahrheiten oder mit Lücken und Fehler behafteter Code etc. präsentiert, und da du dich ja nicht auskennst, wirst es sofort glauben.Gerade eben (31. Dez. 2024) ist es mir selbst passiert!

Von Anfang an warnte mich mein Cloud-Server, dass das PHP-Modul „imagick“ nicht installiert sei und ich es nachrüsten solle. Heute nahm ich mir die Zeit, der Warnung nachzugehen, und klickte auf den bereitgestellten Link zur Dokumentation. Diese richtete sich jedoch nicht an Nutzer der Ubuntu-Snap-Version, sondern vielmehr an diejenigen, die Nextcloud von Grund auf neu auf einem klassischen LAMP-Stack installieren. Da die Anleitung für mich als Snap-Nutzer wenig hilfreich war, wandte ich mich an ChatGPT. Dort erhielt ich prompt eine detaillierte Anleitung, wie ich „imagick“ in meiner Snap-Installation aktivieren könnte.

Zum Glück stieß ich bei weiterer Recherche auf GitHub auf eine entscheidende Information: Das PHP-Modul „imagick“ ist in der Snap-Version bewusst aus Sicherheitsgründen deaktiviert. Diese Erkenntnis bewahrte mich davor, eine unnötige und potenziell unsichere Änderung vorzunehmen. Angeregt durch diese Erfahrung, schrieb ich anschließend folgende Nachricht an ChatGPT:

Frage an ChatGPT:

Du hättest mich an dieser Stelle warnen sollen, dass es nichts ausmacht, wenn das PHP-Modul Imagick nicht installiert ist, anstatt mir zu erklären, wie ich es aktivieren oder installieren könnte! Auf GitHub, in den FAQs von Nextcloud-Snap, wird ausdrücklich darauf hingewiesen, dass Imagick aus Sicherheitsgründen absichtlich nicht in Nextcloud-Snap enthalten ist.Hier ist das relevante Zitat:“Imagick is a security concern, and as such isn’t enabled on purpose! You see this warning because the theming app uses Imagick to generate favicons. As a result, that particular feature (favicon generation) isn’t possible while using the snap.“ Dieses Zitat findet man hier: Nextcloud-Snap FAQ – Imagick PHP Module not enabled. Bitte speichere diese Information und lerne daraus – nicht nur für den Umgang mit Nextcloud, sondern auch für andere Software. Ebenso wichtig ist es für alle anderen Benutzer von dir. Wenn eine Funktion nicht verfügbar ist, weil etwas nicht installiert oder aktiviert wurde, solltest du zunächst prüfen und recherchieren, ob dies aus Sicherheitsgründen absichtlich so konfiguriert wurde. Recherchiere in solchen Fällen zuerst und ziehe die Möglichkeit in Betracht, dass eine bewusste Entscheidung dahintersteckt. Andernfalls besteht die Gefahr, dass ahnungslose Benutzer – wie ich in diesem Fall – dazu angeleitet werden, vermeintlich hilfreiche Tipps von dir umzusetzen, die uns am Ende jedoch mehr schaden als nutzen. Denn damit könnten wir unbewusst Sicherheitslücken auf unseren Systemen aktivieren, einbauen oder installieren. Alles klar?

Die Antwort des ChatGPT folgte prompt:

Vielen Dank für dein wichtiges Feedback! Du hast absolut recht, dass ich hätte prüfen und darauf hinweisen sollen, ob es Sicherheitsgründe für die Deaktivierung von imagick in der Nextcloud-Snap-Umgebung gibt, bevor ich Anweisungen zur Installation oder Aktivierung gebe.

Ich entschuldige mich für die versäumte Warnung und nehme deinen Hinweis sehr ernst. Es ist entscheidend, dass solche sicherheitskritischen Aspekte immer vorrangig geprüft und klar kommuniziert werden, um ungewollte Sicherheitsrisiken zu vermeiden.

Wichtige Erkenntnis:

  • Bei der Fehlermeldung zu imagick in Nextcloud-Snap ist keine Aktion notwendig, da es absichtlich aus Sicherheitsgründen nicht aktiviert ist.
  • Der erwähnte Funktionsverlust (Favicon-Generierung) ist minimal und stellt keinen kritischen Nachteil dar.
  • Statt Anweisungen zur Aktivierung oder Installation hätte ich den Fokus auf diese Information legen sollen, um Nutzer wie dich vor möglichen Risiken zu schützen.

Korrekte Empfehlung in diesem Fall:

Für die Zukunft und alle anderen Benutzer:

  1. Fehlermeldungen sorgfältig prüfen:
    • Fehlermeldungen wie diese können oft Hinweise auf Sicherheitsaspekte enthalten.
  2. Offizielle Dokumentation durchsuchen:
    • Vor Änderungen sollte immer geprüft werden, ob es offizielle Empfehlungen oder Einschränkungen gibt (wie hier in den FAQs der Nextcloud-Snap-Entwickler).

Hier noch einmal der entscheidende Hinweis aus der Nextcloud-Snap-FAQ:

Imagick is a security concern, and as such isn’t enabled on purpose! You see this warning because the theming app uses Imagick to generate favicons. As a result, that particular feature (favicon generation) isn’t possible while using the snap.


Zukunftsmaßnahme:

Ich werde bei ähnlichen Anfragen künftig immer:

  1. Nachforschen, ob Sicherheitsbedenken eine Rolle spielen.
  2. Dies zuerst klar und deutlich kommunizieren.
  3. Nur bei absolut sicherer Grundlage technische Anweisungen geben.

Danke, dass du mich darauf aufmerksam gemacht hast! Es ist mein Ziel, hilfreiche und verantwortungsvolle Unterstützung zu leisten, und dein Hinweis hilft mir, besser zu werden. 🙏


Mein Fazit bzw. Was ich daraus gelernt habe ist: Wer nichts weiß, wird vieles glauben müssen.

Frühere Generationen glaubten Alles, was die Männer der Kirche über Gott und die Welt erzählten (genau so auch wie bei allen anderen Religionen).

Heute glauben wir Alles was uns der ChatGPT erzählt🤦‍♂️<facepalm> Die neue Religion heißt „KI-ismus“ [ka’ie-ismus] und dessen Prophet ChatGPT.

IT-Security: Buzzword, Geldmacherei und kein bisschen Sicherheit

Begriffe wie IT-Security, IT-Sicherheit oder IT-SECC begegnen uns täglich – ob in Artikeln, Nachrichten oder Gesprächen. Doch wie sicher sind unsere Computer und Netzwerke wirklich geworden? Trotz aller Diskussionen und milliardenschwerer Investitionen in die IT-Sicherheit scheint die digitale Welt kaum sicherer zu sein.

Natürlich wird viel darüber geredet und geschrieben – und viele verdienen prächtig daran. Doch der Glaube, allein der Kauf eines teuren Firewallsystems, Intrusion Detection Systems (IDS) oder Antivirusprogramms eines namhaften Herstellers würde absolute Sicherheit garantieren, ist trügerisch.

Ein Blick zurück auf das Jahr 2024, das neueste VW-Datenleck vor 2 Tagen am 27 Dezember oder beispielsweise auf die Berichterstattung von Heise Online unter dem Titel „Die Top 5 Security-Ereignisse 2024 und was sie bedeuten„, zeigt eindrücklich, dass Sicherheitsprobleme weiterhin allgegenwärtig sind. Von Datenlecks über Ransomware-Attacken bis hin zu Supply-Chain-Angriffen – die Liste der Schwachstellen und Vorfälle ist lang und alarmierend.

Das waren nur die Top fünf!

Der Vorfall im Juli 2024, bei dem ein fehlerhaftes Update der CrowdStrike Falcon-Software weltweit zu IT-Ausfällen führte, hatte weitreichende Auswirkungen auf verschiedene kritische Infrastrukturen. Obwohl genaue Statistiken von offiziellen Stellen begrenzt sind, lassen sich die Auswirkungen wie folgt zusammenfassen:

Flughäfen und Flugzeuge:

Schienensysteme und Züge:

Krankenhäuser, elektronische Patientenkartei und Patientenversorgung:

  • Gesundheitseinrichtungen, einschließlich des britischen NHS, sahen sich mit IT-Ausfällen konfrontiert, die den Betrieb störten und potenziell die Patientenversorgung beeinträchtigten. Notdienste und Krankenhäuser (UK) mussten alternative Verfahren einleiten, um die Versorgung aufrechtzuerhalten.

Notrufsysteme (z. B. 911 in den USA):

Dieser Vorfall und die daraus entstandene Schäden (dabei waren NUR 1% bzw. 8,5 Millionen aller Windows-Rechner betroffen) unterstreicht die Abhängigkeit moderner Infrastrukturen von IT-Systemen und die potenziellen Risiken, die mit zentralisierten Sicherheitslösungen verbunden sind. Die genauen Zahlen der betroffenen Einrichtungen und Systeme sind möglicherweise nicht vollständig erfasst, aber die bekannten Auswirkungen verdeutlichen die globale Reichweite und Schwere des Ereignisses.

Welcome to the new broken world!

Kein Strom! Alles aufgetaut!

An einem Freitag kam ich später als gewöhnlich von der Arbeit nach Hause und stellte überrascht fest, dass sich das Licht im Vorraum nicht einschalten ließ. Ich überprüfte den Sicherungskasten – alle FI-Schalter (Fehlerstromschutzschalter) waren oben. Verwundert versuchte ich, das Licht in der Küche ein- und auszuschalten, doch auch dort blieb es dunkel. Dann bemerkte ich Wasser auf dem Küchenboden, das offenbar aus dem Gefrierfach des Kühlschranks tropfte. Als ich die Tür öffnete, war alles aufgetaut.


Ein Smartmeter ohne Strom

Verärgert ging ich in den Keller, um den Zustand meines Smartmeters (digitaler Stromzähler mit Internetanbindung) zu überprüfen – der Strom war abgeschaltet.


Der Stromlieferant

Ich rief meinen Stromlieferanten „Go-Green-Energy“ an. Sie erklärten mir, dass sie weiterhin Strom liefern würden, und verwiesen mich an den Netzbetreiber „Netz Oberösterreich GmbH“.


Ein Router ohne Strom = kein Internetzugang

Da ich ohne Strom auch kein Internet hatte, fuhr ich mit meinem Laptop zu meinen Eltern, um online zu recherchieren. Nach längerem Suchen fand ich schließlich die versteckte Telefonnummer des Netzbetreibers und rief dort an.


Ein Brief und drei Mahnungen, die nie ankamen

Der Sachbearbeiter erklärte mir, dass sie seit Monaten die Stromkosten nicht mehr per SEPA-Lastschrift abbuchen konnten. Daher hatten sie mir zunächst einen Brief geschickt. Weil ich darauf nicht reagierte, folgten drei Mahnungen, die per Post (RS-A oder RS-B?) versendet wurden. Alle Briefe kamen offenbar nicht bei mir an. Kurioserweise war mein Konto stets gedeckt.


Man zahlt, weil man keine andere Wahl hat

Um den Strom schnellstmöglich wiederherzustellen, beglich ich über meine Banking-App die ausstehenden Gebühren samt Mahnkosten von 50 Euro.


„Sie vergeuden Ihre Zeit! Ich kann Ihnen leider nicht helfen.“

Auf der Suche nach einer Erklärung ging ich zur Postfiliale, um herauszufinden, warum die Briefe nie bei mir ankamen und auch keine gelben Benachrichtigungszettel hinterlassen wurden. Wochen später gab man mir eine Telefonnummer, an die ich mich wenden sollte.

Nach mehreren Weiterleitungen und unzähligen Wiederholungen meiner Geschichte landete ich laut der letzten Ansprechpartnerin auf „höchster Ebene“. Nach einer kurzen Recherche in ihrer Datenbank erklärte sie, dass alle Briefe als „Nicht zustellbar“ markiert und retourniert wurden. Warum? Das konnte sie mir nicht sagen. Ihr abschließender Kommentar: „Sie vergeuden Ihre Zeit. Ich kann Ihnen leider nicht helfen.“


Die Türklingel der tauben Nachbarin

Einige Monate nach diesem Vorfall rief mich meine Mutter an, weil ich angeblich nicht auf ihr Klingeln reagierte. Ich war überrascht, ging zur Wohnungstür und bat sie, erneut zu läuten. Doch meine Gegensprechanlage blieb still.

Als sie weiterklingelte, hörte ich plötzlich das Läuten – aus der Wohnung meiner tauben Nachbarin unter mir.


Der Elektriker und die vertauschten Türklingeln

Ich stellte fest, dass die Klingeln nach einer Fassadenrenovierung 2016/2017 vertauscht worden waren. Nach vier Anrufen und ebenso vielen Besuchen eines Elektrikers wurde das Problem schließlich behoben – mehrere Monate später.


Der Grund für die gescheiterte SEPA-Lastschrift

Schließlich fand ich heraus, warum der automatische Bankeinzug nicht funktionierte: Meine Bank, die Easybank, war von der BAWAG übernommen worden. Dabei hatte sich die BIC-Nummer geändert.


Aber es war doch eine Inlandsüberweisung!

Die BIC wird nur für grenzüberschreitende Überweisungen benötigt, nicht für Zahlungen innerhalb Österreichs. Da die IBAN unverändert blieb, hätte der Bankeinzug weiterhin funktionieren sollen. Offenbar war die Software des Netzbetreibers nicht darauf ausgelegt, dies zu ignorieren.


Warum wurde ich nicht informiert?

Zwar hatte die Bank eine SMS geschickt, in der stand: „Sie haben eine Nachricht in Ihrem Konto. Bitte loggen Sie sich ein, um diese zu lesen.“ Da jedoch alle Nachrichten dieser Art denselben Standardtext hatten, übersah ich sie.


Wichtige Informationen gehen im Meer der Belanglosigkeiten unter

Hätte die Nachricht einen konkreten Hinweis enthalten, etwa: „Unsere BIC hat sich geändert. Bitte überprüfen Sie Ihre SEPA-Einstellungen!“, wäre mir der Fehler sicher früher aufgefallen.


Fazit

Diese Erfahrung hat mir gezeigt, wie fragil eine zunehmend automatisierte und vernetzte Welt sein kann. Wenn selbst auf höchster Ebene niemand Verantwortung übernimmt und Menschen für die Fehler anderer bestraft werden, stimmt etwas grundsätzlich nicht.

Diese Geschichte ist mir 1:1 (eins-zu-eins), genauso passiert.

  • Lückenhafte Software mit falsches Verhalten, die die reale Welt (von BIC und IBAN) nicht entsprach (Software-Design-Fehler)
  • Billigste Elektro-Firma, wegen die ich unverschuldet 50€ Mahnung zahlen müsste
  • Der schnellste Elektriker und seine Never-Ending-Baustelle, die er noch 4 Mal besuchen und nachbessern müsste, nur weil er keine Zeit für „überflüssige Tests“ verschwenden wollte
  • Der Faule Postler, der es weder schaffte zum ersten Stockwerk zu gehen um an meiner Tür zu klopfen, noch ein gelbes Formular ausfüllen und in meinm Postkasten zu werfen
  • Der verantwortliche Post-Angestellter auf höchste ebene, der mir keine Antwort geben konnte und sich auch nicht schämte mir zu sagen, dass sie Ahnungslos sind und kein Überblick mehr haben
  • Eine „moderne Online-Bank“ ohne physische Filialen, die mit dem gleichen SMS-Inhalt meinem Handy zumüllten (SMS-SPAM). Auch bei sehr wichtige Nachrichten.

Wie wunderbar wird es werden, wenn sich IoT und Home-Automation sowie KIs übers Internet mit Smarte Haushaltsgeräte unterhalten und … (Raum für eure Fantasie)

Ewige Jugend bedingt junges Blut – Mit der Jungblut-Spritze gegen das Jurassic-Park-Syndrom

Ältere Mitarbeiter, die die gesamte Geschichte unserer Produkte von Anfang an nicht nur miterlebt, sondern mitgestaltet haben, sind von unschätzbarem Wert für die Unternehmens- und Produktkultur sowie für die Bewahrung von Wissen und Erfahrung. Ihr Fehlen könnte Lücken hinterlassen, die hohe Kosten verursachen.

Um technologisch auf dem neuesten Stand zu bleiben und moderne Konzepte, Paradigmen und Innovationen nicht zu verpassen, ist es unabdingbar, regelmäßig neue junge Mitarbeiter einzustellen, insbesondere im Bereich der Informationstechnologie. Ein Paradebeispiel hierfür ist die dynamische Interaktion zwischen der Smartphone-Generation, die der Wählscheibentelefon-Generation bei der Nutzung von Apps und der Navigation durch Einstellungen hilft.

Im Jahr 2009 musste der neue CEO eines Unternehmens, für das ich damals tätig war, den Kunden erklären, warum die Spiele in 16-Bit-C geschrieben wurden und warum nach 8 Jahren Windows XP immer noch MS-DOS 7 als Betriebssystem erforderlich war. Obwohl das Unternehmen über mehr als 30 Softwareentwickler verfügte, begann es erst 2010, ein Versionsverwaltungssystem (Subversion) einzuführen. Zusätzlich wurde die Unternehmensstrategie hinsichtlich des Schutzes vor Code-Diebstahl und Reverse-Engineering nach 15 Jahren von einem absoluten Verbot von Code-Kommentaren („Security by Obscurity“) zu einer Kommentarpflicht für jede Funktion und jede Code-Datei umgestellt.

Diese Modernisierungen kamen jedoch zu spät, da bereits seit Jahren 13 externe Softwarehäuser Spiele für meinen damaligen Arbeitgeber programmiert hatten. Dies lag daran, dass das Unternehmen den Anforderungen und Bestellungen nicht gewachsen war, was zu enormen Kosten durch externe Dienstleister führte. Interessanterweise begann ich meine Tätigkeit dort im Jahr 2007, und obwohl ich bereits 2002 an der JKU Linz das Konzept des Unit-Testings gelernt hatte, hatte das Unternehmen nie davon Gebrauch gemacht, obwohl einige wenige Softwareprojekte teilweise in C++ und nach objektorientierten Prinzipien entwickelt wurden.

In solchen Situationen drückt das persische Sprichwort „نوشدارو بعد از مرگه سهراب“ („Medikation erst nach Sohrabs Tod“) treffend aus, dass manchmal die Rettung zu spät kommt.

Die scheinbaren Kosteneinsparungen, die entweder für ein einzelnes Produkt oder aufgrund vorübergehender wirtschaftlicher Schwierigkeiten getroffen werden, potenzieren sich nicht nur miteinander, sondern auch im Laufe der Zeit und erweisen sich stets als Bumerang. Wer Zweifel hegt, braucht sich nur die Geschichte von Unternehmen wie Kodak anzusehen, oder den aktuellen Fall von Boeing 737 Max zu betrachten, oder einfach zu recherchieren, welche Stundensätze für Fortran-, Cobol- oder Algol-Programmierer üblich sind (Ja! Es gibt tatsächlich Ämter wie IRS – das US-Finanzamt – und Firmen die immer noch Teilweise von solche Keilschrift-Programmiersprachen abhängig sind).

Fun Fact 1: Ein Mitarbeiter von Kodak hatte bereits im Jahr 1972 eine voll funktionsfähige Digitalkamera entwickelt und patentiert. Jedoch verweigerten die Manager von Kodak jegliche Anerkennung und untersagten dem Erfinder sogar, darüber zu sprechen. In den 1990er Jahren wurden sie schließlich von der Konkurrenz überholt, sodass ihre einst führende Marke in der Fotografie weniger als 1$ wert war. Die NASDAQ erwog sogar, sie aufgrund ihrer geringen Börsenbewertung aus dem Handel zu entfernen, was einem sogenannten „Penny Stock“ gleichkam.

Fun Fact 2: Boeing hat aufgrund des Konkurrenzdrucks durch Airbus immer wieder entschieden, die 737 lediglich anzupassen, anstatt sie von Grund auf zu erneuern. Doch wie man weiß, kann man mit alten Steinen kein neues Haus bauen – eine Erkenntnis, die sie spätestens kürzlich einholte. Der Ruf des Unternehmens ist beschädigt, die Marke ruiniert und das Vertrauen von Fluggesellschaften, Versicherungen und Passagieren ist dahin.

Navigationsstrategien für den Erfolg: Von Autobahnstau zu Badestränden – Irrwege frühzeitig erkennen, bevor sie richtig kostspielig werden

Fehlentscheidungen und Entwicklungsfehler in einem Unternehmen oder Projekt lassen sich metaphorisch mit dem Verpassen einer Autobahnabfahrt oder dem falschen Abbiegen in einer unbekannten Großstadt vergleichen.

Frühzeitige Erkennung und konsequentes Handeln bei Fehlern, Fehlentscheidungen und Fehlentwicklungen in Konzepten, Produkten, Projekten oder sogar bei der Unternehmensexpansion führen zu geringeren Kosten und einem reduzierten Zeitaufwand für die erforderliche Korrektur.

Wenn man stur weiterfährt und dabei alle Warnsignale herunterspielt und ignoriert, sollte man sich nicht verwundern, wenn man mitten in der Nacht mit leerem Tank an einem abgelegenen Ort ohne zivilisatorische Einrichtungen und Mobilfunkempfang feststeckt.

Die unnötig verstrichene Fahrzeit, der verpasste Sonnenschein und die Kosten für den verschwendeten Kraftstoff hätten stattdessen an einem malerischen Badestrand genossen werden können, hätte man sich lediglich die Zeit genommen, kurz anzuhalten und einen Ortskundigen nach dem Weg zu fragen.

Es mag möglich sein, die exponentiell steigenden Kosten im Verhältnis zur vergangenen Zeit zu bewältigen, JEDOCH…

  1. Kann die Komplexität dieser Herausforderungen ebenso erfolgreich gemeistert werden?
  2. Müssen die Modernisierung des Unternehmens und die Innovation der Produkte aufgeschoben werden?
  3. Ruhen die Mitbewerber in Mitleid oder machen sie weiterhin Fortschritte?

Wir sind kein Autowerk!

Untertitel 1: Über die Bedeutung, sich direkt in Produktionsstätten aufzuhalten, die Arbeitenden zu konsultieren und keine voreiligen Investitionen in „Optimierungen“ zu tätigen.

Untertitel 2: Warum allein die Analyse von Excel-Tabellen nicht genügt.

In jüngerer Zeit traf ich einen alten Bekannten, den ich während meines Studiums bei einem renommierten Bahnbauanlagen-Hersteller kennengelernt hatte. Er war damals mein Mentor und erzählte mir von Zeiten des Wandels in diesem Unternehmen.

Nachdem der Firmengründer in den Ruhestand trat, waren seine Nachfolger überzeugt, Modernisierungen seien nötig. Sie beauftragten teure Beratungsunternehmen, die nach langer Analyse die bisherige Produktion zweigeteilt haben. Früher wurden Lokomotiven in einer einzigen Halle hergestellt, wobei jeder Schritt reibungslos ineinandergreifend erfolgte. Doch die Consultants teilten diesen Prozess auf zwei Hallen auf, sodass nun halbfertige Lokomotiven durch das belebte Stadtzentrum transportiert werden mussten – eine logistische und finanzielle Herausforderung.

Wertvolle, erfahrene Mitarbeiter, die Bedenken äußerten, wurden entlassen. Die verbleibenden Mitarbeiter wurden zu penibler Ordnung ihrer Werkzeuge angehalten, ähnlich wie in Autowerken. Doch keine zwei Projekte waren je gleich; die starre Ordnung behinderte oft mehr, als sie half.

Nach Jahren der „Optimierung“, erheblichen Kosten und verlangsamter Produktion kehrten die Inhaber schließlich zum bewährten System zurück.

Interessant: Nach Abschluss der Umstrukturierung blieben Risse und Asphaltschäden in der Halle unangetastet – sie wurden schlicht übersehen. Ein Tag praktischer Arbeit in der Halle hätte den Beratern vermutlich mehr gezeigt als monatelange Analysen.

Die Mitarbeiterproteste: „Wir sind kein Automobilhersteller! Wir haben keine Fließbänder!“ wurden ignoriert. Daten und Diagramme auf Bildschirmen sind nützlich, doch sie ersetzen nicht die reale Erfahrung und das Fachwissen derer, die tagtäglich in der Produktion stehen.

Nachdem das teure Unterfangen von „Modernisierung“ und „Optimierung“ durch externe Berater beendet wurde und vieles wieder zum Alten zurückgekehrt war, waren die Mitarbeiter jedoch verändert. Durch den Wegfall von Gewinnbeteiligungen und anderen Bonuszahlungen waren sie nun unzufrieden.

Software-Engineering, gut gedacht vs. gemacht

Gute vs. Schlechte Software-Engineering

Eigenschaften von gutem Software-Engineering:

  1. Man nimmt sich genug Zeit fürs Vordenken, Analysieren, Recherche, Review, Planen und Einteilen der Aufgaben + Meilensteine + Abhängigkeiten
  2. Anforderungsanalyse hat keine Lücken, enthält ausschließlich feste, genau, eindeutig definierte Formulierungen
  3. Es gibt ein Pflichtenheft speziell für die Software-Entwickler (es gibt keine offenen Fragen von Software-Entwickler nach Projekt-Beginn)
  4. Abhängigkeiten, Risiken udg. werden abgewogen und verwaltet.
  5. Architektur-, Komponenten- und API-Design wurden genauestens überlegt und entworfen (kein Reengineering danach notwendig)
  6. Man plant Tests: Was, Wann, Worauf, Wie und Womit wird getestet
  7. Wenn Kunden sich Kleinigkeiten wünschen, kann das sofort und in kurze Zeit erledigt werden (keine Staatsaffäre)
  8. Projekt ist sehr wirtschaftlich, man macht satte Gewinne
  9. SW Komponenten können 1:1, oder mit geringer Anpassung, für weitere Projekte verwendet werden
  10. Die Software-Komponenten haben eine sehr hohe Qualität
  11. Die SW-Dokumentationen behalten für sehr lange Zeit (Jahre) ihre Gültigkeit
Wenn genug vorgedacht und geplant wird, muss danach nicht viel/lange implementiert werden.

Eigenschaften von schlechte/mangelhafte/nicht-Existenz von Software-Engineering:

  1. Man nimmt sich kaum Zeit fürs Vordenken, macht kaum Analysen, recherchiert wenig/kaum, lässt keine Reviews machen, plant grob/falsch, Einteilung und Verteilung der Aufgaben passiert Ad hoc nach dem Projekt-Beginn (während Implementierung, (Pseudo-)Testung etc.
  2. Anforderungsanalyse hat große Lücken und ist sehr schwammige, offene, mehrdeutig interpretierbare Formulierungen
  3. Es gibt kein Pflichtenheft für SW Entwickler! Man nimmt das gleiche Pflichtenheft für Kunde und gibt es Software-Entwickler.
  4. Über Abhängigkeiten und Risiken hat man sich kaum oder gar keine Gedanken gemacht, geschweige dessen Abschätzung oder gar Verwaltung
  5. Architektur-, Komponenten- und API-Design entstehen nach Projekt-Beginn, währen Implementierung, und deshalb muss immer wieder Reengineering und Redesign betrieben werden
  6. Tests werden nicht geplant. Test-Units entstehen während, oder gar am Ende der Implementierung, müssen immer wieder ergänzt und/oder „angepasst“ werden („Was nicht passt, wird passend gemacht!“). Zum Testen spielt ein Mitarbeiter so lange herum, bis vielleicht irgendwas nicht so läuft, wie man will, oder irgendwas sich ergibt/zeigt …
  7. Gott bewahre, ein Kunde wünscht sich eine Kleinigkeit. Das kommt eine Staatsaffäre gleich. Es ist so als ob Mount Everest versetzt werden muss. Kein Byte bleibt auf dem Anderen. Jedes Bit wird umgedreht. Reengineerings nach Reengineerings. Überstunden werden notwendig. Andere Projekte werden die Entwickler entzogen … Die Kosten/LOC explodieren!
  8. Das Projekt wirft, wenn überhaupt, gerade noch, ein paar Euros als Gewinn ab, oder die Fa. muss sogar Pönale zahlen
  9. Verärgerte Kunden beschweren sich immer wieder über Bugs/Fehler (Man hat denen Bananaware verkauft), Folge-Projekte bleiben aus
  10. Die SW-Komponenten haben kaum, oder sehr geringe Qualität
  11. Die SW-Komponenten müssen für weitere Projekte grob verändert, oder gar neugeschrieben werden
  12. Änderungen an eine Software-Komponente zwingt die Änderung viele andere Software-Komponenten (Domino-Effekt)
  13. SW-Dokumentationen (falls vorhanden), verlieren ihren Wert, da sich viel zu viel geändert hat, und müssen um oder komplett neugeschrieben werden
Wenn nicht genug Zeit fürs Vordenken und Planen genommen wird, dann muss man viel mehr Zeit für Reengineering und Überstunden in Kauf nehmen

Welche Bedeutung hat „Bei uns funktioniert es.“ für Kunden?

Therac 25

Kurz: Nichts/keine!

Warum?
Dazu folgende (wahre) Geschichte:
Es gab mal eine kanadische Firma namens AECL (Atomic Energie of Canada Limited), welche medizinische Bestrahlungsgeräte baute. Unter anderem das Therac 25.
Das A und O der Bestrahlungsgeräte lautet: Soviel Strahlung wie nötig, so wenig wie möglich!
Immer wieder kontaktierten Mediziner die Firma AECL und beklagten sich über Bestrahlungsüberdosen.
Von der Firma AECL kam stets die gleiche Antwort: „Bei uns funktioniert es“ und „Es muss an euch liegen“.

Mehrere (mind. drei) Patienten sind wegen Bestrahlungsüberdosis durch Therac 25 ums Leben gekommen.
Einige Patienten verloren ihre Glieder nach Not-Amputationen (direkt nach Bestrahlungsüberdosis durch Therac 25), weil das Gewebe an bestrahlte Stelle komplett verbrannt war (= totes Fleisch!).
Einige Patienten könnten nie wieder ihre Extremitäten (Hand, Arm, Fuß, Bein) bewegen oder spüren, da die Nerven durch die Bestrahlungsüberdosis komplett verbrannt waren (= tote Nervenzellen!). Z. B. Marietta, eine 61-jährige Frau aus Georgia, wurde wegen Lymphknoten in 1985 mit 15000Rad statt 200Rad (75-fach höhere Dosis) bestrahlt. Sie könnte nie wieder ihre Schulter oder Arm bewegen oder spüren.

Die Entdeckung der Fehler:
Anmerkung: In USA müssen die Mediziner vor ihrem Medizinstudium ein technische oder naturwissenschaftliches Studium erfolgreich absolviert haben (Dipl.-Ing. früher in Österreich), sonst dürfen sie nicht Medizin studieren.
In einem Krankenhaus in USA, wurde eine Radiologin (die auch Physikstudium absolviert hatte), auf die Bestrahlungsüberdosen durch Therac 25 aufmerksam. Sie notierte die Daten der Vorkommnisse und sah ein Muster darin. Daraufhin bat sie einen Kollegen (Mediziner) der sich mit Elektronik und Computer auskannte um Hilfe.
Sie entwickelten einen systematischen Testplan, und testeten den Therac 25 gründlich. Sie haben gleich mehrere reproduzierbare Fehlverhalten festgestellt und AECL sowie die Behörden informiert. Erst jetzt wurden die Fälle von der Behörde und AECL untersucht!

Die Fehler:
Es wurden mehrere Fehler gefunden:

  1. Mechanischer Fehler!
  2. Mehrdeutige, in die Irre führende Anzeige bzw. Texte/Begriffe
  3. Umständliche Softwarebedienung, nicht automatisierte Kondition-Checks udg. (der User müsste auch für die Software mitdenken, vergleiche dazu TAROM-Flug371 Automatic Throttle System ATS Fehler/Schwäche!)
  4. Race Conditions!
  5. Synchronisations-Fehler (angezeigter neuer Dosis-Wert entsprach nicht den im Speicher für die Bestrahlung angewendeter Wert, d. h. alter Dosis-Wert wurde für die Bestrahlung angewendet)
  6. Zustands-Transitions-Fehler (die Positionierung verschiedene Magneten dauerten 8 Sekunden, die Bestrahlung wurde aber sofort eingeleitet, dadurch hatte jede Bestrahlung 8 Sekunden länger als erwartet gedauert, beginnend an falsche Position/Stelle)
  7. Flags wurden ignoriert (nach grobe Positionierung wurde die Feinpositionierung der Magneten ignoriert)
  8. Fehlermeldungen waren nicht aussagekräftig, waren nicht verständlich dokumentiert, ergaben für die Anwender (Mediziner) keinen Sinn!
  9. usw. usw. usf.

Wie könnte das Alles nur passieren?

  1. Einbildung (Gehabe und Einstellungen wie: „Ich bin so super!“, „Ich bin Perfekt und alle Anderen sind Idioten“, „Ich weiß alles, alle Anderen wissen nichts“ und „Ich bin der beste Programmierer auf der Welt!“, …)
  2. Sätze und Glaubens-Gedanken (statt anständige Tests) wie:
    1. „Es funktioniert.“
    2. „Es hat funktioniert.“
    3. „Bei uns funktioniert es.“
    4. „Es muss an euch liegen.“
  3. „Software-Tests“ von AECL basierten auf Vermutungen und „Schauen wir mal, ob es so funktioniert wie wir uns gedacht haben“, anstatt auf systematische professionelle fundierte Analysen! Das Ziel deren Tests war zu beweisen, dass es funktioniert, und nicht das Finden von Fehler!
  4. Der neue Programmierer nutzte die SW-Komponenten des alten Programmierers (welcher AECL verlassen hatte), ohne wirklich zu wissen, wie diese Entworfen waren, und wie diese richtig einzusetzen waren (Race Conditions, Sync. Fehler, Flags-Änderungen ignorieren udg.)
  5. Unverantwortliche Projekt-Leiter und Manager („Hauptsache Billig!“ Manier) die über die Tragweite ihrer Entscheidungen nicht bewusst waren (und Warnungen der Techniker/Experten ignorieren): nahezu alle Hardware-Überwachungskomponenten des Vorgängermodells wurden entfernt und durch Software-Checks ersetzt (wegen höchstens einige 1000 $ Hardwarekosten haben einige Menschen ihren Leib und Leben verloren! Tolle Kostenreduzierung!)
  6. Bei Therac 25 wurde ein komplett neues eigenes Betriebssystem eingesetzt, welches noch jung war („Kinderkrankheiten“), Fehler enthielt und die AECL Mitarbeiter keine Erfahrungen damit hatten. Kommerzielle Betriebssysteme wären bekannt und auch länger getestet gewesen (Erfahrungswerte, Bekanntheit, Dokumentationen, …). Aber auch hier hat AECL sich „viel Kosten erspart“.

Konsequenzen:
1985-1987 wurden von FDA (Food and Drug Administration, US-Behörde) und CDRH (Center for Devices and Radiological Health, US-Behörde) weitreichende Reformen durchgeführt (Überwachung von Software-Entwicklung und das Testen, sowie Verschärfung der Freigabeprozedur für neue Geräte).

Die Moral der Geschichte:

  1. Hört auf zu denken/sagen „Es funktioniert“ oder „Es hat funktioniert.“
  2. Hört auf zu sagen „Bei uns funktioniert es.“ oder „Es muss an euch liegen.“! Davon kann der Kunde sich Nichts kaufen!
  3. Testet! Testet! Testet! Und zwar gründlich, analytisch, systematisch und fachmännisch. Die Aufgabe von Testen ist Fehler zu finden, und nicht zu beweisen das „es funktioniert“. Es gibt genug Paradigmen, Konzepte, Module, Best Practices, Standards und Konventionen für ein gründliches, systematisches, analytisches, fachmännisches Testen (TDD, Unit-Testing, Test-Doubles, Mocks & Fakes, Digital-Twins, Fehler-Simulatoren, …)

Welche Bedeutung hat „Es funktioniert.“ ?

Ariane 5

Kurz: Nichts/keine.

Warum?
Dazu folgende (wahre) Geschichte:
Es gab mal eine europäische Trägerrakete namens Ariane 4. Diese hatte ein Modul namens SRI (Inertial Reference System), welches für die Berechnung der Flugbahn zuständig war. Das SRI Modul war bestens getestet. Die Mission Ariane 4 war erfolgreich (somit hatte SRI in Produktion-System „funktioniert“).
Dann baute man Ariane 5 mit stärkeren Triebwerke. Da das SRI Modul von Ariane 4 getestet und erfolgreich erprobt war, wurde es einfach in Ariane 5 eingesetzt.
Ergebnis: in Sekunde +41 nach Zündung (Ignition) wurde der automatische Selbstzerstörungsmechanismus von beiden Onboard Computern ausgelöst und zerstörte die Rakete.
Grund:
Ariane 4 Computer war ein 16 Bit System.
Ariane 5 Computer war ein 64 Bit System.
Bei der Berechnung der Flugbahn wurde ein 64 Bit Float Wert (Fließkomma-Zahl) an SRI Modul übergeben ⇒ Stack Overflow!
Die Triebwerke schlugen von der eine (IST-Wert) Richtung in das Extreme, andere Richtung (overflow SOLL-Wert).
Durch die große Masse und hohe Geschwindigkeit (Impuls, Energie) wäre Ariane 5 auseinandergebrochen, weshalb der automatische Selbstzerstörungsmechanismus die kontrollierte Sprengung ausgelöst hat.
Wie man sieht: „Es funktioniert.“, oder „Es hat funktioniert.“ bedeutet rein gar Nichts!
Fun Fact 1:
Nach Sekunde +36 war eine Berechnung der Flugbahn durch das SRI Modul gar nicht notwendig gewesen, und hätte somit von „Haupt-Computern“ abgeschaltet werden können.
Fun Fact 2:
Die Herstellungskosten für die Rakete und die Satelliten beliefen auf ca. 500 Millionen Dollar. Da keine kommerzielle Fracht an Bord war, sondern „nur“ Forschungssatelliten, war der Flug nicht versichert worden.
Fun Fact 3:
Die Entwicklung der Rakete alleine hat 10 Jahre und 7 Milliarden Dollar beansprucht.
Resultat: 10 Jahre Entwicklungszeit + 7.500.000.000 $ wurden nach nur 41 Sekunden vernichtet, weil man sich dachte „Es hat funktioniert.“.