Abgeschottet

Quasi schon eine Binsenweisheit ist, dass fehlerfreie Software nicht existiert, man kann nur versuchen, die Fehler so weit wie möglich zu reduzieren. Das gilt natürlich auch für Laborinformationssysteme (LIMS) im Allgemeinen und unser LIMS "uniLIME" im Konkreten. Selbstverständlich wird jede Version vor Auslieferung gründlich getestet, so dass Fehler eher selten vorkommen - aber eben nur selten und nicht niemals.

Mit etwas Mitwirkung des Kunden (also nicht einfach ein "uniLIME funktioniert nicht", sondern eine genaue Fehlerbeschreibung einschließlich was vorher eingegeben wurde und gerne mit ein paar Screenshots) lassen sich diese Fehler meist schnell finden und beheben. Entweder direkt bei der Durchsicht des Quellcodes an der betreffenden Stelle oder durch Nachspielen der Situation auf unseren Entwicklungs-Rechnern mit Hilfe des in jedem Entwicklungssystem vorhandenen "Debugger". Ein Debugger erlaubt es, das Programm Schritt für Schritt durchzugehen und den aktuellen Zustand der Variablen anzusehen, damit lassen sich die meisten Fehler sehr einfach finden.

Manchmal kommt es aber doch vor, dass ein Fehler sich bei uns einfach nicht reproduzieren lässt, wahrscheinlich da er nur unter ganz speziellen Bedingungen auftritt, die dem Anwender gar nicht bewusst sind und daher uns auch unbekannt sind.

Wie kann man in dieser Situation vorgehen?

Die einfachste Möglichkeit ist, wenn wir uns zum Datenbanksystem des Anwenders über einen VPN-Zugang verbinden können und damit mit Hilfe des Debuggers so den Fehler suchen können wie auf unserem eigenen Entwicklungssystem. Oder wir installieren das gesamte Entwicklungssystem auf einem Rechner des Kunden und verbinden uns dann über eine der diversen Fernwartungssysteme (z.B. TeamViewer) dorthin. Oder begeben uns notfalls direkt vor Ort zum Kunden.

Nur leider scheitert dies manchmal an den - nach den häufigen Attacken der letzten Jahre durchaus nachvollziehbaren - strengen Sicherheitsrichtlinien des Anwenders, besonders bei größeren Unternehmen.

Hier gibt es dann noch eine - mühsamere, aber meist oft erfolgreiche - Alternative: im Programmcode werden einige oder viele zusätzliche Programmzeilen eingebaut, die den aktuellen Zustand der Variablen einfach in eine Protokolldatei im Textformat schreiben. Diese Protokolldatei sendet der Anwender uns dann einfach zu und wir versuchen, auf diese Weise den Fehler zu finden. Grundsätzlich ist dies ähnlich wie der oben beschriebene Weg über den Debugger, nur leider meist weniger schnell von Erfolg gekrönt. Denn man kann ja nicht für jede einzelne Programmzeile eine weitere zur Befüllung der Protokolldatei eintragen und natürlich auch nicht die Gesamtheit aller Variablen dort ausgeben lassen. So kommt es meist dazu, dass man diese Fehlersuche über mehrere Etappen mit jeweils Programmupdates durchführen muss und die Fehler erst nach einiger Zeit gefunden werden kann. Ja, Sicherheit hat auch ihren Preis.

< Früherer Beitrag     Neuerer Beitrag >