Hi,
On Monday, Monday 27 January 2014 at 14:34, Hilmar Preusse wrote:
Wegen des beschriebenen Verhaltens hatte ich aber zunächst auf Kernelbug oder Race-Condition getippt, sie sich nicht durch Änderung des Codes der Anwendung beheben läßt.
Nach meiner Erfahrung trifft meistens eine ganz einfache Fehlerhierarchie zu:
1) Anwender hat einen Fehler bei der Bedienung gemacht - das ist nicht unbedingt Schuld des Anwenders, sondern ist oft einfach schlechtes Design (ich schließe meine eigenen Programme da durchaus ein)
2) Admin hat Konfigurationsfehler bei Einrichtung des Programms an sich gemacht - Doku und Foren checken hilft meistens schon (kurz: Du hast Dich korrekt verhalten)
3) Admin hat Konfigurationsfehler bei Einrichtung eines anderen Programms gemacht mit dem das Programm interagieren muss (z.B. DB-Server, Web-Server)
4) Anwendungsprogrammierer hat einen Fehler gemacht - normalerweise ist die Anwendung der Teil, der unter dem größten Zeitdruck programmiert wurde und auch der Teil mit den wenigsten Betatestern (ähh, ich meine: Usern) - ein Fehler pro hundert Code-Zeilen ist normal, einer pro tausend ist Spitzenklasse; es ist auch normal Fehler Jahre nach der Programmierung einer Funktion zu finden, weil sich die "Umwelt" eines Programms ständig ändert und Fehler oft sehr versteckt sind
5) Der Fehler liegt in einer Anwendung mit der das Programm interagiert. Je größer die User-Basis des Programms umso wahrscheinlicher ist es schon gut getestet.
6) Kompatibilätsprobleme mit dem darunterliegenden System: veraltete oder fehlerhafte Bibliotheken, Verhalten welches auf System A angepasst ist die App läuft aber auf System B, etc.pp.
7) Irgendein zentraler Server-Prozess hat einen Fehler - das ist bereits sehr selten, da sowas wie Datenbanken und Webserver sehr viele Tester/User haben.
8) Das Betriebssystem oder Compiler hat einen Fehler: -> unter Linux ist das so selten dass ich mich nicht einmal an den letzten Fehler erinnern kann -> unter Windows nennt man das "Rückwärtskompatibilität" und die Workarounds sind relativ gut dokumentiert oder es gibt zumindest tausende Foreneinträge dazu - siehe 6 -> in meiner ganzen Karriere ist mir exakt ein Compilerfehler untergekommen, den ich durch Upgrade auf eine neue Version gelöst habe (der zweite war eine Fehldiagnose meinerseits)
Ein paar geschätzte Zahlen dazu: ca. 90% aller Probleme, die ich mit industriell eingesetzten Applikationen hatte fielen in die ersten 3 Kategorien. Ca. 6% fielen in Klasse 4, weitere 3% in Klasse 5 (ich arbeite mit relativ stark vernetzten Systemen). Der überwÄltigende Teil des letzten Prozents waren Kompatibilitätsprobleme mit Multi-Plattform-Apps. Ich kann mich im Moment nicht erinnern wann genau ich das letzte mal über ein Problem aus Kategorie 7 oder 8 gestolpert bin.
Egal wie es auf den ersten Blick aussieht, meine Erfahrung zeigt dass man eine Diagnose immer mit der Vermutung User-Fehler beginnen sollte, dann Programmierfehler und erst nach Ausschluss aller Möglichkeiten kommt Systemfehler in Betracht.
Konrad