Wenn ich so programmieren würde wie Psychiater behandeln…

PsychiaterWenn ich Applikationen so programmieren würde wie die meisten Psychiater die Menschen behandeln, dann …

  • … hätte ich keine konkrete Ahnung, wie Computer tatsächlich funktionieren, nur vage Ideen an Hand der visualisierten Strömchen.
  • … würde ich eine fehlerhafte Applikation immer wieder denselben Fehler machen lassen und ihr dann mittels Powerpoint zeigen, wie es richtig gehen würde, bis sie verlernt den Fehler zu machen.
  • … würde ich die Applikation Zufallsausgaben machen lassen und sie ausgedehnt loben, wenn sie per Zufall die richtigen Zahlen ausspuckt.
  • … würde ich bei neuen Fehlern irgendwann mal die Compliance der Applikation anzweifeln.
  • … würde ich Termine ohne Uhrzeit vereinbaren: Vormittags (heisst „vor 16:00“) oder Nachmittags („am Morgen des nächsten Tages vielleicht“).
  • … würde ich von Montag bis Mittwoch von 10:00 bis 16:00 arbeiten (Morgen-, Mittag- und Nachmittagspause sind auch Arbeit) und 18 Wochen des Jahres mit Ferien und Kongressen verbringen.
  • … würde ich bei einer Fehlermeldung:
    • … die Fehlermeldung wegprogrammieren, nicht die Ursache des Problems.
    • … den Computer einen Vertrag unterzeichnen lassen, dass er die Fehlermeldung nicht mehr bringt.
  • … würde ich bei einer Programmiersitzung zuerst mal hinsitzen und schauen, was sich so während des Tages entwickelt.
  • … würde ich bei einem Bug das Aufstehen, Anziehen, Duschen, Kaffeetrinken, etc. des Programmierers nachstellen, um den Ursprung des Bugs zu ergründen.
  • … würde ich zuerst einen Monat ein Bisschen die eine Programmiersprache versuchen, dann einen Monat eine Andere, einen Monat später wieder die Erste, aber etwas intensiver, dann die Zweite mit einer Dritten kombinieren, …
  • … könnte ich nicht unterscheiden zwischen den verschiedenen Betriebssystemen und würde bei allen dasselbe ausprobieren.
  • … wäre ich überzeugt davon, dass jede noch so komplexe Applikation mit einer Stunde Programmieren pro Woche realisiert werden kann.
  • … würde ich bei schweren Bugs vorschlagen, mit dem Kunden zusammenzusitzen, um Wege zu finden wie er mit der verbuggten Applikation arbeiten kann statt diese zu beheben.
  • … würde es mir im Traum nicht einfallen den Debugger hervorzuholen, sondern ich würde immer wieder unterschiedliche Eingaben machen um die Ausgaben interpretieren zu können.
  • … würde ich die Ausgaben der Applikation nicht wirklich als deren Ausgabe sehen, sondern als Metapher für das, was sie ausgeben möchte, wenn sie denn funktionieren würde. Aus der Differenz würde ich schliessen, in welcher Projektphase Defizite vorhanden waren.

Bug ist nicht gleich Bug

Per Zufall bin ich wirklich faszinierende Bugnamen gestossen… Wenn jemand noch mehr kennt, wäre ich Dankbar für eine Mitteilung:

Der Heisenbug
Verändert sich wenn er beobachtet wird. Tritt zum Beispiel auf, wenn sich die Kompilieroptionen für Release und Debug unterscheiden und der Bug nur im Release auftritt.
Der Bohrbug
Ist ein unter allen Umständen und leicht zu reproduzierender Fehler.
Der Mandelbug
Der Mandelbug ist ein Bug, dessen Ursachen so komplex sind, dass er chaotisch erscheint.
Der Schroedinbug
Beim Schroedinbug (oder Shroedinbug) handelt es sich um einen Bug – also einen Fehler in einem Programm – der jedoch noch nicht bekannt ist, weil noch niemand die entsprechende Funktion bzw. die entsprechende Kombinationen von Funktionen ausprobiert hat.
Der Zeilinbug
Die Herkunft der Benennung ist hier nicht bekannt. Zeilinbug bezeichnet einen Fehler, der sich im Code herumbeamt, ohne das man genau weiss warum. Schuld daran können fehlerhaftes Kopieren und Einfügen oder wirre Codegeneratoren sein. Manchmal auch ein konzeptionelles Fehlwissen der Entwickler.
Der Nelsonbug (benannt nach Ted Nelson)
Ein Bug, der entsteht, weil ein Teil der Implementierung auf später verschoben wurde und dieser dann vergessen gegangen ist. Er kann auch auftreten wenn generell nur Stubs vorhanden sind. Ist mit dem Schroedinbug verwandt.
EBCAK
Error Between Chair And Keyboard, Nuff said :)…
ID10T (Ai-Di-Ten-Ti)
Tja, das ist nun nur für 1337.
JASE
Just another System Bug.

Quellen: Wikipedia, Bullhost und A1 Weblog.

Nachtrag (16.03.2008): Die englische Wikipedia hat auch eine Seite für Bugs!